我想用C ++创建一个队列列表,但编译器给了我一些神秘的消息:
#include <list>
#include <queue>
class Test
{
[...]
list<queue> list_queue;
[...]
}
输出:
error C2143: syntax error : missing ';' before '<'
error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
error C2238: unexpected token(s) preceding ';'
即使我使用int作为模板参数,它也会给出相同的错误。发生了什么事?
(顺便说一下,我正在使用VC ++ 2008 EE)
答案 0 :(得分:8)
queue
也是一个模板类,因此您需要指定队列中包含的元素类型。此外,-
不是C ++中的合法标识符字符;也许你的意思是_
?
std::list<std::queue<SOME_TYPE_HERE> > list_queue;
答案 1 :(得分:1)
也“使用命名空间std”,并且在你的类定义之后需要有一个分号
280Z28是正确的,在头文件中“使用”对于生产代码来说是一个坏主意。但是,为了快速查看主要问题是否是标识符搜索范围,这仍然是一个合理的故障排除步骤。