ant*_*_rh 4 c++ c++-standard-library
关于std::add_lvalue_reference/的cppreference.comstd::add_rvalue_reference:
如果T是一个对象类型或函数类型没有CV-或REF-限定符,提供了一种构件的typedef类型,其为T &&,否则类型为T。
这是否意味着如果T为const或volatile,则T 不会转换为引用?如果否,那么这意味着“没有cv限定词”是什么意思。
这是否意味着如果T为const或volatile,则T不会转换为引用?
是的,但前提是它是一个函数。
cppreference中的引号可能会有些混乱。cppreference有
如果T是没有cv-或ref限定符的对象类型或函数类型,则提供成员typedef类型为T &&&,否则为T。
这可以使您相信cv-qualifer部分适用于对象和函数,但事实并非如此。该标准的实际文字是
对象类型,没有cv限定词或ref限定词的函数类型或引用类型
因此,任何没有cv-qualifier和ref-qualifier的对象类型和任何函数都将产生引用。具有cv限定词和/或ref限定词的引用或函数将产生T
当您看到cv-qualifier表示const和或volatile限定符时,即它是const和或volatile对象或const或volatile限定函数。 ref-qualifier表示引用限定符,即只能在左值或右值上调用该函数:void foo() &或void foo() &&。
| 归档时间: |
|
| 查看次数: |
55 次 |
| 最近记录: |