【发布时间】:2012-08-28 05:49:01
【问题描述】:
我在模板类中遇到循环依赖问题。有一个代码示例:
template <typename T> struct A
{
typedef typename T::C D;
//typename T::C c;
};
struct B : public A<B>
{
struct C {};
};
当我尝试实例化 B 时,我得到一个编译器错误:'C' is not a member of 'B' (MSVC) 或 不完整类型 'struct B' 的使用无效 (GCC)。
更改示例以使其正常工作的最佳方法是什么?
【问题讨论】:
-
你不能。提供一个稍微更完整的示例来说明您要解决的问题,我们可以考虑重构代码。
标签: c++ templates circular-dependency crtp incomplete-type