作为一个老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 (¶m) [13]
你肯定很熟悉这个:
char param[13]
这当然是一个包含 13 个字符的数组。添加 &
意味着它是对相同的引用。括号是必需的,因为它是对数组的引用,而不是引用数组。
关于c++ - 'char (&) [13]' 是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46500930/