为什么gcc认为我试图在我的模板函数签名中进行函数调用?

时间:2010-03-22 10:52:22

标签: c++ templates gcc

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 };
海湾合作委员会正在提供以下内容:

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 个答案:

答案 0 :(得分:10)

你应该在两个>之间加上空格。 >>被解析为位移运算符,而不是两个右括号。