Start work on object

This commit is contained in:
2024-08-15 01:08:06 +02:00
parent 298ee421d9
commit 03e5d14ed1
2 changed files with 20 additions and 0 deletions

View File

@ -1,10 +1,17 @@
#pragma once #pragma once
#include "asl/ptr.hpp"
namespace asl { namespace asl {
template<typename T> template<typename T>
class object final class object final
{ {
using wrapped = devoid_t<un_qual_t<typename ptr<T>::pointee>>;
ASL_NO_UNIQUE_ADDRESS wrapped m_value;
public:
}; };
} // namespace asl } // namespace asl

View File

@ -1 +1,14 @@
#include "asl/object.hpp"
static_assert(asl::is_object<asl::object<void>>);
static_assert(asl::is_object<asl::object<int>>);
static_assert(asl::is_object<asl::object<int&>>);
static_assert(asl::is_object<asl::object<int()>>);
static_assert(asl::is_empty<asl::object<void>>);
static_assert(sizeof(asl::object<int>) == 4);
static_assert(sizeof(asl::object<int*>) == sizeof(void*));
static_assert(sizeof(asl::object<int&>) == sizeof(void*));
static_assert(sizeof(asl::object<int()>) == sizeof(void*));
int main() { return 0; } int main() { return 0; }