繁体   English   中英

“'之前的'primary-expression'。' 令牌错误“以g ++为单位

[英]“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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM