能够比较 astd::optional<T>
与的相等性是非常有用的T
:
std::optional<int> opt_value;
int value = 123;
opt_value == value; // will always be 'false'
我认为这种情况下的行为定义明确且清晰。
我不明白为什么允许这样做:
opt_value < value; // this will always be 'true'
我期待这甚至无法编译。我认为这里发生的事情非常模糊。甚至将其添加到STL的原因是什么?