|
template<typename... Args, typename = typename std::enable_if< std::is_constructible<T, Args&&...>::value>::type> |
T & | emplace (Args &&...args) |
|
template<typename U , typename... Args, typename = typename std::enable_if<std::is_constructible< T, std::initializer_list<U>&, Args&&...>::value>::type> |
T & | emplace (std::initializer_list< U > il, Args &&...args) |
|
constexpr bool | has_value () const noexcept |
|
constexpr | operator bool () const noexcept |
|
constexpr const T & | operator* () const & |
|
T & | operator* ()& |
|
constexpr const T && | operator* () const && |
|
T && | operator* ()&& |
|
const T * | operator-> () const |
|
T * | operator-> () |
|
optional & | operator= (nullopt_t) noexcept |
|
optional & | operator= (const optional &src)=default |
|
optional & | operator= (optional &&src)=default |
|
template<typename U = T, typename = typename std::enable_if<absl::conjunction< absl::negation< std::is_same<optional<T>, typename std::decay<U>::type>>, absl::negation< absl::conjunction<std::is_scalar<T>, std::is_same<T, typename std::decay<U>::type>>>, std::is_constructible<T, U>, std::is_assignable<T&, U>>::value>::type> |
optional & | operator= (U &&v) |
|
template<typename U , typename = typename std::enable_if<absl::conjunction< absl::negation<std::is_same<T, U>>, std::is_constructible<T, const U&>, std::is_assignable<T&, const U&>, absl::negation< optional_internal:: is_constructible_convertible_assignable_from_optional< T, U>>>::value>::type> |
optional & | operator= (const optional< U > &rhs) |
|
template<typename U , typename = typename std::enable_if<absl::conjunction< absl::negation<std::is_same<T, U>>, std::is_constructible<T, U>, std::is_assignable<T&, U>, absl::negation< optional_internal:: is_constructible_convertible_assignable_from_optional< T, U>>>::value>::type> |
optional & | operator= (optional< U > &&rhs) |
|
constexpr | optional () noexcept |
|
constexpr | optional (nullopt_t) noexcept |
|
| optional (const optional &src)=default |
|
| optional (optional &&src)=default |
|
template<typename InPlaceT , typename... Args, absl::enable_if_t< absl::conjunction< std::is_same< InPlaceT, in_place_t >, std::is_constructible< T, Args &&... > >::value > * = nullptr> |
constexpr | optional (InPlaceT, Args &&...args) |
|
template<typename U , typename... Args, typename = typename std::enable_if<std::is_constructible< T, std::initializer_list<U>&, Args&&...>::value>::type> |
constexpr | optional (in_place_t, std::initializer_list< U > il, Args &&...args) |
|
template<typename U = T, typename std::enable_if< absl::conjunction< absl::negation< std::is_same< in_place_t, typename std::decay< U >::type > >, absl::negation< std::is_same< optional< T >, typename std::decay< U >::type > >, std::is_convertible< U &&, T >, std::is_constructible< T, U && > >::value, bool >::type = false> |
constexpr | optional (U &&v) |
|
template<typename U = T, typename std::enable_if< absl::conjunction< absl::negation< std::is_same< in_place_t, typename std::decay< U >::type >>, absl::negation< std::is_same< optional< T >, typename std::decay< U >::type >>, absl::negation< std::is_convertible< U &&, T >>, std::is_constructible< T, U && >>::value, bool >::type = false> |
constexpr | optional (U &&v) |
|
template<typename U , typename std::enable_if< absl::conjunction< absl::negation< std::is_same< T, U > >, std::is_constructible< T, const U & >, absl::negation< optional_internal::is_constructible_convertible_from_optional< T, U > >, std::is_convertible< const U &, T > >::value, bool >::type = false> |
| optional (const optional< U > &rhs) |
|
template<typename U , typename std::enable_if< absl::conjunction< absl::negation< std::is_same< T, U >>, std::is_constructible< T, const U & >, absl::negation< optional_internal::is_constructible_convertible_from_optional< T, U >>, absl::negation< std::is_convertible< const U &, T >>>::value, bool >::type = false> |
| optional (const optional< U > &rhs) |
|
template<typename U , typename std::enable_if< absl::conjunction< absl::negation< std::is_same< T, U > >, std::is_constructible< T, U && >, absl::negation< optional_internal::is_constructible_convertible_from_optional< T, U > >, std::is_convertible< U &&, T > >::value, bool >::type = false> |
| optional (optional< U > &&rhs) |
|
template<typename U , typename std::enable_if< absl::conjunction< absl::negation< std::is_same< T, U >>, std::is_constructible< T, U && >, absl::negation< optional_internal::is_constructible_convertible_from_optional< T, U >>, absl::negation< std::is_convertible< U &&, T >>>::value, bool >::type = false> |
| optional (optional< U > &&rhs) |
|
ABSL_ATTRIBUTE_REINITIALIZES void | reset () noexcept |
|
void | swap (optional &rhs) noexcept(std::is_nothrow_move_constructible< T >::value &&type_traits_internal::IsNothrowSwappable< T >::value) |
|
constexpr const T & | value () const & |
|
T & | value ()& |
|
T && | value ()&& |
|
constexpr const T && | value () const && |
|
template<typename U > |
constexpr T | value_or (U &&v) const & |
|
template<typename U > |
T | value_or (U &&v)&& |
|
| ~optional ()=default |
|
template<typename T>
class absl::optional< T >
Definition at line 60 of file internal/optional.h.