今日、私はテンプレートクラスにテンプレートクラスを渡そうとしました。私のテンプレートクラスstd::map
には4つのテンプレートパラメータがありますが、最後の2つはデフォルトパラメータです。テンプレートパラメータとしてのテンプレートクラスのデフォルトパラメータ
#include <map>
template<typename K, typename V, typename P, typename A,
template<typename Key, typename Value, typename Pr= P, typename All=A> typename C>
struct Map
{
C<K,V,P,A> key;
};
int main(int argc, char**args) {
// That is so annoying!!!
Map<std::string, int, std::less<std::string>, std::map<std::string, int>::allocator_type, std::map> t;
return 0;
}
残念ながら、私は最後の二つのパラメータのすべての時間を渡すためにしたくない:
私はコンパイルするには、次のコードを取得することができました。それは本当にあまりにも多くの書き込みです。ここで、デフォルトのテンプレート引数をいくつか使用できますか?
感謝を!私はこれらの新しいバリデーショナルテンプレートを認識していませんでした。エレガントで短い。 – Aleph0