我在模板类中遇到了循环依赖问题。有一个代码示例:
template <typename T> struct A
{
typedef typename T::C D;
//typename T::C c;
};
struct B : public A<B>
{
struct C {};
};
当我尝试实例化 B 时,我收到编译器错误:“C”不是“B”的成员(MSVC)或 不完整类型“struct B”(GCC)的使用无效。
更改样本以使其正常工作的最佳方法是什么?
我在模板类中遇到了循环依赖问题。有一个代码示例:
template <typename T> struct A
{
typedef typename T::C D;
//typename T::C c;
};
struct B : public A<B>
{
struct C {};
};
当我尝试实例化 B 时,我收到编译器错误:“C”不是“B”的成员(MSVC)或 不完整类型“struct B”(GCC)的使用无效。
更改样本以使其正常工作的最佳方法是什么?