0

そのため、C++ でテンプレートの制約を特定するためのちょっとしたヘルプ / ヒントが必要です。全部で 6 つの制約を含むサンプル コードを次に示します。明白なものは見つけることができますが、6つすべてを特定することはできません...

template <class T> 
T avg(const T a[], int size)
{
    T sum = a[0];

    for (int i = 1; i < size; i++)
    sum += a[i];

    return sum/size;
}

各制約または制約のグループについての簡単な説明があればよいでしょう。助けてくれてありがとう。

4

2 に答える 2

4
  1. Tconst T a[]は有効なパラメーター宣言でなければならないため、参照ではなくオブジェクト型である必要があります。
  2. T戻り型であるため、移動可能またはコピー可能である必要があります。
  3. Tにより、コピー構築可能でなければなりませんT sum = a[0]
  4. Tによるt += sタイプのオブジェクトを許可する必要があります。Tsum += a[i]
  5. Tのため、整数で割り切れる必要がありますsum/size
  6. 関数は を返すため、除算の結果は であるTか、少なくとも暗黙的に変換可能でなければなりません。TT
于 2013-07-24T13:14:47.247 に答える
0

1-2. a は T 型の配列でなければなりません。
3. size は int でなければなりません。
4. size は a の長さ以下でなければなりません。
5. 戻り値を受け取る変数は T 型でなければなりません。
6. 配列の長さは 1 以上でなければなりません。

于 2013-07-24T13:10:50.800 に答える