title: Can optional<double> be implemented as 8-byte object?
body: <p>Is it possible to implement std::optional such that <code>sizeof(std::optional&lt;double&gt;) == 8</code> by somehow using that you can store characters in a NAN, see <a href="http://en.cppreference.com/w/cpp/numeric/math/nan" rel="noreferrer">http://en.cppreference.com/w/cpp/numeric/math/nan</a>? Are there implementations that do that? Can it be done in terms of the functionality that is available in the standard?</p>