#pragma once #include "asl/ptr.hpp" namespace asl { template class object final { using wrapped = devoid_t::pointee>>; ASL_NO_UNIQUE_ADDRESS wrapped m_value; public: object() requires default_constructible = default; object(const object&) = default; object(object&&) = default; object& operator=(const object&) = default; object& operator=(object&&) = default; ~object() = default; }; } // namespace asl