既然boost::optional<T&>已经是一种特殊化了,为什么不直接作为T*的包装器来实现呢?这将允许它占用更少的空间,因为不需要m_initialized布尔值。
boost::optional<T&>
T*
m_initialized
发布于 2016-05-17 21:13:55
因为boost 1.61 optional在引用的情况下是优化的。
发行说明中提到:
sizeof(optional<T&>) == sizeof(T*)
因此,在这种情况下,它肯定是作为指针实现的。
https://stackoverflow.com/questions/12452801
相似问题