Карта C ++: ожидаемый инициализатор перед маркером '<' - PullRequest
0 голосов
/ 02 июля 2011

Я получаю эту ошибку в заголовочном файле:

ошибка: ожидаемый инициализатор до маркера '<' </p>

class MyEntity;
typedef std::map<uint16,MyEntity*> myList_t;

Я подумал, что он не видиткарта включает, но в верхней части этого заголовочного файла находится:

#include <list>
#include <map>

В другом заголовочном файле:

typedef unsigned int               uint32;

Есть идеи?

g ++ (GCC) 4.1.2 20080704 (Red Hat 4.1.2-48)

Ответы [ 2 ]

1 голос
/ 11 декабря 2011

Был макрос с именем map, который вызывал конфликт.

0 голосов
/ 02 июля 2011

В вашем реальном коде (а не в упрощенном примере) вы, вероятно, пропускаете ; от конца строки до typedef.Обычно это означает, что когда я получаю такую ​​зашифрованную ошибку, и я могу почти воспроизвести ваше сообщение, поместив над ним еще один недооцененный typedef:

q.cc:8: error: expected initializer before 'typedef'

Моим первым предположением было, что class MyEntity былполное определение (не предварительная декларация) и пропустил ;, но я получаю немного другую ошибку для этого.

...