2013-04-06 110 views
0

我有一個可變參數模板類。 它的構造應該接受模板上的每個參數特定的類的實例,即「分配」可變參數模板

class Foo<A> 
{ 
public: 
    Foo(Bar<A>); 
}; 

class Foo<A, B> 
{ 
public: 
    Foo(Bar<A>, Bar<B>); 
}; 

class Foo<A, B, C> 
{ 
public: 
    Foo(Bar<A>, Bar<B>, Bar<C>); 
}; 

我如何編程呢?

+0

它應該是可能的部分專業化和遞歸定義 – 2013-04-06 04:32:34

回答

2
template<typename... T> 
struct Foo { 
    Foo(Bar<T>... bar); 
}; 

在構造函數聲明中,作爲整體的Bar<T>是被擴展的模式,例如,對於Foo<int, long, double>,聲明爲Bar<int>, Bar<long>, Bar<double>的構造函數被聲明。

+0

謝謝,這工作!我現在也覺得我對'...'操作符有更好的理解! – jmegaffin 2013-04-06 12:59:54