为什么std :: optional 使用两个字节?

问题描述 投票:1回答:1

如果C ++允许bool使用任何位,是什么阻止C ++优化std::optional使用1个字节并使用两位表示has_valuevalue()?当然,我们会使用口罩,但是在现代处理器中,它不会损害性能。

c++ memory stl
1个回答
4
投票

This:

constexpr const T& operator*() const&;
constexpr T& operator*() &;
constexpr T&& operator*() &&;

使您想要的东西变得不可能。 operator*需要返回对保留对象的引用。

© www.soinside.com 2019 - 2024. All rights reserved.