【发布时间】:2021-08-27 13:42:44
【问题描述】:
我想我对如何存储可选值感到有些困惑。在构造包含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;
};
【问题讨论】:
-
除了
std::optional内部存储之外,您仍然担心padding 可能会导致您的成员不连续。
标签: c++ std stdoptional