我很確定以下問題的解決方案是相當標準的,但我找不到合適的術語來搜索它。我有兩個班,例如SomeB<A>
和SomeA<B>
。我想創建一個SomeB<A>
的實例,其中A:=SomeA<B>
和B:=SomeB<A>
。 (簡化)的代碼如下所示:C++簡單模板遞歸
template<typename A>
class SomeB
{
A getA() { /* ... */ }
};
template<typename B>
class SomeA
{
B getB() { /* ... */ }
};
int main(int argc, char **argv)
{
SomeA<SomeB<SomeA<SomeB<...> > > > test;
// /\
// |
// +---- recursion
test.getB();
return 0;
}
現在,我該如何告訴編譯器,有沒有「suprises」像SomeA<SomeB<SomeA<SomeB<Suprise_AnotherA<...>>>>>
?
你的概念沒有意義。 – CashCow 2014-09-22 16:50:03
@CashCow:哪個概念? – Deduplicator 2014-09-22 16:50:30
對不起,但直接遞歸類型不能在C++中定義。 – Deduplicator 2014-09-22 16:50:53