Y at-il un équivalent au mot-clé C # « var » en C ++ / CLI?
-
18-09-2019 - |
Question
En C #, j'aime le mot-clé var
pour des situations comme celle-ci:
var myList = new List<MyType>();
Y at-il équivalent en C ++ / CLI, ou dois-je répéter chaque fois que le nom du type comme ceci:
List<MyType ^>^ myList = gcnew List<MyType ^>();
Impossible de trouver une déclaration explicite dans la documentation ou par Google jusqu'à présent. J'utilise Visual Studio 2008.
La solution
Dans Visual Studio 2008 il n'y a pas équivalent. Cependant, avec Visual Studio 2010, vous pouvez utiliser le mot-clé auto
pour mettre en œuvre var
comme la sémantique en C ++. Je sais que cela fonctionne avec les non gérés C ++ et je suis assez certain que cela fonctionne pour C ++ / CLI ainsi.
Autres conseils
Je sais que l'inférence de type est envisagé dans le C ++ 1x standard :
auto someStrangeCallableType = boost::bind(&SomeFunction, _2, _1, someObject);
auto otherVariable = 5;
À l'heure actuelle, autant que je sache, il n'y a pas d'équivalent.
C ++ a typedef. Juste alias ces types poilus avec un typedef et utiliser le nom convivial.
Non, il n'y a pas de mot-clé "var". Vaguement rappeler qu'il ya quelque chose à cet effet coup de fouet.
C ++ 0x va avoir un mot clé auto: http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2004/n1705.pdf