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