在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]);
}
}
Run Code Online (Sandbox Code Playgroud)
什么是left和right?它们是否引用了数组?C++ ISO标准2003或更高版本是否允许此代码?