Мой C ++ немного ржавый, так что ...
#include<list> typedef list<int> foo;
, которое выдает мне ооочень приятное сообщение об ошибке:
test.cpp: 2: синтаксическая ошибка перед `; ' лексема
Какого черта я могу использовать Google в этом ...
Имена стандартной библиотеки C++ находятся в пространстве имен std
C++
std
#include <list> typedef std::list<int> foo;
Вы ожидаете, что список будет в глобальном пространстве имен. Но определяется внутри пространства имен std. Следовательно, либо вы должны использовать using namespace std;, либо явно указать пространство имен как std::list;. Я лично предпочитаю второй вариант.
using namespace std;
std::list;
list<> находится в пространстве имен STD. Это должно работать нормально:
list<>
#include<list> typedef std::list<int> foo;
В качестве альтернативы вы могли бы сделать,
#include<list> using namespace std; typedef list<int> foo;
, если вы не хотите печатать std:: везде.
std::