可选的<double>可以实现为8字节对象吗?

Tob*_*ull 5 c++ std optional boost-optional

是否可以实现std :: optional,以便sizeof(std::optional<double>) == 8通过某种方式使用它可以将字符存储在NAN中,请参阅http://en.cppreference.com/w/cpp/numeric/math/nan?是否有实现这样做?它可以在标准中提供的功能方面完成吗?

Mar*_*k B 1

我认为这是不可能做到的,因为没有规则阻止程序自行利用和依赖 NaN 中的额外位。然后,如果您将幻数存储到 中,optional它看起来就像不存在,而不是应用程序的特殊 NaN。