#pragma once template class TInlineAllocator { private: template struct alignas(Alignment) TAlignedBytes { unsigned char Pad[Size]; }; template struct TTypeCompatibleBytes : public TAlignedBytes { }; public: template class ForElementType { friend class TBitArray; private: TTypeCompatibleBytes InlineData[NumElements]; ElementType* SecondaryData; }; };