Проблема GCC: в шаблоне - PullRequest
1 голос
/ 16 марта 2010

у меня есть redhat с gcc 4.1.1, я компилирую как "gcc test.c" и выдаю следующую ошибку

Ошибка: ожидается '=', ',', ';' , ásm 'или' __ attribute__ 'перед' <'токеном </p>

код в "test.c" выглядит следующим образом

template <typename T> class A {
public:
    T foo;
};

Ответы [ 3 ]

6 голосов
/ 16 марта 2010

Скомпилируйте с g++ и / или переименуйте ваш файл в test.cpp.

Если вы компилируете с gcc test.c, то ваш файл будет считаться файлом C. Там нет шаблонов в C.

2 голосов
/ 16 марта 2010

Из Руководства GCC компиляция файла с расширением .c скомпилирует ваш код, как если бы это был C, а не C ++. Самое простое решение - скомпилировать ваш код с помощью g++. Команда g++ устанавливает язык по умолчанию C ++ и автоматически связывает ваш код со стандартной библиотекой C ++. Вы можете сделать оба с gcc, но вы должны сделать это вручную. Именно то, как вы это делаете, оставлено в качестве упражнения. : -)

2 голосов
/ 16 марта 2010

Это код C ++, а не C. Вам нужно использовать g++, т.е. g++ test.c. Кроме того, чтобы избежать путаницы, вам следует переименовать файл, чтобы он заканчивался на .cpp или .cxx.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...