blob: e45376de34c59840beaeb800e3a7b94e89b77c0f (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
|
#pragma once
#include "asl/ptr.hpp"
namespace asl {
template<typename T>
class object final
{
using wrapped = devoid_t<un_qual_t<typename ptr<T>::pointee>>;
ASL_NO_UNIQUE_ADDRESS wrapped m_value;
public:
object() requires default_constructible<wrapped> = default;
object(const object&) = default;
object(object&&) = default;
object& operator=(const object&) = default;
object& operator=(object&&) = default;
~object() = default;
};
} // namespace asl
|