0
我試圖聲明類B,如下面所寫。問題是,據我所知,A<B, T1>
實際上隱含地認爲是A<B<T1>, T1>
,它不符合A類定義。因此,我的問題是:是否有可能在其自己的定義中使用類B,在其「模板非實例化」形式中?如果是的話如何?防止類模板中的隱式實例
template <template <class T1> class T2, class T1>
class A {
};
template <class T1>
class B {
A<B, T1>* example;
};
這導致以下編譯錯誤與gcc4.2:
錯誤:在模板參數列表參數1類型/值不匹配「的模板<模板<類T1> T2類,類T1 > A級」
錯誤:預期類模板,得到了 'B < T1>'
也許策略克隆習語是你的東西 – PlasmaHH
你能給我們一個完整的例子,無法編譯或至少告訴我們哪個編譯器無法編譯這個?當我添加一個'main'來實例化'B'它用g ++ 4.4和4.5編譯得很好。 –
「問題是,據我所知...」 - 沒有錯誤信息,沒有問題。 –