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 –