'Is there an equivalent to the C# "var" keyword in C++/CLI?
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.
Addendum from 2022: as the accepted answer states correctly, today there is the auto keyword. We are now using this for years, and it works flawlessly for both managed and unmanaged types.
Solution 1:[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.
Solution 2:[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.
Solution 3:[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.
Solution 4:[4]
C++0x is going to have an auto keyword: http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2004/n1705.pdf
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source |
|---|---|
| Solution 1 | JaredPar |
| Solution 2 | Max Galkin |
| Solution 3 | Seva Alekseyev |
| Solution 4 | rmn |
