可能重复:
有人可以解释这个模板代码,它给出了数组的大小吗?
嗨,我正在看这里发布的答案:
复制到这里:
template <typename T, std::size_t N>
std::size_t size(T (&)[N])
{
return N;
}
Run Code Online (Sandbox Code Playgroud)
有人可以解释一下(&)的重要性吗?
的&说,该阵列被通过引用传递.这可以防止类型衰减到指针.如果不通过引用传递,您将获得该衰减,并且没有关于数组大小的信息.
非模板示例:
void foo( int (&a)[5] )
{
// whatever
}
int main()
{
int x[5];
int y[6];
foo( x ); // ok
//foo( y ); // !incompatible type
}
Run Code Online (Sandbox Code Playgroud)
干杯&hth.,
| 归档时间: |
|
| 查看次数: |
279 次 |
| 最近记录: |