c++ - 这里的 T(&arr)[N] 中的 arr 是什么类型
问题描述
我在学习模板时遇到了下面这个功能
template<typename T, int N>
int length(const T(&arr)[N])
{
return N;
}
int main(){
int nums[]{1,2,3,4};
int len = length(nums);
}
我曾经__PRETTY_FUNCTION__
了解发生了什么,输出是
int length(const T (&)[N]) [with T = int; int N = 4]
const T (&)[N]
-> 表示大小为 N 的类型 T 数组引用?这里的类型是arr
什么?
解决方案
这里的 arr 类型是什么?
它是const T (&)[N]
对一个包含 N 个类型的对象的数组的引用const T
。
请注意,这个函数模板(或几乎相同)已经存在于标准库中(按名称std::size
),因此无需重新编写它。
推荐阅读
- javascript - 谷歌网络应用计算器
- python - 如何添加到python字典动态输入
- javascript - 留言后重定向到上一页
- ios - Xcode 12 - Flutter 应用程序 iOS 构建错误 - 产生多个命令 / throwToolExit (package:flutter_tools/src/base/common.dart:14:3)
- python - 如何计算python中字典列表中的元素?
- javascript - Jquery - 获取总长度 - 在特定类名元素存在之前/之后
- c# - 如何在 UWP 中获取已连接 BluetoothLEDevice 的 RSSI?
- amazon-web-services - 我们可以将一个 ALB 与 AWS ECS Fargate 一起使用吗?
- wordpress - 在 Wordpress 上,我在哪里放置 Contact Form 7 的挂钩?
- c - 验证用户的输入以检查输入在 C 中的格式是否正确