这个问题严格来说是关于<experimental/optional>
(即std::experimental::optional
一个),因为Clang没有<optional>
。因此,请避免使用通常的“您不应使用A,而应使用B”来节省时间。
EDIT: Mat提到有布尔运算符,而不是has_value
这个问题严格上是关于<experimental/optional>
(即std::experimental::optional
一个,因为Clang没有<optional>
。
libc ++自版本4.0.0(已于2017年3月13日发布)开始包含<optional>
,并且该版本(以及所有后续版本)都包含这两个:
constexpr bool has_value() const noexcept;
和
constexpr explicit operator bool() const noexcept { return has_value(); }
附录:experimental::optional
没有has_value
,因为指定的TS(库基础V2)不包含-仅operator bool