| 813 | mVariant); |
| 814 | } |
| 815 | constexpr decltype(auto) value() const |
| 816 | { |
| 817 | return std::visit( |
| 818 | overload([](Type const &v) -> Type const & { return v; }, |
| 819 | [](Type const *p) -> Type const & { return *p; }, |
| 820 | [](std::monostate const &) -> Type const & { |
| 821 | throw std::logic_error("invalid state!"); |
| 822 | }), |
| 823 | mVariant); |
| 824 | } |
| 825 | |
| 826 | constexpr decltype(auto) mutableValue() |
| 827 | { |