はいつか私のような2つのテンプレート書きたい:なぜC++でテンプレートのオーバーロードが許可されないのですか?
template <typename Type1>
class A{
...
};
template <typename Type1, typename Type2>
class A{
...
};
をしかし、2つのテンプレートが同じ名前を共有するが、異なるパラメータを持つ持つことは違法であると思われます。私はそれをA_1
,A_2
のように名づけなければならない。 Functorを実装するときにこれを行うことができれば便利だと思います。
なぜC++はこれを許可していませんか?いくつかの状況で実装するのが難しく、あいまいさがありますか?これはC++のそれ以降のバージョンでサポートされますか?
同じ理由から、C++では同じ名前の2つのクラスが許可されていません。 – Jack
C++ 11バリアントテンプレートの使用http://en.wikipedia.org/wiki/Variadic_template – higuaro
おそらく、デフォルトのテンプレート引数で近似できます。 –