.TH "std::_Optional_base< _Tp, bool, bool >" 3cxx "libstdc++" \" -*- nroff -*- .ad l .nh .SH NAME std::_Optional_base< _Tp, bool, bool > \- Class template that provides copy/move constructors of optional\&. .SH SYNOPSIS .br .PP .PP \fC#include \fP .PP Inherits std::_Optional_base_impl< _Tp, _Dp >\&. .PP Inherited by \fBstd::experimental::fundamentals_v1::optional< _Tp >\fP\fC [private]\fP, and \fBstd::optional< _Tp >\fP\fC [private]\fP\&. .SS "Public Member Functions" .in +1c .ti -1c .RI "\fBconstexpr\fP \fB_Optional_base\fP (\fB_Optional_base\fP &&__other) \fBnoexcept\fP(is_nothrow_move_constructible_v< _Tp >)" .br .ti -1c .RI "\fBconstexpr\fP \fB_Optional_base\fP (\fBconst\fP \fB_Optional_base\fP &__other)" .br .ti -1c .RI "template, bool > = false> \fBconstexpr\fP \fB_Optional_base\fP (in_place_t, \fB_Args\fP &&\&.\&.\&. \fB__args\fP)" .br .ti -1c .RI "template<\fBtypename\fP _Up , typename\&.\&.\&. _Args, \fBenable_if_t\fP< is_constructible_v< _Tp, \fBinitializer_list\fP< _Up > &, _Args\&.\&.\&. >, bool > = false> \fBconstexpr\fP \fB_Optional_base\fP (in_place_t, \fBinitializer_list\fP< _Up > \fB__il\fP, \fB_Args\fP &&\&.\&.\&. \fB__args\fP)" .br .ti -1c .RI "\fB_Optional_base\fP & \fBoperator=\fP (\fB_Optional_base\fP &&)=\fBdefault\fP" .br .ti -1c .RI "\fB_Optional_base\fP & \fBoperator=\fP (\fBconst\fP \fB_Optional_base\fP &)=\fBdefault\fP" .br .in -1c .SS "Public Attributes" .in +1c .ti -1c .RI "_Optional_payload< _Tp > \fB_M_payload\fP" .br .in -1c .SS "Protected Types" .in +1c .ti -1c .RI "\fBusing\fP \fB_Stored_type\fP = \fBremove_const_t\fP< _Tp >" .br .in -1c .SS "Protected Member Functions" .in +1c .ti -1c .RI "template \fBconstexpr\fP \fBvoid\fP \fB_M_construct\fP (\fB_Args\fP &&\&.\&.\&. \fB__args\fP) \fBnoexcept\fP(is_nothrow_constructible_v< \fB_Stored_type\fP, _Args\&.\&.\&. >)" .br .ti -1c .RI "\fBconstexpr\fP \fBvoid\fP \fB_M_destruct\fP () \fBnoexcept\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 "\fBconstexpr\fP \fBvoid\fP \fB_M_reset\fP () \fBnoexcept\fP" .br .in -1c .SH "Detailed Description" .PP .SS "template<\fBtypename\fP _Tp, bool = is_trivially_copy_constructible_v<_Tp>, bool = is_trivially_move_constructible_v<_Tp>> .br struct std::_Optional_base< _Tp, bool, bool >"Class template that provides copy/move constructors of optional\&. Such a separate base class template is necessary in order to conditionally make copy/move constructors trivial\&. .PP When the contained value is trivially copy/move constructible, the copy/move constructors of _Optional_base will invoke the trivial copy/move constructor of _Optional_payload\&. Otherwise, they will invoke _Optional_payload(bool, const _Optional_payload&) or _Optional_payload(bool, _Optional_payload&&) to initialize the contained value, if copying/moving an engaged optional\&. .PP Whether the other special members are trivial is determined by the _Optional_payload<_Tp> specialization used for the _M_payload member\&. .PP \fBSee also\fP .RS 4 optional, _Enable_special_members .RE .PP .SH "Author" .PP Generated automatically by Doxygen for libstdc++ from the source code\&.