8 #ifndef CORE_OPTIONAL_H_ 9 #define CORE_OPTIONAL_H_ 11 #if __cplusplus >= 201703L 31 p(new payload_full(t)) {
36 p(new payload_full(t)) {
59 constexpr
explicit operator bool()
const {
69 return static_cast<payload_full*
>(p)->t;
75 explicit payload(
bool has_value =
false) :
82 struct payload_full:
public payload {
83 explicit payload_full(
const T &t) :
84 payload(
true), t(std::move(t)) {
optional(const optional &&o)
constexpr bool has_value() const
optional & operator=(optional &&o)