我正在阅读有关通用引用/转发引用的信息,此链接表示:
这param是一个通用参考:
template<typename T>
void f(T&& param);
Run Code Online (Sandbox Code Playgroud)
但这里param不是一个通用引用,它是一个右值引用:
template<typename T>
void f(const T&& param);
Run Code Online (Sandbox Code Playgroud)
通用引用的定义如下:
如果变量或参数被声明为具有某种推导类型 T 的类型 T&&,则该变量或参数是通用引用。
我读过 T 是一个推导类型,因为Template argument deduction。
为什么第二种情况不是通用参考?const T&& param出于某种原因,是否存在不遵循模板参数推论?如果是这样,为什么?
std::array 模板参数是template < class T, size_t N > class array;其中 N 代表数组中元素的数量。
我的疑问是为什么是类型std::size_t?std::size_t 不是以字节为单位的对象/指针大小的别名。std::size_t
为什么用它来表示std::array这里的元素数量?