テンプレート関数があるとしましょうassign()
。ポインターと値を取り、その値をポインターのターゲットに割り当てます。
template <typename T> void assign(T *a, T b) { *a = b; }
int main() {
double i;
assign(&i, 2);
}
この場合、私は常にT
最初の引数から推測されたいと思っていますが、これをうまく表現できていないようです。2
のタイプは ですint
。
deduce.cpp:5:5: エラー: 'assign' の呼び出しに一致する関数がありません 割り当てます (&i, 2); ^~~~~~ deduce.cpp:1:28: 注: 候補テンプレートは無視されました: パラメータ 'T' ('double' と 'int') の競合する型を推測しました template void assign(T *a, T b) { *a = b; }
assign()
2 番目の引数がテンプレート パラメーターの推論に参加しないように宣言できる方法はありますか?