Я удивлен, следуя поведение IntelliSense, почему:Почему Intellisense не работает для карты <int, T *>?
template<typename T>
struct Bar {
std::map<int , int *> map;
std::map<int , T *> map2;
std::vector<int *> vec;
std::vector<T *> vec2;
T * doBar(void)
{
map./*displays everything*/
--->map2./*displays only 4 members: at, swap and two operators*/
vec./*displays everything*/
vec2./*displays everything*/
return null;
}
};
это ошибка? Или есть какая-то особая причина, показывающая только 4 члена, когда вторая - T/T *? Логика скажет мне, что нет причин скрывать методы, например, find
или erase
для любых типов, даже если они шаблоны second
s.
Компиляция кода с не отображаемыми функциями не вызывает ошибок и, как представляется, работает правильно. Я использую Visual Studio 2012. (и уже удалены баз данных IntelliSense несколько раз)
EDIT: это действительно, кажется, VS2012 конкретной ошибки, только что подтвердил, что работает с VS2013
Работает отлично в VS2013. Назовем это специфической ошибкой 2012 года. –
@ HansPassant благодарит за эту информацию (на этот вопрос ответили), должен ли я удалить этот вопрос? – wondra