0

テンプレート ヘッダーを持つコンパレータ クラスを作成すると、

template <typename Type>
int operatorCmp(Type v1, Type v2);

たとえば、クラスやノードなどのインスタンスを取る cpp ファイルで、いくつかの異なる operatorCmp 実装を作成することは可能でしょうか? コンパイラは、引数に基づいて operatorCmp の適切な実装を自動的に使用しますか?

4

1 に答える 1

0

コンパイラは最初に非テンプレート関数を使用しようとするため、非テンプレート コンパレータを作成すると、コンパイラはそれを使用します。

また、テンプレートの部分的な特殊化を行うこともできます:

template<>
int operatorCmp<MyClass>(MyClass v1, MyClass v2);

コンパレータを作成するのはC++の方法です

于 2013-06-11T17:52:45.353 に答える