Существует ли эквивалент ключевого слова С# "var" в С++/CLI?
В С# мне нравится ключевое слово var
для таких ситуаций:
var myList = new List<MyType>();
Есть ли какой-либо эквивалент в С++/CLI, или мне нужно каждый раз повторять имя типа:
List<MyType ^>^ myList = gcnew List<MyType ^>();
Не удалось найти явный оператор в документах или Google до сих пор. Я использую Visual Studio 2008.
Ответы
Ответ 1
В Visual Studio 2008 такого эквивалента нет. Однако с Visual Studio 2010 вы можете использовать ключевое слово auto
для реализации var
как семантики в С++. Я знаю, что это работает с не управляемым С++, и я уверен, что он работает и для С++/CLI.
Ответ 2
Я знаю, что тип вывода представлен в С++ 1x standard:
auto someStrangeCallableType = boost::bind(&SomeFunction, _2, _1, someObject);
auto otherVariable = 5;
В настоящее время AFAIK нет эквивалента.
Ответ 3
С++ имеет typedef. Просто укажите эти волосатые типы с typedef и используйте дружеское имя.
Нет, нет ключевого слова "var". Смутно вспомните, что что-то с этим связано с повышением.
Ответ 4
С++ 0x будет иметь ключевое слово auto: http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2004/n1705.pdf