Полагаю, я немного не понимаю, как именно хранятся необязательные значения. При создании класса или структуры, содержащей элементы std::optional, будут ли эти члены храниться в памяти последовательно или необязательное выделение будет динамическим? Например, будет ли приведенная ниже структура одним непрерывным блоком памяти?
struct Material
{
std::string name;
std::optional albedo;
std::optional normal;
std::optional metalness;
std::optional roughness;
std::optional ao; // ambient occlusion
bool hasAlphaChannel = false;
};
Подробнее здесь: https://stackoverflow.com/questions/679 ... ntiguously