STD::EXPERIMENTAL::PROPAGATE_CONST(3cxx)

πŸ¦‹ std::experimental::propagate_const< _Tp > β€” 3cxx manual page πŸ¦‹

okay bestie, welcome to the 3cxx page for the const-propagating wrapper πŸ’– we are keeping every single detail, no cap ✨

πŸŽ€ NAME πŸŽ€

std::experimental::propagate_const< _Tp > β€” Const-propagating wrapper. That’s the whole name, and it ate πŸ’…

🌈 SYNOPSIS 🌈

Include it like this, exactly:

#include <propagate_const>
  • Inherits std::experimental::__propagate_const_conversions< _Tp >. Yes, that’s the parent, periodt 🫢

πŸ¦‹ Public Types πŸ¦‹

  • using element_type = __propagate_const_elem_type< _Tp > β€” that’s the public type alias, character-for-character ✨

πŸ’… Public Member Functions πŸ’…

okay this is the big one, so buckle up πŸŽ€ here are the exact signatures, no summarising, no skipping:

  • Constructor from _Up &&__u, convertible version β€” exact signature:
       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)
  • Constructor from _Up &&__u, non-convertible version β€” exact signature:
       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)
  • Copy constructor β€” deleted, literally:
       propagate_const (const propagate_const &__p)=delete
  • Move constructor β€” defaulted, slay:
       constexpr propagate_const (propagate_const &&__p)=default
  • Constructor from propagate_const< _Up > &&__pu, convertible version:
       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)
  • Constructor from propagate_const< _Up > &&__pu, non-convertible version:
       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)
  • get β€” non-const:
       constexpr element_type * get ()
  • get β€” const:
       constexpr const element_type * get () const
  • operator bool β€” const:
       constexpr operator bool () const
  • operator* β€” non-const:
       constexpr element_type & operator* ()
  • operator* β€” const:
       constexpr const element_type & operator* () const
  • operator-> β€” non-const:
       constexpr element_type * operator-> ()
  • operator-> β€” const:
       constexpr const element_type * operator-> () const
  • Assignment from _Up &&__u β€” exact signature:
       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)
  • Copy assignment β€” deleted:
       propagate_const & operator= (const propagate_const &__p)=delete
  • Move assignment β€” defaulted:
       constexpr propagate_const & operator= (propagate_const &&__p)=default
  • Assignment from propagate_const< _Up > &&__pu β€” exact signature:
       template<typename _Up , typename  = typename
           enable_if<is_convertible<_Up&&, _Tp>::value>::type> constexpr
           propagate_const & operator= (propagate_const< _Up > &&__pu)
  • swap β€” exact signature, including the noexcept bit:
       constexpr void swap (propagate_const &__pt)
           noexcept(__is_nothrow_swappable< _Tp >::value)

🫢 Friends 🫢

  • Friend get_underlying β€” const version, exact:
       template<typename _Up > constexpr const _Up & get_underlying (const
           propagate_const< _Up > &__pt) noexcept
  • Friend get_underlying β€” non-const version, exact:
       template<typename _Up > constexpr _Up & get_underlying (propagate_const<
           _Up > &__pt) noexcept

✨ Detailed Description ✨

Here’s the template-and-class moment, preserved exactly β€” yes, including that quote after > because we do not β€œfix” the source, bestie 😭:

     template<typename _Tp>
         class std::experimental::propagate_const< _Tp >"Const-propagating
         wrapper.

πŸ‘‘ Author πŸ‘‘

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


byeee bestie πŸ’– this page is from libstdc++ and the 3cxx manual section, generated automatically by Doxygen from the source code, and the footer had no date on it so I’m not inventing one β€” periodt ✨🫢

πŸ“¦ where this page comes from