7
我遇到了模板類中的循環依賴問題。有一個代碼示例:循環依賴(在模板化基類中使用內部類型的子類)
template <typename T> struct A
{
typedef typename T::C D;
//typename T::C c;
};
struct B : public A<B>
{
struct C {};
};
當我嘗試實例B,I得到一個編譯錯誤:「C」不是「B」(MSVC)或無效使用不完整的類型的'的一個成員結構B'(GCC)。
更改樣本以使其起作用的最佳方法是什麼?
你不能。提供你想要解決的問題的一個更完整的例子,我們可以看看重構代碼。 –