如果C ++允许bool使用任何位,是什么阻止C ++优化std::optional使用1个字节并使用两位表示has_value和value()?当然,我们会使用口罩,但是在现代处理器中,它不会损害性能。
bool
std::optional
has_value
value()
This:
constexpr const T& operator*() const&; constexpr T& operator*() &; constexpr T&& operator*() &&;
使您想要的东西变得不可能。 operator*需要返回对保留对象的引用。
operator*