.TH "std::experimental::_Optional_base< _Tp, _ShouldProvideDestructor >" 3cxx "libstdc++" \" -*- nroff -*- .ad l .nh .SH NAME std::experimental::_Optional_base< _Tp, _ShouldProvideDestructor > \- Class template that holds the necessary state for \fBOptional values\fP and that has the responsibility for construction and the special members\&. .SH SYNOPSIS .br .PP .PP \fC#include \fP .PP Inherited by \fBstd::experimental::optional< _Tp >\fP\fC [private]\fP\&. .SS "Public Member Functions" .in +1c .ti -1c .RI "\fB_Optional_base\fP (\fB_Optional_base\fP &&__other) \fBnoexcept\fP(\fBis_nothrow_move_constructible\fP< _Tp >())" .br .ti -1c .RI "\fB_Optional_base\fP (\fBconst\fP \fB_Optional_base\fP &__other)" .br .ti -1c .RI "template \fBconstexpr\fP \fB_Optional_base\fP (\fBin_place_t\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, int > \&.\&.\&.> \fBconstexpr\fP \fB_Optional_base\fP (\fBin_place_t\fP, \fBinitializer_list\fP< \fB_Up\fP > \fB__il\fP, \fB_Args\fP &&\&.\&.\&. \fB__args\fP)" .br .ti -1c .RI "\fBconstexpr\fP \fB_Optional_base\fP (\fBnullopt_t\fP) \fBnoexcept\fP" .br .ti -1c .RI "\fB_Optional_base\fP & \fBoperator=\fP (\fB_Optional_base\fP &&__other) \fBnoexcept\fP(__and_< \fBis_nothrow_move_constructible\fP< _Tp >, \fBis_nothrow_move_assignable\fP< _Tp > >())" .br .ti -1c .RI "\fB_Optional_base\fP & \fBoperator=\fP (\fBconst\fP \fB_Optional_base\fP &__other)" .br .in -1c .SS "Protected Member Functions" .in +1c .ti -1c .RI "template \fBvoid\fP \fB_M_construct\fP (\fB_Args\fP &&\&.\&.\&. \fB__args\fP) \fBnoexcept\fP(\fBis_nothrow_constructible\fP< _Stored_type, _Args\&.\&.\&. >())" .br .ti -1c .RI "\fBvoid\fP \fB_M_destruct\fP ()" .br .ti -1c .RI "\fBconstexpr\fP \fBconst\fP _Tp & \fB_M_get\fP () \fBconst\fP \fBnoexcept\fP" .br .ti -1c .RI "\fBconstexpr\fP _Tp & \fB_M_get\fP () \fBnoexcept\fP" .br .ti -1c .RI "\fBconstexpr\fP bool \fB_M_is_engaged\fP () \fBconst\fP \fBnoexcept\fP" .br .ti -1c .RI "\fBvoid\fP \fB_M_reset\fP ()" .br .in -1c .SH "Detailed Description" .PP .SS "template<\fBtypename\fP _Tp, bool _ShouldProvideDestructor = !is_trivially_destructible<_Tp>::value> .br class std::experimental::_Optional_base< _Tp, _ShouldProvideDestructor >"Class template that holds the necessary state for \fBOptional values\fP and that has the responsibility for construction and the special members\&. Such a separate base class template is necessary in order to conditionally enable the special members (e\&.g\&. copy/move constructors)\&. Note that this means that \fB_Optional_base\fP implements the functionality for copy and move assignment, but not for converting assignment\&. .PP \fBSee also\fP .RS 4 optional, _Enable_special_members .RE .PP .PP Definition at line \fB202\fP of file \fBoptional\fP\&. .SH "Constructor & Destructor Documentation" .PP .SS "template<\fBtypename\fP _Tp , bool _ShouldProvideDestructor = !is_trivially_destructible<_Tp>::value> \fBconstexpr\fP \fBstd::experimental::_Optional_base\fP< _Tp, \fB_ShouldProvideDestructor\fP >::_Optional_base ()\fC [inline]\fP, \fC [constexpr]\fP, \fC [noexcept]\fP" .PP Definition at line \fB214\fP of file \fBoptional\fP\&. .SS "template<\fBtypename\fP _Tp , bool _ShouldProvideDestructor = !is_trivially_destructible<_Tp>::value> \fBconstexpr\fP \fBstd::experimental::_Optional_base\fP< _Tp, \fB_ShouldProvideDestructor\fP >::_Optional_base (\fBnullopt_t\fP)\fC [inline]\fP, \fC [constexpr]\fP, \fC [noexcept]\fP" .PP Definition at line \fB217\fP of file \fBoptional\fP\&. .SS "template<\fBtypename\fP _Tp , bool _ShouldProvideDestructor = !is_trivially_destructible<_Tp>::value> template \fBconstexpr\fP \fBstd::experimental::_Optional_base\fP< _Tp, \fB_ShouldProvideDestructor\fP >::_Optional_base (\fBin_place_t\fP, \fB_Args\fP &&\&.\&.\&. __args)\fC [inline]\fP, \fC [explicit]\fP, \fC [constexpr]\fP" .PP Definition at line \fB222\fP of file \fBoptional\fP\&. .SS "template<\fBtypename\fP _Tp , bool _ShouldProvideDestructor = !is_trivially_destructible<_Tp>::value> 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, int > \&.\&.\&.> \fBconstexpr\fP \fBstd::experimental::_Optional_base\fP< _Tp, \fB_ShouldProvideDestructor\fP >::_Optional_base (\fBin_place_t\fP, \fBinitializer_list\fP< \fB_Up\fP > __il, \fB_Args\fP &&\&.\&.\&. __args)\fC [inline]\fP, \fC [explicit]\fP, \fC [constexpr]\fP" .PP Definition at line \fB230\fP of file \fBoptional\fP\&. .SS "template<\fBtypename\fP _Tp , bool _ShouldProvideDestructor = !is_trivially_destructible<_Tp>::value> \fBstd::experimental::_Optional_base\fP< _Tp, \fB_ShouldProvideDestructor\fP >::_Optional_base (\fBconst\fP \fB_Optional_base\fP< _Tp, \fB_ShouldProvideDestructor\fP > & __other)\fC [inline]\fP" .PP Definition at line \fB237\fP of file \fBoptional\fP\&. .SS "template<\fBtypename\fP _Tp , bool _ShouldProvideDestructor = !is_trivially_destructible<_Tp>::value> \fBstd::experimental::_Optional_base\fP< _Tp, \fB_ShouldProvideDestructor\fP >::_Optional_base (\fB_Optional_base\fP< _Tp, \fB_ShouldProvideDestructor\fP > && __other)\fC [inline]\fP, \fC [noexcept]\fP" .PP Definition at line \fB243\fP of file \fBoptional\fP\&. .SS "template<\fBtypename\fP _Tp , bool _ShouldProvideDestructor = !is_trivially_destructible<_Tp>::value> \fBstd::experimental::_Optional_base\fP< _Tp, \fB_ShouldProvideDestructor\fP >::~\fB_Optional_base\fP ()\fC [inline]\fP" .PP Definition at line \fB285\fP of file \fBoptional\fP\&. .SH "Member Function Documentation" .PP .SS "template<\fBtypename\fP _Tp , bool _ShouldProvideDestructor = !is_trivially_destructible<_Tp>::value> template \fBvoid\fP \fBstd::experimental::_Optional_base\fP< _Tp, \fB_ShouldProvideDestructor\fP >::_M_construct (\fB_Args\fP &&\&.\&.\&. __args)\fC [inline]\fP, \fC [protected]\fP, \fC [noexcept]\fP" .PP Definition at line \fB310\fP of file \fBoptional\fP\&. .SS "template<\fBtypename\fP _Tp , bool _ShouldProvideDestructor = !is_trivially_destructible<_Tp>::value> \fBvoid\fP \fBstd::experimental::_Optional_base\fP< _Tp, \fB_ShouldProvideDestructor\fP >::_M_destruct ()\fC [inline]\fP, \fC [protected]\fP" .PP Definition at line \fB319\fP of file \fBoptional\fP\&. .SS "template<\fBtypename\fP _Tp , bool _ShouldProvideDestructor = !is_trivially_destructible<_Tp>::value> \fBconstexpr\fP \fBconst\fP _Tp & \fBstd::experimental::_Optional_base\fP< _Tp, \fB_ShouldProvideDestructor\fP >::_M_get () const\fC [inline]\fP, \fC [constexpr]\fP, \fC [protected]\fP, \fC [noexcept]\fP" .PP Definition at line \fB303\fP of file \fBoptional\fP\&. .SS "template<\fBtypename\fP _Tp , bool _ShouldProvideDestructor = !is_trivially_destructible<_Tp>::value> \fBconstexpr\fP _Tp & \fBstd::experimental::_Optional_base\fP< _Tp, \fB_ShouldProvideDestructor\fP >::_M_get ()\fC [inline]\fP, \fC [constexpr]\fP, \fC [protected]\fP, \fC [noexcept]\fP" .PP Definition at line \fB299\fP of file \fBoptional\fP\&. .SS "template<\fBtypename\fP _Tp , bool _ShouldProvideDestructor = !is_trivially_destructible<_Tp>::value> \fBconstexpr\fP bool \fBstd::experimental::_Optional_base\fP< _Tp, \fB_ShouldProvideDestructor\fP >::_M_is_engaged () const\fC [inline]\fP, \fC [constexpr]\fP, \fC [protected]\fP, \fC [noexcept]\fP" .PP Definition at line \fB294\fP of file \fBoptional\fP\&. .SS "template<\fBtypename\fP _Tp , bool _ShouldProvideDestructor = !is_trivially_destructible<_Tp>::value> \fBvoid\fP \fBstd::experimental::_Optional_base\fP< _Tp, \fB_ShouldProvideDestructor\fP >::_M_reset ()\fC [inline]\fP, \fC [protected]\fP" .PP Definition at line \fB327\fP of file \fBoptional\fP\&. .SS "template<\fBtypename\fP _Tp , bool _ShouldProvideDestructor = !is_trivially_destructible<_Tp>::value> \fB_Optional_base\fP & \fBstd::experimental::_Optional_base\fP< _Tp, \fB_ShouldProvideDestructor\fP >::operator= (\fB_Optional_base\fP< _Tp, \fB_ShouldProvideDestructor\fP > && __other)\fC [inline]\fP, \fC [noexcept]\fP" .PP Definition at line \fB268\fP of file \fBoptional\fP\&. .SS "template<\fBtypename\fP _Tp , bool _ShouldProvideDestructor = !is_trivially_destructible<_Tp>::value> \fB_Optional_base\fP & \fBstd::experimental::_Optional_base\fP< _Tp, \fB_ShouldProvideDestructor\fP >::operator= (\fBconst\fP \fB_Optional_base\fP< _Tp, \fB_ShouldProvideDestructor\fP > & __other)\fC [inline]\fP" .PP Definition at line \fB252\fP of file \fBoptional\fP\&. .SH "Member Data Documentation" .PP .SS "template<\fBtypename\fP _Tp , bool _ShouldProvideDestructor = !is_trivially_destructible<_Tp>::value> _Empty_byte \fBstd::experimental::_Optional_base\fP< _Tp, \fB_ShouldProvideDestructor\fP >::_M_empty" .PP Definition at line \fB336\fP of file \fBoptional\fP\&. .SS "template<\fBtypename\fP _Tp , bool _ShouldProvideDestructor = !is_trivially_destructible<_Tp>::value> _Stored_type \fBstd::experimental::_Optional_base\fP< _Tp, \fB_ShouldProvideDestructor\fP >::_M_payload" .PP Definition at line \fB337\fP of file \fBoptional\fP\&. .SH "Author" .PP Generated automatically by Doxygen for libstdc++ from the source code\&.