あなたはどんな点でより良いと思いますか?テンプレート識別子とテンプレート関数内のdecltypeパラメータタイプ
template <typename T> void func(T x,T y) {}
又は
template <typename T> void func(T x,decltype(x) y) {}
私見は、第2の形態は、xとyの種類との間でリンクが明示的であるため、好ましいと思われる、少なくともテンプレート識別子ものの名前を変更すると、より少ないエラーが発生しやすいと思われる場合。
EDIT
2番目の形式は最初の形式はまったく同じタイプを必要としているときに、最初のパラメータのための1つの使用のサブタイプを持つ関数を呼び出してみましょう。この議論は以前の議論よりもやや良いようです。
第2の形式も不要であるようです。 – DeiDei
私は実際に 'decltype'の代わりにユースケースを得ていません。なぜあなたはそのようなものを望んでいるのかを精緻化するように気をつけますか? –
2番目の形式では、最初の形式ではなく、 'y'の暗黙的な変換を有効にしませんか? – Quentin