【发布时间】:2013-06-12 16:57:15
【问题描述】:
代码:
template <typename element_type, typename container_type = std::deque<element_type> >
class stack
{
public:
stack() {}
template <typename CT>
stack(CT temp) : container(temp.begin(), temp.end()) {}
bool empty();
private:
container_type container;
};
template <typename element_type, typename container_type = std::deque<element_type> >
bool stack<element_type, container_type>::empty()
{
return container.empty();
}
当我编译时它给出了错误。
包含
'bool stack<element_type,container_type>::empty()'的类的模板参数的默认参数
为什么编译器会抱怨,我怎样才能让它工作?
【问题讨论】:
-
这真的是完整的错误信息吗?好像少了点什么……
-
@TimoGeusch:使用 g++ 和
--std=c++0x编译时确实如此。虽然实际上是正确的,但乍一看并不是很有帮助:/