Код: Выделить всё
// This function returns whether the type `_Second` can be stuffed into the tail padding
// of the `_First` type if both of them are given `[[no_unique_address]]`.
template
inline constexpr bool __fits_in_tail_padding = []() {
struct __x {
_LIBCPP_NO_UNIQUE_ADDRESS _First __first;
_LIBCPP_NO_UNIQUE_ADDRESS _Second __second;
};
return sizeof(__x) == sizeof(_First);
}();
< /code>
_LIBCPP_NO_UNIQUE_ADDRESS
Код: Выделить всё
# if __has_cpp_attribute(msvc::no_unique_address)
// MSVC implements [[no_unique_address]] as a silent no-op currently.
// (If/when MSVC breaks its C++ ABI, it will be changed to work as intended.)
// However, MSVC implements [[msvc::no_unique_address]] which does what
// [[no_unique_address]] is supposed to do, in general.
# define _LIBCPP_NO_UNIQUE_ADDRESS [[msvc::no_unique_address]]
# else
# define _LIBCPP_NO_UNIQUE_ADDRESS [[__no_unique_address__]]
# endif
< /code>
In my understanding, it is the __second
Подробнее здесь: https://stackoverflow.com/questions/797 ... dding-opti