libstdc++
std::experimental::fundamentals_v2::propagate_const< _Tp > Class Template Reference

List of all members.

Public Types

typedef remove_reference_t
< decltype(*std::declval< _Tp & >))> 
element_type

Public Member Functions

 propagate_const (const propagate_const &__p)
constexpr propagate_const (propagate_const &&__p)
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)
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)
constexpr const element_type * get () const
constexpr element_type * get ()
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 const element_type & operator* () const
constexpr element_type & operator* ()
constexpr const element_type * operator-> () const
constexpr element_type * operator-> ()
propagate_constoperator= (const propagate_const &__p)
constexpr propagate_constoperator= (propagate_const &&__p)
template<typename _Up , typename = typename enable_if<is_convertible<_Up&&, _Tp>::value>::type>
constexpr propagate_constoperator= (propagate_const< _Up > &&__pu)
template<typename _Up , typename = typename enable_if<__and_<is_convertible<_Up&&, _Tp>, __not_<__is_propagate_const< typename decay<_Up>::type>> >::value>::type>
constexpr propagate_constoperator= (_Up &&__u)
 static_assert (__and_< is_object< typename remove_pointer< _Tp >::type >, __not_< is_array< _Tp >>, __or_< is_class< _Tp >, is_pointer< _Tp >>>::value,"propagate_const requires a class or a pointer to an"" object type")
constexpr void swap (propagate_const &__pt) noexcept(__is_nothrow_swappable< _Tp >

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::fundamentals_v2::propagate_const< _Tp >

Const-propagating wrapper.

Definition at line 65 of file propagate_const.


The documentation for this class was generated from the following file: