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>);
};

これをどのようにプログラムできますか?

4

1 に答える 1

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

コンストラクター宣言でBar<T>は、全体として、たとえばFoo<int, long, double>コンストラクターの取得Bar<int>, Bar<long>, Bar<double>が宣言されているように展開されるパターンです。

于 2013-04-06T05:32:26.807 に答える