C++ std::nullptr\t类型的prvalue
N3797第4.10/1节规定: 空指针常量是值为零的整数文本(2.14.2) 或std::nullptr\t类型的prvalueC++ std::nullptr\t类型的prvalue,c++,rvalue,C++,Rvalue,N3797第4.10/1节规定: 空指针常量是值为零的整数文本(2.14.2) 或std::nullptr\t类型的prvalue 我认为nullptr是prvalue类型的std::nullptr\u t。您是否可以获得更多此类prvalue的示例?与任何类型一样,有多种方法可以获得std::nullptr\t类型的prvalue: 从适当的表达式强制转换:static\u cast(0) 临时构造函数调用:std::nullptr\u t{} 调用返回函数的std::nullptr\u t
我认为
nullptr
是prvalue
类型的std::nullptr\u t
。您是否可以获得更多此类prvalue
的示例?与任何类型一样,有多种方法可以获得std::nullptr\t类型的prvalue
:
- 从适当的表达式强制转换:
static\u cast(0)
- 临时构造函数调用:
std::nullptr\u t{}
- 调用返回函数的
:std::nullptr\u t
std::nullptr\u t f(){return{};}f()
- 调用lambda返回
:std::nullptr\u t
[]()->std::nullptr\u t{return{};}()
- 一种逗号表达式,其中右侧是
prvalue:std::nullptr\u t
(“hello”,nullptr)
- 一种条件表达式,其中一侧具有类型
,另一侧具有不同的值类别,或者是抛出表达式:std::nullptr\u t
,false?抛出“oops”:nullptr
false?std::move(nullptr):nullptr
std::nullptr\u t
不参与大多数操作员,因此这是一个合理的消耗列表;大多数其他类型为std::nullptr\u t
的表达式将生成gl值