Provided by: libstdc++-9-doc_9.5.0-3ubuntu1_all bug

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 63 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 66 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 119 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 126 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 135 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 144 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 223 of file propagate_const.

   template<typename _Tp > constexpr const element_type * std::experimental::propagate_const< _Tp
       >::get (void) const [inline],  [constexpr]
       Definition at line 197 of file propagate_const.

   template<typename _Tp > constexpr std::experimental::propagate_const< _Tp >::operator bool ()
       const [inline],  [explicit],  [constexpr]
       Definition at line 172 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 187 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 213 of file propagate_const.

   template<typename _Tp > constexpr element_type & std::experimental::propagate_const< _Tp
       >::operator* () [inline],  [constexpr]
       Definition at line 218 of file propagate_const.

   template<typename _Tp > constexpr const element_type & std::experimental::propagate_const< _Tp
       >::operator* () const [inline],  [constexpr]
       Definition at line 192 of file propagate_const.

   template<typename _Tp > constexpr element_type * std::experimental::propagate_const< _Tp
       >::operator-> () [inline],  [constexpr]
       Definition at line 203 of file propagate_const.

   template<typename _Tp > constexpr const element_type * std::experimental::propagate_const< _Tp
       >::operator-> () const [inline],  [constexpr]
       Definition at line 177 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 165 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 154 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 230 of file propagate_const.

Author

       Generated automatically by Doxygen for libstdc++ from the source code.

libstdc++                                Tue Feb 2std::experimental::propagate_const< _Tp >(3cxx)