#pragma once #include "asl/integers.hpp" #include "asl/meta.hpp" namespace asl { template inline constexpr int64_t size_of = static_cast(sizeof(T)); template inline constexpr int64_t align_of = static_cast(alignof(T)); struct layout { int64_t size; int64_t align; constexpr bool operator==(const layout&) const = default; template static constexpr layout of() { return layout{ size_of, align_of }; } }; } // namespace asl