Visual Studio 2010, Visual Studio 2012 и Visual Studio 2013 поддерживают определение типа для переменных, объявленных с помощью ключевого слова auto
. Это относится как к подсказкам IntelliSense, так и к предложениям автозаполнения.
Начиная с Visual Studio 2010 поддержка C ++ IntelliSense была полностью переработана (см. Восстановление Intellisense). IntelliSense теперь управляется внешним интерфейсом компилятора C ++ Edison Design Group (EDG). Все, что может сделать EDG, вы увидите в IntelliSense.
Обратите внимание, что всплывающие подсказки IntelliSense будут отображать базовый тип для auto
переменных. Он не будет снова обрабатывать дерево и заменять части соответствующими определениями типов. В Visual Studio 2012 следующий код
std::string str;
std::string::iterator i1 = str.begin();
auto i2 = str.begin();
отобразит итераторы как
std::basic_string<char,std::char_traits<char>,std::allocator<char> >::iterator i1
и
std::_String_iterator<std::_String_val<std::_String_base_types<char,std::allocator<char> >::_Val_types>::_Myt> i2
Учитывая, что я бы с радостью не согласился с Хербом Саттером в его оценке, что IDE достаточно, чтобы вывести тип, когда он вам нужен. auto
великолепен с точки зрения надежности, правильности и гибкости, но он определенно не может удовлетворить потребности разработчика, работающего с большой базой кода.
person
IInspectable
schedule
28.10.2013