export module Core.AlignedData; export import Core.Types; export namespace Core { template class alignas(ALIGNMENT) AlignedData final { char buffer[SIZE] = {}; public: template constexpr T* as() noexcept { return reinterpret_cast(this); } template constexpr const T* as() const noexcept { return reinterpret_cast(this); } static consteval size_t getSize() noexcept { return SIZE; } static consteval size_t getAlignment() noexcept { return ALIGNMENT; } }; template using AlignedType = AlignedData; }