История изменений
Исправление KennyMinigun, (текущая версия) :
В C++ sizeof даже для «пустых» типов будет равен 1. Потому как указатели на разные обьекты должны тоже отличатся.
Единственный случай, когда размер пустого обьекта (можно сказать) равен нулю — при наследовании:
struct Empty {};
static_assert(size of(Empty) == 1);
struct Derived : Empty {};
static_assert(size of(Derived) == 1);
Т.е. можно попробовать сделать что-то на основе...
Еще в C++20 появится аттрибут [[no_unique_address]]
который расширяет возможности по созданию пустых обьектов.
https://en.cppreference.com/w/cpp/language/attributes/no_unique_address
Исходная версия KennyMinigun, :
В C++ sizeof даже для «пустых» типов будет равен 1. Потому как указатели на разные обьекты должны тоже отличатся.
Единственный случай, когда размер пустого обьекта (можно сказать) равен нулю — принаследовании:
struct Empty {};
static_assert(size of(Empty) == 1);
struct Derived : Empty {};
static_assert(size of(Derived) == 1);
Т.е. можно попробовать сделать что-то на основе...
Еще в C++20 появится аттрибут [[no_unique_address]]
который расширяет возможности по созданию пустых обьектов.
https://en.cppreference.com/w/cpp/language/attributes/no_unique_address