Есть ли эквивалент C # "var" ключевое слово в C ++ / CLI? - PullRequest
27 голосов
/ 05 января 2010

В C # мне нравится ключевое слово var для таких ситуаций:

var myList = new List<MyType>();

Есть ли какой-либо эквивалент в C ++ / CLI, или мне нужно повторять имя типа каждый раз, как показано ниже:

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

Не удалось найти явное утверждение в документах или в Google. Я использую Visual Studio 2008.

Ответы [ 4 ]

36 голосов
/ 05 января 2010

В Visual Studio 2008 такого эквивалента нет. Однако в Visual Studio 2010 вы можете использовать ключевое слово auto для реализации var подобной семантики в C ++. Я знаю, что это работает с неуправляемым C ++, и я вполне уверен, что это работает и для C ++ / CLI.

12 голосов
/ 05 января 2010

Я знаю, что вывод типа предусмотрен в стандарте C ++ 1x :

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

В настоящее время, AFAIK, аналога нет.

4 голосов
/ 05 января 2010

C ++ имеет typedef. Просто назовите эти волосатые типы с помощью typedef и используйте понятное имя.

Нет, здесь нет ключевого слова "var". Смутно припоминаю, что в бусте что-то есть.

2 голосов
/ 05 января 2010

C ++ 0x будет иметь ключевое слово auto: http://www.open -std.org / jtc1 / sc22 / wg21 / docs /apers / 2004 / n1705.pdf

...