reference, declaration → definition definition → references, declarations, derived classes, virtual overrides reference to multiple definitions → definitions unreferenced |
216 optional_detail::OptionalStorage<T> Storage; 219 using value_type = T; 224 Optional(const T &y) : Storage(optional_detail::in_place_t{}, y) {} 227 Optional(T &&y) : Storage(optional_detail::in_place_t{}, std::move(y)) {} 230 Optional &operator=(T &&y) { 241 static inline Optional create(const T *y) { 245 Optional &operator=(const T &y) { 253 const T *getPointer() const { return &Storage.getValue(); } 254 T *getPointer() { return &Storage.getValue(); } 255 const T &getValue() const LLVM_LVALUE_FUNCTION { return Storage.getValue(); } 256 T &getValue() LLVM_LVALUE_FUNCTION { return Storage.getValue(); } 260 const T *operator->() const { return getPointer(); } 261 T *operator->() { return getPointer(); } 262 const T &operator*() const LLVM_LVALUE_FUNCTION { return getValue(); } 263 T &operator*() LLVM_LVALUE_FUNCTION { return getValue(); } 266 constexpr T getValueOr(U &&value) const LLVM_LVALUE_FUNCTION { 271 T &&getValue() && { return std::move(Storage.getValue()); } 272 T &&operator*() && { return std::move(Storage.getValue()); } 275 T getValueOr(U &&value) && {