c++ - 什么是 T (& var)[N]?

标签 c++ boost

boost/utility/swap.hpp 中我找到了这段代码:

template<class T, std::size_t N>
void swap_impl(T (& left)[N], T (& right)[N])
{
  for (std::size_t i = 0; i < N; ++i)
  {
    ::boost_swap_impl::swap_impl(left[i], right[i]);
  }
}

什么是?它们是对数组的引用吗? C++ ISO 标准 2003 或更高版本是否允许此代码?

最佳答案

对类型 T 和长度 N 的数组的引用。

这是 C 的指针数组语法的自然扩展,并受 C++03 支持。

你可以使用 cdecl.org尝试解析这些复杂的类型声明。

关于c++ - 什么是 T (& var)[N]?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5720360/

相关文章:

c++ - spirit real_parser ".e"

c++ - 将 ‘double*’ 转换为 ‘boost::any*’

c++ - 绘制一个对象,比较模板缓冲区的两个不同值

c++ - 在 win32 系统上有多少稳定的(无限长的时间)客户端连接(套接字)可以处理服务器(boost::asio)?

c++ - 面向侵入式数据结构的面向对象设计

c++ - 为什么我不能在 C++ 中将引用存储在 `std::map` 中?

c++ - HTTP 内容长度非常大时崩溃

c++ - libcurl 中是否有可用的压缩

c++ - boost 正则表达式空格后跟一个或多个星号

c++ - Boost.Log 在每个日志语句后刷新