diff --git a/asl/object.hpp b/asl/object.hpp index 17e9ce4..936cd25 100644 --- a/asl/object.hpp +++ b/asl/object.hpp @@ -1,10 +1,17 @@ #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: }; } // namespace asl diff --git a/asl/object_tests.cpp b/asl/object_tests.cpp index 2f38372..794c540 100644 --- a/asl/object_tests.cpp +++ b/asl/object_tests.cpp @@ -1 +1,14 @@ +#include "asl/object.hpp" + +static_assert(asl::is_object>); +static_assert(asl::is_object>); +static_assert(asl::is_object>); +static_assert(asl::is_object>); + +static_assert(asl::is_empty>); +static_assert(sizeof(asl::object) == 4); +static_assert(sizeof(asl::object) == sizeof(void*)); +static_assert(sizeof(asl::object) == sizeof(void*)); +static_assert(sizeof(asl::object) == sizeof(void*)); + int main() { return 0; }