第4.10 / 1节N3797说:
空指针常量是一个整数文字(2.14.2),其值为零 或者类型为std :: nullptr_t的prvalue。
我认为nullptr
是prvalue
类型的std::nullptr_t
。你会得到更多这样的prvalue
的例子吗?
答案 0 :(得分:3)
与任何类型一样,有多种方法可以获得std::nullptr_t
类型的prvalue:
static_cast<std::nullptr_t>(0)
std::nullptr_t{}
std::nullptr_t
:std::nullptr_t f() { return {}; } f()
std::nullptr_t
:[]() -> std::nullptr_t { return {}; }()
std::nullptr_t
prvalue:("hello", nullptr)
std::nullptr_t
,另一方具有不同的值类别或者是throw-expression:false ? throw "oops" : nullptr
,false ? std::move(nullptr) : nullptr
因为std::nullptr_t
没有参与大多数运营商,所以这是一个相当令人疲惫的清单;类型为std::nullptr_t
的大多数其他表达式都会产生glvalues。