C++ programs create, destroy, refer to, access, and manipulate objects.
An object, in C++, is a region of storage that has.
size (can be determined with sizeof) alignment requirement (can be determined by alignof) storage duration (automatic, static, dynamic, thread-local) lifetime (bounded by storage duration or temporary) type value (which may be indeterminate, e.g. for default-initialized non-class types) optionally, a name
Functions, references, classes and other types, name