(&) - 括号中的与号 - 在此代码中是什么意思?
What does (&) -- ampersand in parentheses -- mean in this code?
在这个答案中,给出了以下代码(C++11):
template <typename T, size_t N>
constexpr size_t size_of(T (&)[N]) {
return N;
}
在这种情况下,(&)
意味着什么?这种东西非常难以搜索。
它是这样的东西的简写:
template <typename T, size_t N>
constexpr size_t size_of(T (&anonymous_variable)[N]) {
return N;
}
在函数中,您实际上不需要变量的名称,只需要N
上的模板推导 - 因此我们可以简单地选择省略它。括号在语法上是必要的,以便通过引用传入数组 - 您不能按值传入数组。
这是
通过引用将数组作为参数传递:
template <typename T, size_t N>
constexpr size_t size_of(T (&)[N]) {
return N;
}
由于您不能传递这样的数组:
template <typename T, size_t N>
constexpr size_t size_of(T[N]) {
return N;
}
如果为数组指定一个名称,它将如下所示:
template <typename T, size_t N>
constexpr size_t size_of(T (&arrayname)[N]) {
return N;
}
相关文章:
- 获取英特尔 Kaby Lake 架构上最后一级高速缓存未命中计数的确切代码是什么?
- 这行代码是什么意思
- 此练习的C 代码是什么
- c++ 中的代码是什么意思
- 这个代码是什么意思 std::vector<cv::P oint2f> points[2]
- 这一小堆代码是什么意思
- C++向量,这段代码是什么意思
- 在 c++ 中加减分数的代码是什么
- 验证给定C++编译器是否将源代码读取为 C++11 的快速简单代码是什么?
- DllMain 中钩子回调函数的入口代码是什么
- static_cast<T* 易失性*> - 此代码是什么意思?
- 任务杀死实用程序的退出代码是什么
- GCC 发出的 vtable 汇编代码中的那两个长代码是什么?
- 这C++代码是什么意思?'const ResTable&res = am->getResources();'
- 这个Python切片语句的C++等效代码是什么
- 在链表形成中,在开头添加变量的代码是什么
- MinGW .exe 需要一些 gcc dll 的,不管代码是什么?
- &x 输出到控制台的代码是什么?
- 类型铸造?样板这行cpp代码是什么
- 这行代码是什么意思*((int*)(0))=1;