Is there an equivalent to the C# “var” keyword in C++/CLI?

≡放荡痞女 提交于 2019-11-27 22:59:05

问题


In C#, I like the var keyword for situations like this:

var myList = new List<MyType>();

Is there any equivalent in C++/CLI, or do I have to repeat the type name everytime just like this:

List<MyType ^>^ myList = gcnew List<MyType ^>();

Could not find an explicit statement in the docs or by Google so far. I am using Visual Studio 2008.


回答1:


In Visual Studio 2008 there is no such equivalent. However with Visual Studio 2010 you can use the auto keyword to implement var like semantics in C++. I know this works with non-managed C++ and I'm fairly certain it works for C++/CLI as well.




回答2:


I know that type inference is envisioned in the C++1x standard:

auto someStrangeCallableType = boost::bind(&SomeFunction, _2, _1, someObject);
auto otherVariable = 5;

Currently, AFAIK, there is no equivalent.




回答3:


C++ has typedef. Just alias those hairy types with a typedef, and use the friendly name.

No, there's no "var" keyword. Vaguely recall there's something to that effect in boost.




回答4:


C++0x is going to have an auto keyword: http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2004/n1705.pdf



来源:https://stackoverflow.com/questions/2007976/is-there-an-equivalent-to-the-c-sharp-var-keyword-in-c-cli

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!