std::experimental::propagate_const< _Tp >(3cxx) | std::experimental::propagate_const< _Tp >(3cxx) |
NAME¶
std::experimental::propagate_const< _Tp > - Const-propagating wrapper.
SYNOPSIS¶
Public Types¶
typedef remove_reference_t<
decltype(*std::declval< _Tp & >())> element_type
Public Member Functions¶
template<typename _Up , typename enable_if<
__and_< is_constructible< _Tp, _Up && >,
is_convertible< _Up &&, _Tp >, __not_<
__is_propagate_const< typename decay< _Up >::type > >
>::value, bool >::type = true> constexpr propagate_const
(_Up &&__u)
template<typename _Up , typename enable_if< __and_<
is_constructible< _Tp, _Up && >, __not_<
is_convertible< _Up &&, _Tp > >, __not_<
__is_propagate_const< typename decay< _Up >::type > >
>::value, bool >::type = false> constexpr propagate_const
(_Up &&__u)
propagate_const (const propagate_const &__p)=delete
constexpr propagate_const (propagate_const
&&__p)=default
template<typename _Up , typename enable_if< __and_<
is_constructible< _Tp, _Up && >,
is_convertible< _Up &&, _Tp > >::value, bool
>::type = true> constexpr propagate_const
(propagate_const< _Up > &&__pu)
template<typename _Up , typename enable_if< __and_<
is_constructible< _Tp, _Up && >, __not_<
is_convertible< _Up &&, _Tp > > >::value, bool
>::type = false> constexpr propagate_const
(propagate_const< _Up > &&__pu)
constexpr element_type * get ()
constexpr const element_type * get () const
constexpr operator bool () const
template<typename _Up = _Tp, typename enable_if< __or_<
is_pointer< _Up >, is_convertible< _Up, const
element_type * > >::value, bool >::type = true> constexpr
operator const element_type * () const
template<typename _Up = _Tp, typename enable_if< __or_<
is_pointer< _Up >, is_convertible< _Up, const
element_type * > >::value, bool >::type = true> constexpr
operator element_type * ()
constexpr element_type & operator* ()
constexpr const element_type & operator* () const
constexpr element_type * operator-> ()
constexpr const element_type * operator-> () const
template<typename _Up , typename = typename
enable_if<__and_<is_convertible<_Up&&, _Tp>,
__not_<__is_propagate_const< typename
decay<_Up>::type>> >::value>::type> constexpr
propagate_const & operator= (_Up &&__u)
propagate_const & operator= (const propagate_const
&__p)=delete
constexpr propagate_const & operator=
(propagate_const &&__p)=default
template<typename _Up , typename = typename
enable_if<is_convertible<_Up&&, _Tp>::value>::type>
constexpr propagate_const & operator=
(propagate_const< _Up > &&__pu)
constexpr void swap (propagate_const &__pt)
noexcept(__is_nothrow_swappable< _Tp >::value)
Friends¶
template<typename _Up > constexpr const _Up &
get_underlying (const propagate_const< _Up > &__pt)
noexcept
template<typename _Up > constexpr _Up & get_underlying
(propagate_const< _Up > &__pt) noexcept
Detailed Description¶
template<typename _Tp>¶
class std::experimental::propagate_const< _Tp >"Const-propagating wrapper.
Definition at line 64 of file propagate_const.
Member Typedef Documentation¶
template<typename _Tp > typedef remove_reference_t<decltype(*std::declval<_Tp&>())> std::experimental::propagate_const< _Tp >::element_type¶
Definition at line 67 of file propagate_const.
Constructor & Destructor Documentation¶
template<typename _Tp > template<typename _Up , typename enable_if< __and_< is_constructible< _Tp, _Up && >, is_convertible< _Up &&, _Tp > >::value, bool >::type = true> constexpr std::experimental::propagate_const< _Tp >::propagate_const (propagate_const< _Up > && __pu) [inline], [constexpr]¶
Definition at line 121 of file propagate_const.
template<typename _Tp > template<typename _Up , typename enable_if< __and_< is_constructible< _Tp, _Up && >, __not_< is_convertible< _Up &&, _Tp > > >::value, bool >::type = false> constexpr std::experimental::propagate_const< _Tp >::propagate_const (propagate_const< _Up > && __pu) [inline], [explicit], [constexpr]¶
Definition at line 129 of file propagate_const.
template<typename _Tp > template<typename _Up , typename enable_if< __and_< is_constructible< _Tp, _Up && >, is_convertible< _Up &&, _Tp >, __not_< __is_propagate_const< typename decay< _Up >::type > > >::value, bool >::type = true> constexpr std::experimental::propagate_const< _Tp >::propagate_const (_Up && __u) [inline], [constexpr]¶
Definition at line 139 of file propagate_const.
template<typename _Tp > template<typename _Up , typename enable_if< __and_< is_constructible< _Tp, _Up && >, __not_< is_convertible< _Up &&, _Tp > >, __not_< __is_propagate_const< typename decay< _Up >::type > > >::value, bool >::type = false> constexpr std::experimental::propagate_const< _Tp >::propagate_const (_Up && __u) [inline], [explicit], [constexpr]¶
Definition at line 149 of file propagate_const.
Member Function Documentation¶
template<typename _Tp > constexpr element_type * std::experimental::propagate_const< _Tp >::get (void) [inline], [constexpr]¶
Definition at line 228 of file propagate_const.
template<typename _Tp > constexpr const element_type * std::experimental::propagate_const< _Tp >::get (void) const [inline], [constexpr]¶
Definition at line 202 of file propagate_const.
template<typename _Tp > constexpr std::experimental::propagate_const< _Tp >::operator bool () const [inline], [explicit], [constexpr]¶
Definition at line 177 of file propagate_const.
template<typename _Tp > template<typename _Up = _Tp, typename enable_if< __or_< is_pointer< _Up >, is_convertible< _Up, const element_type * > >::value, bool >::type = true> constexpr std::experimental::propagate_const< _Tp >::operator const element_type * () const [inline], [constexpr]¶
Definition at line 192 of file propagate_const.
template<typename _Tp > template<typename _Up = _Tp, typename enable_if< __or_< is_pointer< _Up >, is_convertible< _Up, const element_type * > >::value, bool >::type = true> constexpr std::experimental::propagate_const< _Tp >::operator element_type * () [inline], [constexpr]¶
Definition at line 218 of file propagate_const.
template<typename _Tp > constexpr element_type & std::experimental::propagate_const< _Tp >::operator* () [inline], [constexpr]¶
Definition at line 223 of file propagate_const.
template<typename _Tp > constexpr const element_type & std::experimental::propagate_const< _Tp >::operator* () const [inline], [constexpr]¶
Definition at line 197 of file propagate_const.
template<typename _Tp > constexpr element_type * std::experimental::propagate_const< _Tp >::operator-> () [inline], [constexpr]¶
Definition at line 208 of file propagate_const.
template<typename _Tp > constexpr const element_type * std::experimental::propagate_const< _Tp >::operator-> () const [inline], [constexpr]¶
Definition at line 182 of file propagate_const.
template<typename _Tp > template<typename _Up , typename = typename enable_if<__and_<is_convertible<_Up&&, _Tp>, __not_<__is_propagate_const< typename decay<_Up>::type>> >::value>::type> constexpr propagate_const & std::experimental::propagate_const< _Tp >::operator= (_Up && __u) [inline], [constexpr]¶
Definition at line 170 of file propagate_const.
template<typename _Tp > template<typename _Up , typename = typename enable_if<is_convertible<_Up&&, _Tp>::value>::type> constexpr propagate_const & std::experimental::propagate_const< _Tp >::operator= (propagate_const< _Up > && __pu) [inline], [constexpr]¶
Definition at line 159 of file propagate_const.
template<typename _Tp > constexpr void std::experimental::propagate_const< _Tp >::swap (propagate_const< _Tp > & __pt) [inline], [constexpr], [noexcept]¶
Definition at line 235 of file propagate_const.
Author¶
Generated automatically by Doxygen for libstdc++ from the source code.
Sun Jan 8 2023 | libstdc++ |