12 template <
class Value, std::
size_t Tag = 0,
bool = std::is_
class_v<Value> and not std::is_final_v<Value>>
15 template <
class,
class>
18 template <
class Value, std::
size_t Tag>
43 friend const Value& get_value(
const self_type&
self)
44 {
return static_cast<const Value&
>(
self); }
46 friend const Value&& get_value(
const self_type&&
self)
47 {
return static_cast<const Value&&
>(
self); }
52 template <
class Value, std::
size_t Tag>
57 template <
class ... T>
59 value_(std::forward<T>(args)...)
64 friend const Value& get_value(
const self_type&
self)
65 {
return self.value_; }
67 friend const Value&& get_value(
const self_type&&
self)
75 template <
class Value, std::
size_t Tag = 0,
bool = std::is_
class_v<Value> and not std::is_final_v<Value>>
78 template <
class Value, std::
size_t Tag>
83 using base_type = Value;
105 friend const Value& get_value(
const self_type&
self)
106 {
return static_cast<const Value&
>(
self); }
108 friend const Value&& get_value(
const self_type&&
self)
109 {
return static_cast<const Value&&
>(
self); }
111 friend Value& get_value(self_type&
self)
112 {
return static_cast<Value&
>(
self); }
114 friend Value&& get_value(self_type&&
self)
115 {
return static_cast<Value&&
>(
self); }
120 template <
class Value, std::
size_t Tag>
124 template <
class ... T>
126 value_(std::forward<T>(args)...)
131 friend const Value& get_value(
const self_type&
self)
132 {
return self.value_; }
134 friend const Value&& get_value(
const self_type&&
self)
137 friend Value& get_value(self_type&
self)
138 {
return self.value_; }
140 friend Value&& get_value(self_type&&
self)
Definition: ValueHolder.h:13
Primary classes and utility functions for AnySet.
Definition: SetOperations.h:21
Definition: ValueHolder.h:121
Definition: ValueHolder.h:19
Definition: ValueHolder.h:53
Definition: ValueHolder.h:76
Definition: ValueHolder.h:79