Lines Matching refs:Optional
40 class Optional;
286 // is not movable but copyable, Optional<T>'s move constructor should not
340 bool, std::is_constructible<T, Optional<U>&>::value ||
341 std::is_constructible<T, const Optional<U>&>::value ||
342 std::is_constructible<T, Optional<U>&&>::value ||
343 std::is_constructible<T, const Optional<U>&&>::value ||
344 std::is_convertible<Optional<U>&, T>::value ||
345 std::is_convertible<const Optional<U>&, T>::value ||
346 std::is_convertible<Optional<U>&&, T>::value ||
347 std::is_convertible<const Optional<U>&&, T>::value> {};
353 std::is_assignable<T&, Optional<U>&>::value ||
354 std::is_assignable<T&, const Optional<U>&>::value ||
355 std::is_assignable<T&, Optional<U>&&>::value ||
356 std::is_assignable<T&, const Optional<U>&&>::value> {};
397 // base::Optional is a Chromium version of the C++17 optional class:
410 // Note that T cannot have a constructor T(Optional<T>) etc. Optional<T> checks
412 // check whether T can be constructible from Optional<T>, which is recursive
417 class OPTIONAL_DECLSPEC_EMPTY_BASES Optional
430 constexpr Optional() = default;
431 constexpr Optional(const Optional& other) V8_NOEXCEPT = default;
432 constexpr Optional(Optional&& other) V8_NOEXCEPT = default;
434 constexpr Optional(nullopt_t) {} // NOLINT(runtime/explicit)
446 Optional(const Optional<U>& other) V8_NOEXCEPT
455 explicit Optional(const Optional<U>& other) V8_NOEXCEPT
466 Optional(Optional<U>&& other) V8_NOEXCEPT
475 explicit Optional(Optional<U>&& other) V8_NOEXCEPT
479 constexpr explicit Optional(in_place_t, Args&&... args)
485 constexpr explicit Optional(in_place_t, std::initializer_list<U> il,
496 !std::is_same<internal::RemoveCvRefT<U>, Optional<T>>::value &&
499 constexpr Optional(U&& value) // NOLINT(runtime/explicit)
507 !std::is_same<internal::RemoveCvRefT<U>, Optional<T>>::value &&
510 constexpr explicit Optional(U&& value)
513 ~Optional() = default;
516 Optional& operator=(const Optional& other) V8_NOEXCEPT = default;
517 Optional& operator=(Optional&& other) V8_NOEXCEPT = default;
519 Optional& operator=(nullopt_t) {
527 !std::is_same<internal::RemoveCvRefT<U>, Optional<T>>::value &&
532 Optional&>::type
543 Optional&>::type
544 operator=(const Optional<U>& other) V8_NOEXCEPT {
554 Optional&>::type
555 operator=(Optional<U>&& other) V8_NOEXCEPT {
638 void swap(Optional& other) {
691 bool operator==(const Optional<T>& lhs, const Optional<U>& rhs) {
698 bool operator!=(const Optional<T>& lhs, const Optional<U>& rhs) {
705 bool operator<(const Optional<T>& lhs, const Optional<U>& rhs) {
712 bool operator<=(const Optional<T>& lhs, const Optional<U>& rhs) {
719 bool operator>(const Optional<T>& lhs, const Optional<U>& rhs) {
726 bool operator>=(const Optional<T>& lhs, const Optional<U>& rhs) {
733 constexpr bool operator==(const Optional<T>& opt, nullopt_t) {
738 constexpr bool operator==(nullopt_t, const Optional<T>& opt) {
743 constexpr bool operator!=(const Optional<T>& opt, nullopt_t) {
748 constexpr bool operator!=(nullopt_t, const Optional<T>& opt) {
753 constexpr bool operator<(const Optional<T>& opt, nullopt_t) {
758 constexpr bool operator<(nullopt_t, const Optional<T>& opt) {
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, const U& value) {
798 constexpr bool operator==(const U& value, const Optional<T>& opt) {
803 constexpr bool operator!=(const Optional<T>& opt, const U& value) {
808 constexpr bool operator!=(const U& value, const Optional<T>& opt) {
813 constexpr bool operator<(const Optional<T>& opt, const U& value) {
818 constexpr bool operator<(const U& value, 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 Optional<typename std::decay<T>::type> make_optional(T&& value) {
854 return Optional<typename std::decay<T>::type>(std::forward<T>(value));
858 constexpr Optional<T> make_optional(Args&&... args) {
859 return Optional<T>(in_place, std::forward<Args>(args)...);
863 constexpr Optional<T> make_optional(std::initializer_list<U> il,
865 return Optional<T>(in_place, il, std::forward<Args>(args)...);
875 swap(Optional<T>& lhs, Optional<T>& rhs) {