我想我对如何存储可选值感到有些困惑。在构造包含std::optional<T>
成员的类或结构时,这些成员是连续存储在内存中还是可选动态分配?例如,下面的结构会是一个连续的内存块吗?
struct Material
{
std::string name;
std::optional<size_t> albedo;
std::optional<size_t> normal;
std::optional<size_t> metalness;
std::optional<size_t> roughness;
std::optional<size_t> ao; // ambient occlusion
bool hasAlphaChannel = false;
};