我有一个这样的课程
template <typename T>
class Parent
{
public:
typedef T Value;
typedef int Argument;
virtual Value foo (Argument);
class Child;
};
template <typename T>
class Parent <T> :: Child : public Parent <T>
{
public:
Value foo (Argument) override; // (1)
};
template <typename T>
typename Parent <T> :: Child :: Value
Parent <T> :: Child :: foo (Argument arg)
{
// ...
}
事实上,我有很多类遵循这种模式。这样的代码编译并正确运行。
现在我根据大致相同的模式添加了另一对类,我遇到了一些错误。
在(1)error: ‘Value’ does not name a type
实际上实际的类是复杂的和专有的所以我不能发布细节,但为了自己解决这个问题,在哪里可以找到管理父类型可见性的相关C ++规则嵌套和派生类?