以下から、考えられるすべての、少なくとも 3 つのエラーを見つける必要があります。
template<typename A, typename B, typename C>
C myfunction(const A& a, const B& b)
{
if ( a < b ) return (C) a;
else return (C) b;
}
私の答えは
typename A と B は、エラーを発生させる異なる型を持つことができます。さらに悪いことに、演算子 < は関数で定義されていません。
typename C は A および B とは異なる場合があり、const で定義されている a、b オブジェクトに変更を加えます。
typename A は整数型にすることができますが、整数型には定数参照を使用せず、オブジェクトにのみ使用します。
私の3番目の答えは間違っていました....
私の答えが間違っていた理由と、このテンプレートから発生する可能性のあるすべてのエラーを誰か説明できますか? 最初の 2 つの回答の功績は認められましたが、あまり好きではありません。誰もこれに対するより良い解決策を持っていますか?
ありがとう、