さまざまなタイプを判別するために特定のコンテナーを内部的に使用するジェネリッククラステンプレートを作成したいと思います。このようなもの:
#include <vector>
#include <list>
template< typename F, template< class ... > class container_type = std::vector >
struct C
{
C();
template< typename U >
C(container_type< U >);
C(container_type< F >);
C(container_type< int >);
container_type< double > param;
};
C< unsigned, std::list > c;
これを行う最も自然な方法は何ですか?たとえば、コンテナのアロケータの存在について何らかの形で言及したいかどうか。