Lines Matching refs:Optional
36 class Optional; variable
352 std::is_constructible<T, Optional<U>&>::value ||
353 std::is_constructible<T, const Optional<U>&>::value ||
354 std::is_constructible<T, Optional<U>&&>::value ||
355 std::is_constructible<T, const Optional<U>&&>::value ||
356 std::is_convertible<Optional<U>&, T>::value ||
357 std::is_convertible<const Optional<U>&, T>::value ||
358 std::is_convertible<Optional<U>&&, T>::value ||
359 std::is_convertible<const Optional<U>&&, T>::value> {};
366 std::is_assignable<T&, Optional<U>&>::value ||
367 std::is_assignable<T&, const Optional<U>&>::value ||
368 std::is_assignable<T&, Optional<U>&&>::value ||
369 std::is_assignable<T&, const Optional<U>&&>::value> {};
429 class OPTIONAL_DECLSPEC_EMPTY_BASES Optional
442 constexpr Optional() = default;
443 constexpr Optional(const Optional& other) = default;
444 constexpr Optional(Optional&& other) noexcept(
447 constexpr Optional(nullopt_t) {} // NOLINT(runtime/explicit)
459 Optional(const Optional<U>& other) : internal::OptionalBase<T>(other) {}
467 explicit Optional(const Optional<U>& other)
478 Optional(Optional<U>&& other) : internal::OptionalBase<T>(std::move(other)) {}
486 explicit Optional(Optional<U>&& other)
490 constexpr explicit Optional(in_place_t, Args&&... args)
499 constexpr explicit Optional(in_place_t,
511 !std::is_same<internal::RemoveCvRefT<U>, Optional<T>>::value &&
514 constexpr Optional(U&& value)
522 !std::is_same<internal::RemoveCvRefT<U>, Optional<T>>::value &&
525 constexpr explicit Optional(U&& value)
528 ~Optional() = default;
531 Optional& operator=(const Optional& other) = default;
532 Optional& operator=(Optional&& other) noexcept(
536 Optional& operator=(nullopt_t) {
544 !std::is_same<internal::RemoveCvRefT<U>, Optional<T>>::value &&
549 Optional&>
560 Optional&>
561 operator=(const Optional<U>& other) {
571 Optional&>
572 operator=(Optional<U>&& other) {
655 void swap(Optional& other) {
709 constexpr bool operator==(const Optional<T>& lhs, const Optional<U>& rhs) {
718 constexpr bool operator!=(const Optional<T>& lhs, const Optional<U>& rhs) {
727 constexpr bool operator<(const Optional<T>& lhs, const Optional<U>& rhs) {
736 constexpr bool operator<=(const Optional<T>& lhs, const Optional<U>& rhs) {
745 constexpr bool operator>(const Optional<T>& lhs, const Optional<U>& rhs) {
754 constexpr bool operator>=(const Optional<T>& lhs, const Optional<U>& rhs) {
763 constexpr bool operator==(const Optional<T>& opt, nullopt_t) {
768 constexpr bool operator==(nullopt_t, const Optional<T>& opt) {
773 constexpr bool operator!=(const Optional<T>& opt, nullopt_t) {
778 constexpr bool operator!=(nullopt_t, const Optional<T>& opt) {
783 constexpr bool operator<(const Optional<T>& opt, nullopt_t) {
788 constexpr bool operator<(nullopt_t, const Optional<T>& opt) {
793 constexpr bool operator<=(const Optional<T>& opt, nullopt_t) {
798 constexpr bool operator<=(nullopt_t, const Optional<T>& opt) {
803 constexpr bool operator>(const Optional<T>& opt, nullopt_t) {
808 constexpr bool operator>(nullopt_t, const Optional<T>& opt) {
813 constexpr bool operator>=(const Optional<T>& opt, nullopt_t) {
818 constexpr bool operator>=(nullopt_t, const Optional<T>& opt) {
823 constexpr bool operator==(const Optional<T>& opt, const U& value) {
828 constexpr bool operator==(const U& value, const Optional<T>& opt) {
833 constexpr bool operator!=(const Optional<T>& opt, const U& value) {
838 constexpr bool operator!=(const U& value, const Optional<T>& opt) {
843 constexpr bool operator<(const Optional<T>& opt, const U& value) {
848 constexpr bool operator<(const U& value, const Optional<T>& opt) {
853 constexpr bool operator<=(const Optional<T>& opt, const U& value) {
858 constexpr bool operator<=(const U& value, const Optional<T>& opt) {
863 constexpr bool operator>(const Optional<T>& opt, const U& value) {
868 constexpr bool operator>(const U& value, const Optional<T>& opt) {
873 constexpr bool operator>=(const Optional<T>& opt, const U& value) {
878 constexpr bool operator>=(const U& value, const Optional<T>& opt) {
883 constexpr Optional<std::decay_t<T>> make_optional(T&& value) {
884 return Optional<std::decay_t<T>>(std::forward<T>(value));
888 constexpr Optional<T> make_optional(Args&&... args) {
889 return Optional<T>(in_place, std::forward<Args>(args)...);
893 constexpr Optional<T> make_optional(std::initializer_list<U> il,
895 return Optional<T>(in_place, il, std::forward<Args>(args)...);
905 swap(Optional<T>& lhs, Optional<T>& rhs) {
914 struct hash<base::Optional<T>> {
915 size_t operator()(const base::Optional<T>& opt) const {