![](/img/trans.png)
[英]g++ (freebsd) error: expected primary-expression before '{' token
[英]“primary-expression before '.' token error” in g++
我有这个C ++代码来生成“primary-expression before”。 令牌'错误与g ++编译器。它与cl(MSVC)编译器编译好。
template<typename T>
class A : public std::auto_ptr<T>
{
typedef std::auto_ptr<T> Super;
public:
A() : Super() { }
A(T* t) : Super(t) { }
A(AP<T>& o) : Super(o) { }
operator bool() { return !!Super.get(); } <--- error!
};
这段代码出了什么问题?
Super
是一种类型。 如果要调用基类函数,可以通过this
方式执行this
:
this->get();
注意,这里只需要this->
因为get()
是依赖基类的成员函数; 也就是说,一个依赖于模板参数T
的基类。 有关更多信息,请参阅Parashift C ++ FAQ文章, “当我的模板派生类使用从模板基类继承的成员时 , 为什么会出现错误?”
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.