.TH "std::experimental::optional< _Tp >" 3cxx "libstdc++" \" -*- nroff -*- .ad l .nh .SH NAME std::experimental::optional< _Tp > \- Class template for optional values\&. .SH SYNOPSIS .br .PP .PP \fC#include \fP .PP Inherits \fBstd::experimental::_Optional_base< _Tp, _ShouldProvideDestructor >\fP, and \fBstd::_Enable_copy_move< is_copy_constructible< _Tp >::value, __and_< is_copy_constructible< _Tp >, is_copy_assignable< _Tp > >::value, is_move_constructible< _Tp >::value, __and_< is_move_constructible< _Tp >, is_move_assignable< _Tp > >::value, optional< _Tp > >\fP\&. .SS "Public Types" .in +1c .ti -1c .RI "\fBusing\fP \fBvalue_type\fP = _Tp" .br .in -1c .SS "Public Member Functions" .in +1c .ti -1c .RI "template<\fBtypename\fP \fB_Up\fP = _Tp, \fBenable_if_t\fP< __and_< __not_< \fBis_same\fP< \fBoptional\fP< _Tp >, \fBdecay_t\fP< \fB_Up\fP > > >, \fBis_constructible\fP< _Tp, \fB_Up\fP && >, \fBis_convertible\fP< \fB_Up\fP &&, _Tp > >::value, bool > = true> \fBconstexpr\fP \fBoptional\fP (\fB_Up\fP &&__t)" .br .ti -1c .RI "template<\fBtypename\fP \fB_Up\fP = _Tp, \fBenable_if_t\fP< __and_< __not_< \fBis_same\fP< \fBoptional\fP< _Tp >, \fBdecay_t\fP< \fB_Up\fP > > >, \fBis_constructible\fP< _Tp, \fB_Up\fP && >, __not_< \fBis_convertible\fP< \fB_Up\fP &&, _Tp > > >::value, bool > = false> \fBconstexpr\fP \fBoptional\fP (\fB_Up\fP &&__t)" .br .ti -1c .RI "template<\fBtypename\fP \fB_Up\fP , \fBenable_if_t\fP< __and_< __not_< \fBis_same\fP< _Tp, \fB_Up\fP > >, \fBis_constructible\fP< _Tp, \fBconst\fP \fB_Up\fP & >, \fBis_convertible\fP< \fBconst\fP \fB_Up\fP &, _Tp >, __not_< \fB__converts_from_optional\fP< _Tp, \fB_Up\fP > > >::value, bool > = true> \fBconstexpr\fP \fBoptional\fP (\fBconst\fP \fBoptional\fP< \fB_Up\fP > &__t)" .br .ti -1c .RI "template<\fBtypename\fP \fB_Up\fP , \fBenable_if_t\fP< __and_< __not_< \fBis_same\fP< _Tp, \fB_Up\fP > >, \fBis_constructible\fP< _Tp, \fBconst\fP \fB_Up\fP & >, __not_< \fBis_convertible\fP< \fBconst\fP \fB_Up\fP &, _Tp > >, __not_< \fB__converts_from_optional\fP< _Tp, \fB_Up\fP > > >::value, bool > = false> \fBconstexpr\fP \fBoptional\fP (\fBconst\fP \fBoptional\fP< \fB_Up\fP > &__t)" .br .ti -1c .RI "template<\fBtypename\fP \fB_Up\fP , \fBenable_if_t\fP< __and_< __not_< \fBis_same\fP< _Tp, \fB_Up\fP > >, \fBis_constructible\fP< _Tp, \fB_Up\fP && >, \fBis_convertible\fP< \fB_Up\fP &&, _Tp >, __not_< \fB__converts_from_optional\fP< _Tp, \fB_Up\fP > > >::value, bool > = true> \fBconstexpr\fP \fBoptional\fP (\fBoptional\fP< \fB_Up\fP > &&__t)" .br .ti -1c .RI "template<\fBtypename\fP \fB_Up\fP , \fBenable_if_t\fP< __and_< __not_< \fBis_same\fP< _Tp, \fB_Up\fP > >, \fBis_constructible\fP< _Tp, \fB_Up\fP && >, __not_< \fBis_convertible\fP< \fB_Up\fP &&, _Tp > >, __not_< \fB__converts_from_optional\fP< _Tp, \fB_Up\fP > > >::value, bool > = false> \fBconstexpr\fP \fBoptional\fP (\fBoptional\fP< \fB_Up\fP > &&__t)" .br .ti -1c .RI "template \fBenable_if_t\fP< \fBis_constructible\fP< _Tp, \fB_Args\fP &&\&.\&.\&. >::value > \fBemplace\fP (\fB_Args\fP &&\&.\&.\&. \fB__args\fP)" .br .ti -1c .RI "template<\fBtypename\fP \fB_Up\fP , typename\&.\&.\&. _Args> \fBenable_if_t\fP< \fBis_constructible\fP< _Tp, \fBinitializer_list\fP< \fB_Up\fP > &, \fB_Args\fP &&\&.\&.\&. >::value > \fBemplace\fP (\fBinitializer_list\fP< \fB_Up\fP > \fB__il\fP, \fB_Args\fP &&\&.\&.\&. \fB__args\fP)" .br .ti -1c .RI "\fBconstexpr\fP \fBoperator bool\fP () \fBconst\fP \fBnoexcept\fP" .br .ti -1c .RI "\fBconstexpr\fP _Tp & \fBoperator*\fP () &" .br .ti -1c .RI "\fBconstexpr\fP _Tp && \fBoperator*\fP () &&" .br .ti -1c .RI "\fBconstexpr\fP \fBconst\fP _Tp & \fBoperator*\fP () \fBconst\fP &" .br .ti -1c .RI "\fBconstexpr\fP \fBconst\fP _Tp && \fBoperator*\fP () \fBconst\fP &&" .br .ti -1c .RI "_Tp * \fBoperator\->\fP ()" .br .ti -1c .RI "\fBconstexpr\fP \fBconst\fP _Tp * \fBoperator\->\fP () \fBconst\fP" .br .ti -1c .RI "template<\fBtypename\fP \fB_Up\fP = _Tp> \fBenable_if_t\fP< __and_< __not_< \fBis_same\fP< \fBoptional\fP< _Tp >, \fBdecay_t\fP< \fB_Up\fP > > >, \fBis_constructible\fP< _Tp, \fB_Up\fP >, __not_< __and_< \fBis_scalar\fP< _Tp >, \fBis_same\fP< _Tp, \fBdecay_t\fP< \fB_Up\fP > > > >, \fBis_assignable\fP< _Tp &, \fB_Up\fP > >::value, \fBoptional\fP & > \fBoperator=\fP (\fB_Up\fP &&\fB__u\fP)" .br .ti -1c .RI "template<\fBtypename\fP \fB_Up\fP > \fBenable_if_t\fP< __and_< __not_< \fBis_same\fP< _Tp, \fB_Up\fP > >, \fBis_constructible\fP< _Tp, \fBconst\fP \fB_Up\fP & >, \fBis_assignable\fP< _Tp &, \fB_Up\fP >, __not_< \fB__converts_from_optional\fP< _Tp, \fB_Up\fP > >, __not_< \fB__assigns_from_optional\fP< _Tp, \fB_Up\fP > > >::value, \fBoptional\fP & > \fBoperator=\fP (\fBconst\fP \fBoptional\fP< \fB_Up\fP > &\fB__u\fP)" .br .ti -1c .RI "\fBoptional\fP & \fBoperator=\fP (\fBnullopt_t\fP) \fBnoexcept\fP" .br .ti -1c .RI "template<\fBtypename\fP \fB_Up\fP > \fBenable_if_t\fP< __and_< __not_< \fBis_same\fP< _Tp, \fB_Up\fP > >, \fBis_constructible\fP< _Tp, \fB_Up\fP >, \fBis_assignable\fP< _Tp &, \fB_Up\fP >, __not_< \fB__converts_from_optional\fP< _Tp, \fB_Up\fP > >, __not_< \fB__assigns_from_optional\fP< _Tp, \fB_Up\fP > > >::value, \fBoptional\fP & > \fBoperator=\fP (\fBoptional\fP< \fB_Up\fP > &&\fB__u\fP)" .br .ti -1c .RI "\fBvoid\fP \fBswap\fP (\fBoptional\fP &__other) \fBnoexcept\fP(\fBis_nothrow_move_constructible\fP< _Tp >() &&__is_nothrow_swappable< _Tp >::value)" .br .ti -1c .RI "\fBconstexpr\fP _Tp & \fBvalue\fP () &" .br .ti -1c .RI "\fBconstexpr\fP _Tp && \fBvalue\fP () &&" .br .ti -1c .RI "\fBconstexpr\fP \fBconst\fP _Tp & \fBvalue\fP () \fBconst\fP &" .br .ti -1c .RI "\fBconstexpr\fP \fBconst\fP _Tp && \fBvalue\fP () \fBconst\fP &&" .br .ti -1c .RI "template<\fBtypename\fP \fB_Up\fP > _Tp \fBvalue_or\fP (\fB_Up\fP &&\fB__u\fP) &&" .br .ti -1c .RI "template<\fBtypename\fP \fB_Up\fP > \fBconstexpr\fP _Tp \fBvalue_or\fP (\fB_Up\fP &&\fB__u\fP) \fBconst\fP &" .br .in -1c .SH "Detailed Description" .PP .SS "template<\fBtypename\fP _Tp> .br class std::experimental::optional< _Tp >"Class template for optional values\&. .PP Definition at line \fB491\fP of file \fBoptional\fP\&. .SH "Member Typedef Documentation" .PP .SS "template<\fBtypename\fP _Tp > \fBusing\fP \fBstd::experimental::optional\fP< _Tp >::value_type = _Tp" .PP Definition at line \fB514\fP of file \fBoptional\fP\&. .SH "Constructor & Destructor Documentation" .PP .SS "template<\fBtypename\fP _Tp > template<\fBtypename\fP \fB_Up\fP = _Tp, \fBenable_if_t\fP< __and_< __not_< \fBis_same\fP< \fBoptional\fP< _Tp >, \fBdecay_t\fP< \fB_Up\fP > > >, \fBis_constructible\fP< _Tp, \fB_Up\fP && >, \fBis_convertible\fP< \fB_Up\fP &&, _Tp > >::value, bool > = true> \fBconstexpr\fP \fBstd::experimental::optional\fP< _Tp >::optional (\fB_Up\fP && __t)\fC [inline]\fP, \fC [constexpr]\fP" .PP Definition at line \fB527\fP of file \fBoptional\fP\&. .SS "template<\fBtypename\fP _Tp > template<\fBtypename\fP \fB_Up\fP = _Tp, \fBenable_if_t\fP< __and_< __not_< \fBis_same\fP< \fBoptional\fP< _Tp >, \fBdecay_t\fP< \fB_Up\fP > > >, \fBis_constructible\fP< _Tp, \fB_Up\fP && >, __not_< \fBis_convertible\fP< \fB_Up\fP &&, _Tp > > >::value, bool > = false> \fBconstexpr\fP \fBstd::experimental::optional\fP< _Tp >::optional (\fB_Up\fP && __t)\fC [inline]\fP, \fC [explicit]\fP, \fC [constexpr]\fP" .PP Definition at line \fB536\fP of file \fBoptional\fP\&. .SS "template<\fBtypename\fP _Tp > template<\fBtypename\fP \fB_Up\fP , \fBenable_if_t\fP< __and_< __not_< \fBis_same\fP< _Tp, \fB_Up\fP > >, \fBis_constructible\fP< _Tp, \fBconst\fP \fB_Up\fP & >, \fBis_convertible\fP< \fBconst\fP \fB_Up\fP &, _Tp >, __not_< \fB__converts_from_optional\fP< _Tp, \fB_Up\fP > > >::value, bool > = true> \fBconstexpr\fP \fBstd::experimental::optional\fP< _Tp >::optional (\fBconst\fP \fBoptional\fP< \fB_Up\fP > & __t)\fC [inline]\fP, \fC [constexpr]\fP" .PP Definition at line \fB546\fP of file \fBoptional\fP\&. .SS "template<\fBtypename\fP _Tp > template<\fBtypename\fP \fB_Up\fP , \fBenable_if_t\fP< __and_< __not_< \fBis_same\fP< _Tp, \fB_Up\fP > >, \fBis_constructible\fP< _Tp, \fBconst\fP \fB_Up\fP & >, __not_< \fBis_convertible\fP< \fBconst\fP \fB_Up\fP &, _Tp > >, __not_< \fB__converts_from_optional\fP< _Tp, \fB_Up\fP > > >::value, bool > = false> \fBconstexpr\fP \fBstd::experimental::optional\fP< _Tp >::optional (\fBconst\fP \fBoptional\fP< \fB_Up\fP > & __t)\fC [inline]\fP, \fC [explicit]\fP, \fC [constexpr]\fP" .PP Definition at line \fB559\fP of file \fBoptional\fP\&. .SS "template<\fBtypename\fP _Tp > template<\fBtypename\fP \fB_Up\fP , \fBenable_if_t\fP< __and_< __not_< \fBis_same\fP< _Tp, \fB_Up\fP > >, \fBis_constructible\fP< _Tp, \fB_Up\fP && >, \fBis_convertible\fP< \fB_Up\fP &&, _Tp >, __not_< \fB__converts_from_optional\fP< _Tp, \fB_Up\fP > > >::value, bool > = true> \fBconstexpr\fP \fBstd::experimental::optional\fP< _Tp >::optional (\fBoptional\fP< \fB_Up\fP > && __t)\fC [inline]\fP, \fC [constexpr]\fP" .PP Definition at line \fB572\fP of file \fBoptional\fP\&. .SS "template<\fBtypename\fP _Tp > template<\fBtypename\fP \fB_Up\fP , \fBenable_if_t\fP< __and_< __not_< \fBis_same\fP< _Tp, \fB_Up\fP > >, \fBis_constructible\fP< _Tp, \fB_Up\fP && >, __not_< \fBis_convertible\fP< \fB_Up\fP &&, _Tp > >, __not_< \fB__converts_from_optional\fP< _Tp, \fB_Up\fP > > >::value, bool > = false> \fBconstexpr\fP \fBstd::experimental::optional\fP< _Tp >::optional (\fBoptional\fP< \fB_Up\fP > && __t)\fC [inline]\fP, \fC [explicit]\fP, \fC [constexpr]\fP" .PP Definition at line \fB585\fP of file \fBoptional\fP\&. .SH "Member Function Documentation" .PP .SS "template<\fBtypename\fP _Tp > template \fBenable_if_t\fP< \fBis_constructible\fP< _Tp, \fB_Args\fP &&\&.\&.\&. >::value > \fBstd::experimental::optional\fP< _Tp >::emplace (\fB_Args\fP &&\&.\&.\&. __args)\fC [inline]\fP" .PP Definition at line \fB670\fP of file \fBoptional\fP\&. .SS "template<\fBtypename\fP _Tp > template<\fBtypename\fP \fB_Up\fP , typename\&.\&.\&. _Args> \fBenable_if_t\fP< \fBis_constructible\fP< _Tp, \fBinitializer_list\fP< \fB_Up\fP > &, \fB_Args\fP &&\&.\&.\&. >::value > \fBstd::experimental::optional\fP< _Tp >::emplace (\fBinitializer_list\fP< \fB_Up\fP > __il, \fB_Args\fP &&\&.\&.\&. __args)\fC [inline]\fP" .PP Definition at line \fB679\fP of file \fBoptional\fP\&. .SS "template<\fBtypename\fP _Tp > \fBconstexpr\fP \fBstd::experimental::optional\fP< _Tp >::operator bool () const\fC [inline]\fP, \fC [explicit]\fP, \fC [constexpr]\fP, \fC [noexcept]\fP" .PP Definition at line \fB740\fP of file \fBoptional\fP\&. .SS "template<\fBtypename\fP _Tp > \fBconstexpr\fP _Tp & \fBstd::experimental::optional\fP< _Tp >::operator* () &\fC [inline]\fP, \fC [constexpr]\fP" .PP Definition at line \fB729\fP of file \fBoptional\fP\&. .SS "template<\fBtypename\fP _Tp > \fBconstexpr\fP _Tp && \fBstd::experimental::optional\fP< _Tp >::operator* () &&\fC [inline]\fP, \fC [constexpr]\fP" .PP Definition at line \fB733\fP of file \fBoptional\fP\&. .SS "template<\fBtypename\fP _Tp > \fBconstexpr\fP \fBconst\fP _Tp & \fBstd::experimental::optional\fP< _Tp >::operator* () const &\fC [inline]\fP, \fC [constexpr]\fP" .PP Definition at line \fB725\fP of file \fBoptional\fP\&. .SS "template<\fBtypename\fP _Tp > \fBconstexpr\fP \fBconst\fP _Tp && \fBstd::experimental::optional\fP< _Tp >::operator* () const &&\fC [inline]\fP, \fC [constexpr]\fP" .PP Definition at line \fB737\fP of file \fBoptional\fP\&. .SS "template<\fBtypename\fP _Tp > _Tp * \fBstd::experimental::optional\fP< _Tp >::operator\-> ()\fC [inline]\fP" .PP Definition at line \fB721\fP of file \fBoptional\fP\&. .SS "template<\fBtypename\fP _Tp > \fBconstexpr\fP \fBconst\fP _Tp * \fBstd::experimental::optional\fP< _Tp >::operator\-> () const\fC [inline]\fP, \fC [constexpr]\fP" .PP Definition at line \fB711\fP of file \fBoptional\fP\&. .SS "template<\fBtypename\fP _Tp > template<\fBtypename\fP \fB_Up\fP = _Tp> \fBenable_if_t\fP< __and_< __not_< \fBis_same\fP< \fBoptional\fP< _Tp >, \fBdecay_t\fP< \fB_Up\fP > > >, \fBis_constructible\fP< _Tp, \fB_Up\fP >, __not_< __and_< \fBis_scalar\fP< _Tp >, \fBis_same\fP< _Tp, \fBdecay_t\fP< \fB_Up\fP > > > >, \fBis_assignable\fP< _Tp &, \fB_Up\fP > >::value, \fBoptional\fP & > \fBstd::experimental::optional\fP< _Tp >::operator= (\fB_Up\fP && __u)\fC [inline]\fP" .PP Definition at line \fB607\fP of file \fBoptional\fP\&. .SS "template<\fBtypename\fP _Tp > template<\fBtypename\fP \fB_Up\fP > \fBenable_if_t\fP< __and_< __not_< \fBis_same\fP< _Tp, \fB_Up\fP > >, \fBis_constructible\fP< _Tp, \fBconst\fP \fB_Up\fP & >, \fBis_assignable\fP< _Tp &, \fB_Up\fP >, __not_< \fB__converts_from_optional\fP< _Tp, \fB_Up\fP > >, __not_< \fB__assigns_from_optional\fP< _Tp, \fB_Up\fP > > >::value, \fBoptional\fP & > \fBstd::experimental::optional\fP< _Tp >::operator= (\fBconst\fP \fBoptional\fP< \fB_Up\fP > & __u)\fC [inline]\fP" .PP Definition at line \fB626\fP of file \fBoptional\fP\&. .SS "template<\fBtypename\fP _Tp > \fBoptional\fP & \fBstd::experimental::optional\fP< _Tp >::operator= (\fBnullopt_t\fP)\fC [inline]\fP, \fC [noexcept]\fP" .PP Definition at line \fB593\fP of file \fBoptional\fP\&. .SS "template<\fBtypename\fP _Tp > template<\fBtypename\fP \fB_Up\fP > \fBenable_if_t\fP< __and_< __not_< \fBis_same\fP< _Tp, \fB_Up\fP > >, \fBis_constructible\fP< _Tp, \fB_Up\fP >, \fBis_assignable\fP< _Tp &, \fB_Up\fP >, __not_< \fB__converts_from_optional\fP< _Tp, \fB_Up\fP > >, __not_< \fB__assigns_from_optional\fP< _Tp, \fB_Up\fP > > >::value, \fBoptional\fP & > \fBstd::experimental::optional\fP< _Tp >::operator= (\fBoptional\fP< \fB_Up\fP > && __u)\fC [inline]\fP" .PP Definition at line \fB651\fP of file \fBoptional\fP\&. .SS "template<\fBtypename\fP _Tp > \fBvoid\fP \fBstd::experimental::optional\fP< _Tp >::swap (\fBoptional\fP< _Tp > & __other)\fC [inline]\fP, \fC [noexcept]\fP" .PP Definition at line \fB689\fP of file \fBoptional\fP\&. .SS "template<\fBtypename\fP _Tp > \fBconstexpr\fP _Tp & \fBstd::experimental::optional\fP< _Tp >::value () &\fC [inline]\fP, \fC [constexpr]\fP" .PP Definition at line \fB754\fP of file \fBoptional\fP\&. .SS "template<\fBtypename\fP _Tp > \fBconstexpr\fP _Tp && \fBstd::experimental::optional\fP< _Tp >::value () &&\fC [inline]\fP, \fC [constexpr]\fP" .PP Definition at line \fB764\fP of file \fBoptional\fP\&. .SS "template<\fBtypename\fP _Tp > \fBconstexpr\fP \fBconst\fP _Tp & \fBstd::experimental::optional\fP< _Tp >::value () const &\fC [inline]\fP, \fC [constexpr]\fP" .PP Definition at line \fB744\fP of file \fBoptional\fP\&. .SS "template<\fBtypename\fP _Tp > \fBconstexpr\fP \fBconst\fP _Tp && \fBstd::experimental::optional\fP< _Tp >::value () const &&\fC [inline]\fP, \fC [constexpr]\fP" .PP Definition at line \fB774\fP of file \fBoptional\fP\&. .SS "template<\fBtypename\fP _Tp > template<\fBtypename\fP \fB_Up\fP > _Tp \fBstd::experimental::optional\fP< _Tp >::value_or (\fB_Up\fP && __u) &&\fC [inline]\fP" .PP Definition at line \fB798\fP of file \fBoptional\fP\&. .SS "template<\fBtypename\fP _Tp > template<\fBtypename\fP \fB_Up\fP > \fBconstexpr\fP _Tp \fBstd::experimental::optional\fP< _Tp >::value_or (\fB_Up\fP && __u) const &\fC [inline]\fP, \fC [constexpr]\fP" .PP Definition at line \fB785\fP of file \fBoptional\fP\&. .SH "Author" .PP Generated automatically by Doxygen for libstdc++ from the source code\&.