.TH "std::optional< _Tp >" 3cxx "Sun Jan 8 2023" "libstdc++" \" -*- nroff -*- .ad l .nh .SH NAME std::optional< _Tp > \- Class template for optional values\&. .SH SYNOPSIS .br .PP .PP Inherits \fBstd::_Optional_base< _Tp, bool, bool >\fP, and _Enable_copy_move< is_copy_constructible_v< _Tp >, __and_v< is_copy_constructible< _Tp >, is_copy_assignable< _Tp > >, is_move_constructible_v< _Tp >, __and_v< is_move_constructible< _Tp >, is_move_assignable< _Tp > >, optional< _Tp > >\&. .PP Inherited by std::ranges::__detail::__box< _Pred >, std::ranges::__detail::__box< _Fp >, and std::ranges::__detail::__box< _Tp >\&. .SS "Public Types" .in +1c .ti -1c .RI "using \fBvalue_type\fP = _Tp" .br .in -1c .SS "Public Member Functions" .in +1c .ti -1c .RI "template, __not_tag< _Up >, \fBis_constructible\fP< _Tp, _Up >, \fBis_convertible\fP< _Up, _Tp > > = true> constexpr \fBoptional\fP (_Up &&__t) noexcept(is_nothrow_constructible_v< _Tp, _Up >)" .br .ti -1c .RI "template, __not_tag< _Up >, \fBis_constructible\fP< _Tp, _Up >, __not_< \fBis_convertible\fP< _Up, _Tp > > > = false> constexpr \fBoptional\fP (_Up &&__t) noexcept(is_nothrow_constructible_v< _Tp, _Up >)" .br .ti -1c .RI "template >, \fBis_constructible\fP< _Tp, const _Up & >, \fBis_convertible\fP< const _Up &, _Tp >, __not_< __converts_from_optional< _Tp, _Up > > > = true> constexpr \fBoptional\fP (const \fBoptional\fP< _Up > &__t) noexcept(is_nothrow_constructible_v< _Tp, const _Up & >)" .br .ti -1c .RI "template >, \fBis_constructible\fP< _Tp, const _Up & >, __not_< \fBis_convertible\fP< const _Up &, _Tp > >, __not_< __converts_from_optional< _Tp, _Up > > > = false> constexpr \fBoptional\fP (const \fBoptional\fP< _Up > &__t) noexcept(is_nothrow_constructible_v< _Tp, const _Up & >)" .br .ti -1c .RI "template > = false> constexpr \fBoptional\fP (in_place_t, _Args &&\&.\&.\&. __args) noexcept(is_nothrow_constructible_v< _Tp, _Args\&.\&.\&. >)" .br .ti -1c .RI "template &, _Args\&.\&.\&. > > = false> constexpr \fBoptional\fP (in_place_t, \fBinitializer_list\fP< _Up > __il, _Args &&\&.\&.\&. __args) noexcept(is_nothrow_constructible_v< _Tp, \fBinitializer_list\fP< _Up > &, _Args\&.\&.\&. >)" .br .ti -1c .RI "constexpr \fBoptional\fP (\fBnullopt_t\fP) noexcept" .br .ti -1c .RI "template >, \fBis_constructible\fP< _Tp, _Up >, \fBis_convertible\fP< _Up, _Tp >, __not_< __converts_from_optional< _Tp, _Up > > > = true> constexpr \fBoptional\fP (\fBoptional\fP< _Up > &&__t) noexcept(is_nothrow_constructible_v< _Tp, _Up >)" .br .ti -1c .RI "template >, \fBis_constructible\fP< _Tp, _Up >, __not_< \fBis_convertible\fP< _Up, _Tp > >, __not_< __converts_from_optional< _Tp, _Up > > > = false> constexpr \fBoptional\fP (\fBoptional\fP< _Up > &&__t) noexcept(is_nothrow_constructible_v< _Tp, _Up >)" .br .ti -1c .RI "template constexpr \fBenable_if_t\fP< is_constructible_v< _Tp, _Args\&.\&.\&. >, _Tp & > \fBemplace\fP (_Args &&\&.\&.\&. __args) noexcept(is_nothrow_constructible_v< _Tp, _Args\&.\&.\&. >)" .br .ti -1c .RI "template constexpr \fBenable_if_t\fP< is_constructible_v< _Tp, \fBinitializer_list\fP< _Up > &, _Args\&.\&.\&. >, _Tp & > \fBemplace\fP (\fBinitializer_list\fP< _Up > __il, _Args &&\&.\&.\&. __args) noexcept(is_nothrow_constructible_v< _Tp, \fBinitializer_list\fP< _Up > &, _Args\&.\&.\&. >)" .br .ti -1c .RI "constexpr bool \fBhas_value\fP () const noexcept" .br .ti -1c .RI "constexpr \fBoperator bool\fP () const noexcept" .br .ti -1c .RI "constexpr _Tp && \fBoperator*\fP () &&noexcept" .br .ti -1c .RI "constexpr _Tp & \fBoperator*\fP () &noexcept" .br .ti -1c .RI "constexpr const _Tp && \fBoperator*\fP () const &&noexcept" .br .ti -1c .RI "constexpr const _Tp & \fBoperator*\fP () const &noexcept" .br .ti -1c .RI "constexpr const _Tp * \fBoperator\->\fP () const noexcept" .br .ti -1c .RI "constexpr _Tp * \fBoperator\->\fP () noexcept" .br .ti -1c .RI "template constexpr \fBenable_if_t\fP< __and_v< __not_self< _Up >, __not_< __and_< \fBis_scalar\fP< _Tp >, \fBis_same\fP< _Tp, \fBdecay_t\fP< _Up > > > >, \fBis_constructible\fP< _Tp, _Up >, \fBis_assignable\fP< _Tp &, _Up > >, \fBoptional\fP & > \fBoperator=\fP (_Up &&__u) noexcept(__and_v< \fBis_nothrow_constructible\fP< _Tp, _Up >, \fBis_nothrow_assignable\fP< _Tp &, _Up > >)" .br .ti -1c .RI "template constexpr \fBenable_if_t\fP< __and_v< __not_< \fBis_same\fP< _Tp, _Up > >, \fBis_constructible\fP< _Tp, const _Up & >, \fBis_assignable\fP< _Tp &, const _Up & >, __not_< __converts_from_optional< _Tp, _Up > >, __not_< __assigns_from_optional< _Tp, _Up > > >, \fBoptional\fP & > \fBoperator=\fP (const \fBoptional\fP< _Up > &__u) noexcept(__and_v< \fBis_nothrow_constructible\fP< _Tp, const _Up & >, \fBis_nothrow_assignable\fP< _Tp &, const _Up & > >)" .br .ti -1c .RI "constexpr \fBoptional\fP & \fBoperator=\fP (\fBnullopt_t\fP) noexcept" .br .ti -1c .RI "template constexpr \fBenable_if_t\fP< __and_v< __not_< \fBis_same\fP< _Tp, _Up > >, \fBis_constructible\fP< _Tp, _Up >, \fBis_assignable\fP< _Tp &, _Up >, __not_< __converts_from_optional< _Tp, _Up > >, __not_< __assigns_from_optional< _Tp, _Up > > >, \fBoptional\fP & > \fBoperator=\fP (\fBoptional\fP< _Up > &&__u) noexcept(__and_v< \fBis_nothrow_constructible\fP< _Tp, _Up >, \fBis_nothrow_assignable\fP< _Tp &, _Up > >)" .br .ti -1c .RI "constexpr void \fBreset\fP () noexcept" .br .ti -1c .RI "constexpr void \fBswap\fP (\fBoptional\fP &__other) noexcept(is_nothrow_move_constructible_v< _Tp > &&\fBis_nothrow_swappable_v\fP< _Tp >)" .br .ti -1c .RI "constexpr _Tp & \fBvalue\fP () &" .br .ti -1c .RI "constexpr _Tp && \fBvalue\fP () &&" .br .ti -1c .RI "constexpr const _Tp & \fBvalue\fP () const &" .br .ti -1c .RI "constexpr const _Tp && \fBvalue\fP () const &&" .br .ti -1c .RI "template constexpr _Tp \fBvalue_or\fP (_Up &&__u) &&" .br .ti -1c .RI "template constexpr _Tp \fBvalue_or\fP (_Up &&__u) const &" .br .in -1c .SH "Detailed Description" .PP .SS "template .br class std::optional< _Tp >"Class template for optional values\&. .PP Definition at line \fB705\fP of file \fBoptional\fP\&. .SH "Member Typedef Documentation" .PP .SS "template using \fBstd::optional\fP< _Tp >::value_type = _Tp" .PP Definition at line \fB735\fP of file \fBoptional\fP\&. .SH "Constructor & Destructor Documentation" .PP .SS "template constexpr \fBstd::optional\fP< _Tp >::optional ()\fC [inline]\fP, \fC [constexpr]\fP, \fC [noexcept]\fP" .PP Definition at line \fB737\fP of file \fBoptional\fP\&. .SS "template constexpr \fBstd::optional\fP< _Tp >::optional (\fBnullopt_t\fP)\fC [inline]\fP, \fC [constexpr]\fP, \fC [noexcept]\fP" .PP Definition at line \fB739\fP of file \fBoptional\fP\&. .SS "template template, __not_tag< _Up >, \fBis_constructible\fP< _Tp, _Up >, \fBis_convertible\fP< _Up, _Tp > > = true> constexpr \fBstd::optional\fP< _Tp >::optional (_Up && __t)\fC [inline]\fP, \fC [constexpr]\fP, \fC [noexcept]\fP" .PP Definition at line \fB747\fP of file \fBoptional\fP\&. .SS "template template, __not_tag< _Up >, \fBis_constructible\fP< _Tp, _Up >, __not_< \fBis_convertible\fP< _Up, _Tp > > > = false> constexpr \fBstd::optional\fP< _Tp >::optional (_Up && __t)\fC [inline]\fP, \fC [explicit]\fP, \fC [constexpr]\fP, \fC [noexcept]\fP" .PP Definition at line \fB756\fP of file \fBoptional\fP\&. .SS "template template >, \fBis_constructible\fP< _Tp, const _Up & >, \fBis_convertible\fP< const _Up &, _Tp >, __not_< __converts_from_optional< _Tp, _Up > > > = true> constexpr \fBstd::optional\fP< _Tp >::optional (const \fBoptional\fP< _Up > & __t)\fC [inline]\fP, \fC [constexpr]\fP, \fC [noexcept]\fP" .PP Definition at line \fB766\fP of file \fBoptional\fP\&. .SS "template template >, \fBis_constructible\fP< _Tp, const _Up & >, __not_< \fBis_convertible\fP< const _Up &, _Tp > >, __not_< __converts_from_optional< _Tp, _Up > > > = false> constexpr \fBstd::optional\fP< _Tp >::optional (const \fBoptional\fP< _Up > & __t)\fC [inline]\fP, \fC [explicit]\fP, \fC [constexpr]\fP, \fC [noexcept]\fP" .PP Definition at line \fB779\fP of file \fBoptional\fP\&. .SS "template template >, \fBis_constructible\fP< _Tp, _Up >, \fBis_convertible\fP< _Up, _Tp >, __not_< __converts_from_optional< _Tp, _Up > > > = true> constexpr \fBstd::optional\fP< _Tp >::optional (\fBoptional\fP< _Up > && __t)\fC [inline]\fP, \fC [constexpr]\fP, \fC [noexcept]\fP" .PP Definition at line \fB792\fP of file \fBoptional\fP\&. .SS "template template >, \fBis_constructible\fP< _Tp, _Up >, __not_< \fBis_convertible\fP< _Up, _Tp > >, __not_< __converts_from_optional< _Tp, _Up > > > = false> constexpr \fBstd::optional\fP< _Tp >::optional (\fBoptional\fP< _Up > && __t)\fC [inline]\fP, \fC [explicit]\fP, \fC [constexpr]\fP, \fC [noexcept]\fP" .PP Definition at line \fB805\fP of file \fBoptional\fP\&. .SS "template template > = false> constexpr \fBstd::optional\fP< _Tp >::optional (in_place_t, _Args &&\&.\&.\&. __args)\fC [inline]\fP, \fC [explicit]\fP, \fC [constexpr]\fP, \fC [noexcept]\fP" .PP Definition at line \fB815\fP of file \fBoptional\fP\&. .SS "template template &, _Args\&.\&.\&. > > = false> constexpr \fBstd::optional\fP< _Tp >::optional (in_place_t, \fBinitializer_list\fP< _Up > __il, _Args &&\&.\&.\&. __args)\fC [inline]\fP, \fC [explicit]\fP, \fC [constexpr]\fP, \fC [noexcept]\fP" .PP Definition at line \fB824\fP of file \fBoptional\fP\&. .SH "Member Function Documentation" .PP .SS "template template constexpr \fBenable_if_t\fP< is_constructible_v< _Tp, _Args\&.\&.\&. >, _Tp & > \fBstd::optional\fP< _Tp >::emplace (_Args &&\&.\&.\&. __args)\fC [inline]\fP, \fC [constexpr]\fP, \fC [noexcept]\fP" .PP Definition at line \fB914\fP of file \fBoptional\fP\&. .SS "template template constexpr \fBenable_if_t\fP< is_constructible_v< _Tp, \fBinitializer_list\fP< _Up > &, _Args\&.\&.\&. >, _Tp & > \fBstd::optional\fP< _Tp >::emplace (\fBinitializer_list\fP< _Up > __il, _Args &&\&.\&.\&. __args)\fC [inline]\fP, \fC [constexpr]\fP, \fC [noexcept]\fP" .PP Definition at line \fB926\fP of file \fBoptional\fP\&. .SS "template constexpr bool \fBstd::optional\fP< _Tp >::has_value () const\fC [inline]\fP, \fC [constexpr]\fP, \fC [noexcept]\fP" .PP Definition at line \fB987\fP of file \fBoptional\fP\&. .SS "template constexpr \fBstd::optional\fP< _Tp >::operator bool () const\fC [inline]\fP, \fC [explicit]\fP, \fC [constexpr]\fP, \fC [noexcept]\fP" .PP Definition at line \fB984\fP of file \fBoptional\fP\&. .SS "template constexpr _Tp && \fBstd::optional\fP< _Tp >::operator* () &&\fC [inline]\fP, \fC [constexpr]\fP, \fC [noexcept]\fP" .PP Definition at line \fB977\fP of file \fBoptional\fP\&. .SS "template constexpr _Tp & \fBstd::optional\fP< _Tp >::operator* () &\fC [inline]\fP, \fC [constexpr]\fP, \fC [noexcept]\fP" .PP Definition at line \fB973\fP of file \fBoptional\fP\&. .SS "template constexpr const _Tp && \fBstd::optional\fP< _Tp >::operator* () const &&\fC [inline]\fP, \fC [constexpr]\fP, \fC [noexcept]\fP" .PP Definition at line \fB981\fP of file \fBoptional\fP\&. .SS "template constexpr const _Tp & \fBstd::optional\fP< _Tp >::operator* () const &\fC [inline]\fP, \fC [constexpr]\fP, \fC [noexcept]\fP" .PP Definition at line \fB969\fP of file \fBoptional\fP\&. .SS "template constexpr const _Tp * \fBstd::optional\fP< _Tp >::operator\-> () const\fC [inline]\fP, \fC [constexpr]\fP, \fC [noexcept]\fP" .PP Definition at line \fB961\fP of file \fBoptional\fP\&. .SS "template constexpr _Tp * \fBstd::optional\fP< _Tp >::operator\-> ()\fC [inline]\fP, \fC [constexpr]\fP, \fC [noexcept]\fP" .PP Definition at line \fB965\fP of file \fBoptional\fP\&. .SS "template template constexpr \fBenable_if_t\fP< __and_v< __not_self< _Up >, __not_< __and_< \fBis_scalar\fP< _Tp >, \fBis_same\fP< _Tp, \fBdecay_t\fP< _Up > > > >, \fBis_constructible\fP< _Tp, _Up >, \fBis_assignable\fP< _Tp &, _Up > >, \fBoptional\fP & > \fBstd::optional\fP< _Tp >::operator= (_Up && __u)\fC [inline]\fP, \fC [constexpr]\fP, \fC [noexcept]\fP" .PP Definition at line \fB846\fP of file \fBoptional\fP\&. .SS "template template constexpr \fBenable_if_t\fP< __and_v< __not_< \fBis_same\fP< _Tp, _Up > >, \fBis_constructible\fP< _Tp, const _Up & >, \fBis_assignable\fP< _Tp &, const _Up & >, __not_< __converts_from_optional< _Tp, _Up > >, __not_< __assigns_from_optional< _Tp, _Up > > >, \fBoptional\fP & > \fBstd::optional\fP< _Tp >::operator= (const \fBoptional\fP< _Up > & __u)\fC [inline]\fP, \fC [constexpr]\fP, \fC [noexcept]\fP" .PP Definition at line \fB866\fP of file \fBoptional\fP\&. .SS "template constexpr \fBoptional\fP & \fBstd::optional\fP< _Tp >::operator= (\fBnullopt_t\fP)\fC [inline]\fP, \fC [constexpr]\fP, \fC [noexcept]\fP" .PP Definition at line \fB832\fP of file \fBoptional\fP\&. .SS "template template constexpr \fBenable_if_t\fP< __and_v< __not_< \fBis_same\fP< _Tp, _Up > >, \fBis_constructible\fP< _Tp, _Up >, \fBis_assignable\fP< _Tp &, _Up >, __not_< __converts_from_optional< _Tp, _Up > >, __not_< __assigns_from_optional< _Tp, _Up > > >, \fBoptional\fP & > \fBstd::optional\fP< _Tp >::operator= (\fBoptional\fP< _Up > && __u)\fC [inline]\fP, \fC [constexpr]\fP, \fC [noexcept]\fP" .PP Definition at line \fB892\fP of file \fBoptional\fP\&. .SS "template constexpr void \fBstd::optional\fP< _Tp >::reset ()\fC [inline]\fP, \fC [constexpr]\fP, \fC [noexcept]\fP" .PP Definition at line \fB1170\fP of file \fBoptional\fP\&. .SS "template constexpr void \fBstd::optional\fP< _Tp >::swap (\fBoptional\fP< _Tp > & __other)\fC [inline]\fP, \fC [constexpr]\fP, \fC [noexcept]\fP" .PP Definition at line \fB939\fP of file \fBoptional\fP\&. .SS "template constexpr _Tp & \fBstd::optional\fP< _Tp >::value () &\fC [inline]\fP, \fC [constexpr]\fP" .PP Definition at line \fB999\fP of file \fBoptional\fP\&. .SS "template constexpr _Tp && \fBstd::optional\fP< _Tp >::value () &&\fC [inline]\fP, \fC [constexpr]\fP" .PP Definition at line \fB1007\fP of file \fBoptional\fP\&. .SS "template constexpr const _Tp & \fBstd::optional\fP< _Tp >::value () const &\fC [inline]\fP, \fC [constexpr]\fP" .PP Definition at line \fB991\fP of file \fBoptional\fP\&. .SS "template constexpr const _Tp && \fBstd::optional\fP< _Tp >::value () const &&\fC [inline]\fP, \fC [constexpr]\fP" .PP Definition at line \fB1015\fP of file \fBoptional\fP\&. .SS "template template constexpr _Tp \fBstd::optional\fP< _Tp >::value_or (_Up && __u) &&\fC [inline]\fP, \fC [constexpr]\fP" .PP Definition at line \fB1037\fP of file \fBoptional\fP\&. .SS "template template constexpr _Tp \fBstd::optional\fP< _Tp >::value_or (_Up && __u) const &\fC [inline]\fP, \fC [constexpr]\fP" .PP Definition at line \fB1024\fP of file \fBoptional\fP\&. .SH "Friends And Related Function Documentation" .PP .SS "template template friend class \fBoptional\fP\fC [friend]\fP" .PP Definition at line \fB1174\fP of file \fBoptional\fP\&. .SH "Author" .PP Generated automatically by Doxygen for libstdc++ from the source code\&.