Несколько std :: Необязательно <> и другие вещи, без расточительной прокладкиC++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Несколько std :: Необязательно <> и другие вещи, без расточительной прокладки

Сообщение Anonymous »

Когда вы создаете класс, который включает в себя несколько участников std :: Необязательно , например, < /p>

Код: Выделить всё

class A {
bool flag;
optional param1;
optional param2;
}
< /code>
его хранение очень расточительно: из -за выравнивания парных разрядов каждый из логических, вместо идеального 1 байта будет принять 8 байт. Очевидно, что все было бы лучше, если бы мы могли хранить все три лодки рядом друг с другом, а затем два двойника, с одной прокладкой вместо трех, но как? Я хочу только избавиться от его расточительной прокладки. Просто multi_optional_extra  
. Но мне интересно, есть ли более простое решение.


Подробнее здесь: https://stackoverflow.com/questions/796 ... ul-padding
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»