Почему gcc считает, что я пытаюсь вызвать функцию в сигнатуре моей функции шаблона? - PullRequest
1 голос
/ 22 марта 2010

GCC, кажется, думает, что я пытаюсь сделать вызов функции в своей подписи функции шаблона Может кто-нибудь сказать, пожалуйста, что не так со следующим?

227 template<class edgeDecor, class vertexDecor, bool dir>
228 vector<Vertex<edgeDecor,vertexDecor,dir>> Graph<edgeDecor,vertexDecor,dir>::vertices()
229 {
230 return V;
231 };

GCC дает следующее:

graph.h:228: error: a function call cannot appear in a constant-expression
graph.h:228: error: template argument 3 is invalid
graph.h:228: error: template argument 1 is invalid
graph.h:228: error: template argument 2 is invalid
graph.h:229: error: expected unqualified-id before ‘{’ token

Большое спасибо.

1 Ответ

10 голосов
/ 22 марта 2010

Вы должны поставить пробел между двумя >. >> анализируется как оператор сдвига битов, а не двух закрывающих скобок.

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