1

map、unordered_map などのさまざまなキー値コンテナーを使用するラッパー クラスを実装したいと考えています。

ユーザーが次のようにコードを使用できることを願っています。

MyWrapper<std::map> w1;
MyWrapper<std::tr1::unordered_map> w2;

これを実現するために「テンプレート テンプレート パラメータ」を使用しますが、map と unordered_map のテンプレート パラメータが異なります。

// but this Wrapper is for std::map only....
template< template<typename,typename,typename,typename> class CONTAINER>
class MyWrapper
{
     CONTAINER<string, string,
            std::less<string>,
            std::allocator<std::pair<const string, string> > > c_;
};

MyWrapper<std::map> w1;
MyWrapper<std::tr1::unordered_map> w1; // not compiled!!!

map または unordered_map をテンプレート パラメータとして渡すことができるクラスを作成する方法はありますか?? ありがとう!

4

1 に答える 1

-1

C++11 と可変個引数テンプレートを使用して、必要なことを実行できる場合があります。

template< template<typename, typename...> class CONTAINER>
于 2013-03-07T19:54:26.897 に答える