using FlexibleDataReturnType = Type[0]; \
FlexibleDataReturnType&
name() {
return flexible_array_member_data_; } \
const FlexibleDataReturnType&
name()
const { \
return flexible_array_member_data_; \
} \
Type flexible_array_member_data_[0]; \
\
public: \
template <typename Class> \
static constexpr auto OffsetOfDataStart() { \
\
static_assert(base::tmp::lazy_true< \
decltype(std::declval<Class>() \
.flexible_array_member_data_)>::value); \
return static_cast<int>(offsetof(Class, flexible_array_member_data_)); \
} \
\
private: \
using FlexibleDataType = Type