自从 boost::optional<T&>
已经是一个特化了,为什么不直接将其实现为 T*
的包装器? ?这将允许它占用更少的空间,因为不需要 m_initialized
bool 值。
最佳答案
自从 boost 1.61 optional 在引用的情况下进行了优化。
发行说明提到:
sizeof(optional<T&>) == sizeof(T*)
因此在这种情况下它肯定是作为指针实现的。
关于c++ - 为什么 boost 可选引用不是 T* 的包装器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12452801/