0
以下代码(包括在单个的头文件)是我遇到问题的简单的例子:不能编译代码[C++]
template <class T>
class A
{
public:
enum Type
{
ONE,
TWO
};
A(Type tp = ONE):tp(tp) {
}
protected:
Type tp;
};
template <class T>
class B : public A<T>
{
B(Type _tp):A<T>(_tp) {
}
};
这将产生编译错误(在铛)
Untitled 2.cpp:24:4: error: unknown type name 'Type'
B(Type _tp):A<T>(_tp) {
^
1 error generated.
如果我代替移动枚举的A
范围之外,或删除的A
和B
的模板化,则以上代码编译。
[现场示例](https://wandbox.org/permlink/PVq6HACyZAuimAjp) – apmccartney
非常感谢jwimberley –