c++ - 'char (&) [13]' 是什么意思?

标签 c++ c++11

作为一个老c++程序员,最近在学习c++11。在阅读Effective Modern C++时,我发现了一个有趣的类型:

char (&) [13]

将数组传递给需要 T& 的函数模板时:

template<typename T>
void funcTemplate1(T& param)
{
    std::cout << boost::typeindex::type_id_with_cvr<T>().pretty_name() << std::endl;
}
void main()
{
    char szHello[] = "Hello, World";
    funcTemplate1(szHello);
}

输出:

char (&) [13]

从没见过。是什么意思?

最佳答案

如果我们插入丢失的函数参数名,它变成:

char (&param) [13]

你肯定很熟悉这个:

char param[13]

这当然是一个包含 13 个字符的数组。添加 & 意味着它是对相同的引用。括号是必需的,因为它是对数组的引用,而不是引用数组。

关于c++ - 'char (&) [13]' 是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46500930/

相关文章:

c++ - 与 std::condition_variable_any 相关的开销是多少

c++ - R Rcpp big.matrix加入

c++ - 在 gamedev 中编程(性能相关)

c++ - 如何在调整 QTableView 大小时动态更改列数?

具有类成员默认值的 C++11 默认构造函数行为

c++ - 使用更新的 C++ 标准向后移植的类型和模板扩展命名空间 std

c++ - 从三次贝塞尔曲线的 x 坐标获取 y,快速 Newton-Raphson 方法

c++ - ThreadSanitizer 在使用嵌入式引用计数器时报告 "data race on operator delete(void*)"

c++ - 方法接受函数指针的可变参数模板

c++ - std::array 成员函数 empty()、max_size() - 无用但为了一致性?