は、私は与えられた型として扱う2つの入力に対する算術演算を実行するためのC++の関数をしたいと言う:テンプレート引数へのポインタを関数の引数として渡しますか?
擬似:OPに合わせ
function(var X,var Y,function OP)
{
if(something)
return OP<int>(X,Y);
else if(something else)
return OP<double>(X,Y);
else
return OP<string>(X,Y);
}
の機能があるかもしれないように:
template <class T> add(var X,var Y)
{
return (T)X + (T)Y; //X, Y are of a type with overloaded operators
}
ですから、関数のシグネチャはどのように見えますか?演算子関数がテンプレート化されていない場合、私はそれを行うことができますが、この余分な複雑さと混乱します。
テンプレートテンプレートの引数を見てください。 (それはタイプミスではありません) – sbi
+1、OPを渡す方法は基本的に正解です。 – MSalters
これを回答として追加しました。私はそれに愚かな誤りを入れなかったことを願っています。 – sbi