0
はC++入門第5版から1つの運動です:テンプレート関数パラメータ控除
template<typename T>
void f1(T, T){}
int i = 0, *p1 = &i;
const int *cp1 = &i;
f1(p1, cp1);
は、しかし、コンパイラはエラーを生成します。
no matching function for call to 'f1(int*&, const int*&)'
私はエラーがポイントの参照を含める理由はわかりませんか?私は、パラメータの減算は 'f1(int *、const int *)'だと思います。
このルールは**のみ**パラメータタイプが*ユニバーサルリファレンス*の場合は適用されますか? –
@DeanSeo私はあなたが理解したとは思わない。私の答えはテンプレート引数の控除とは関係ありません。 GCCが診断メッセージに特定の情報を表示する方法を選択するだけです。 – Brian
申し訳ありません。うん、もう一度それを読んで、あなたは正しい。 :) +1。 –