Lines Matching refs:Unwrap
55 static auto Unwrap(B &x) -> Constify<A, B> * {
65 static auto Unwrap(B *p) -> Constify<A, B> * {
67 return Unwrap<A>(*p);
74 static auto Unwrap(const std::unique_ptr<B> &p) -> Constify<A, B> * {
76 return Unwrap<A>(*p);
83 static auto Unwrap(const std::shared_ptr<B> &p) -> Constify<A, B> * {
85 return Unwrap<A>(*p);
92 static auto Unwrap(std::optional<B> &x) -> Constify<A, B> * {
94 return Unwrap<A>(*x);
101 static auto Unwrap(const std::optional<B> &x) -> Constify<A, B> * {
103 return Unwrap<A>(*x);
110 static A *Unwrap(std::variant<Bs...> &u) { in Unwrap() function
113 using Ty = std::decay_t<decltype(Unwrap<A>(x))>; in Unwrap()
116 return Unwrap<A>(x); in Unwrap()
124 static auto Unwrap(const std::variant<Bs...> &u) -> std::add_const_t<A> * {
126 [](const auto &x) -> std::add_const_t<A> * { return Unwrap<A>(x); }, u);
130 static auto Unwrap(const Indirection<B, COPY> &p) -> Constify<A, B> * {
131 return Unwrap<A>(*p);
135 static auto Unwrap(const CountedReference<B> &p) -> Constify<A, B> * {
137 return Unwrap<A>(*p);
144 template<typename A, typename B> auto Unwrap(B &x) -> Constify<A, B> * {
145 return UnwrapperHelper::Unwrap<A>(x);
150 if (const A * p{Unwrap<A>(x)}) { in UnwrapCopy()