no_unique_address разрешает компилятору не выделять отдельный адрес пустому полю или полю нулевого размера внутри объекта.">
Следите за новинками
в нашем Telegram канале. Жми, чтобы подписаться:)
⊗cpSpLwNu 510 of 696 menu
◀ ▶

Поле без уникального адреса в C++

Атрибут no_unique_address разрешает компилятору не выделять отдельный адрес пустому полю или полю нулевого размера внутри объекта.

Так экономят место в агрегатах с политиками и пустыми тегами. Запишем структуру с пустым членом, выведем sizeof типа и сравним с обычным целым полем:

#include <iostream> struct Empty {}; struct Node { [[no_unique_address]] Empty tag; int value; }; int main() { std::cout << sizeof(Node) << "\n"; return 0; }

Добавьте структуру Holder с [[no_unique_address]] Empty и полем char c. Выведите sizeof(Holder).

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить