所以我需要一些帮助/提示来识别 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;
}
关于每个约束或约束组的简短解释会很好。谢谢您的帮助。
所以我需要一些帮助/提示来识别 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;
}
关于每个约束或约束组的简短解释会很好。谢谢您的帮助。
T
必须是对象类型而不是引用,因为const T a[]
必须是有效的参数声明。T
必须是可移动或可复制的,因为它是返回类型。T
由于 .必须是可复制构造的T sum = a[0]
。T
由于.必须允许t += s
类型的对象。T
sum += a[i]
T
必须能被整数整除,因为sum/size
.T
或必须至少可以隐式转换为,T
因为函数返回 a T
。1-2。a 必须是数组,类型为 T。
3. size 必须是 int。
4.尺寸必须小于或等于长度a。
5. 变量接收返回必须是 T 类型。
6. 数组长度必须为 1 或更大。