libstdc++: Const-propagating wrapper

libstdc++

Const-propagating wrapper
Technical Specifications » Library Fundamentals TS
Collaboration diagram for Const-propagating wrapper:

## Classes
class | std::experimental::fundamentals_v2::propagate_const< _Tp >

## Functions
template<typename _Tp>
constexpr const _Tp & | std::experimental::get_underlying (const propagate_const< _Tp > &__pt) noexcept
template<typename _Tp>
constexpr _Tp & | std::experimental::get_underlying (propagate_const< _Tp > &__pt) noexcept
constexpr | std::experimental::fundamentals_v2::__propagate_const_conversion_nc< _Tp, _Elem, true >::operator _Elem * ()
constexpr | std::experimental::fundamentals_v2::__propagate_const_conversions< _Tp * >::operator _Tp * () noexcept
constexpr | std::experimental::fundamentals_v2::__propagate_const_conversion_c< _Tp, _Elem, true >::operator const _Elem * () const
constexpr | std::experimental::fundamentals_v2::__propagate_const_conversions< _Tp * >::operator const _Tp * () const noexcept
template<typename _Tp, typename _Up>
constexpr bool | std::experimental::operator!= (const _Tp &__t, const propagate_const< _Up > &__pu)
template<typename _Tp, typename _Up>
constexpr bool | std::experimental::operator!= (const propagate_const< _Tp > &__pt, const _Up &__u)
template<typename _Tp, typename _Up>
constexpr bool | std::experimental::operator!= (const propagate_const< _Tp > &__pt, const propagate_const< _Up > &__pu)
template<typename _Tp>
constexpr bool | std::experimental::operator!= (const propagate_const< _Tp > &__pt, nullptr_t)
template<typename _Tp>
constexpr bool | std::experimental::operator!= (nullptr_t, const propagate_const< _Tp > &__pu)
template<typename _Tp, typename _Up>
constexpr bool | std::experimental::operator< (const _Tp &__t, const propagate_const< _Up > &__pu)
template<typename _Tp, typename _Up>
constexpr bool | std::experimental::operator< (const propagate_const< _Tp > &__pt, const _Up &__u)
template<typename _Tp, typename _Up>
constexpr bool | std::experimental::operator< (const propagate_const< _Tp > &__pt, const propagate_const< _Up > &__pu)
template<typename _Tp, typename _Up>
constexpr bool | std::experimental::operator<= (const _Tp &__t, const propagate_const< _Up > &__pu)
template<typename _Tp, typename _Up>
constexpr bool | std::experimental::operator<= (const propagate_const< _Tp > &__pt, const _Up &__u)
template<typename _Tp, typename _Up>
constexpr bool | std::experimental::operator<= (const propagate_const< _Tp > &__pt, const propagate_const< _Up > &__pu)
template<typename _Tp, typename _Up>
constexpr bool | std::experimental::operator== (const _Tp &__t, const propagate_const< _Up > &__pu)
template<typename _Tp, typename _Up>
constexpr bool | std::experimental::operator== (const propagate_const< _Tp > &__pt, const _Up &__u)
template<typename _Tp, typename _Up>
constexpr bool | std::experimental::operator== (const propagate_const< _Tp > &__pt, const propagate_const< _Up > &__pu)
template<typename _Tp>
constexpr bool | std::experimental::operator== (const propagate_const< _Tp > &__pt, nullptr_t)
template<typename _Tp>
constexpr bool | std::experimental::operator== (nullptr_t, const propagate_const< _Tp > &__pu)
template<typename _Tp, typename _Up>
constexpr bool | std::experimental::operator> (const _Tp &__t, const propagate_const< _Up > &__pu)
template<typename _Tp, typename _Up>
constexpr bool | std::experimental::operator> (const propagate_const< _Tp > &__pt, const _Up &__u)
template<typename _Tp, typename _Up>
constexpr bool | std::experimental::operator> (const propagate_const< _Tp > &__pt, const propagate_const< _Up > &__pu)
template<typename _Tp, typename _Up>
constexpr bool | std::experimental::operator>= (const _Tp &__t, const propagate_const< _Up > &__pu)
template<typename _Tp, typename _Up>
constexpr bool | std::experimental::operator>= (const propagate_const< _Tp > &__pt, const _Up &__u)
template<typename _Tp, typename _Up>
constexpr bool | std::experimental::operator>= (const propagate_const< _Tp > &__pt, const propagate_const< _Up > &__pu)
template<typename _Tp>
constexpr enable_if_t< __is_swappable< _Tp >::value, void > | std::experimental::swap (propagate_const< _Tp > &__pt, propagate_const< _Tp > &__pt2) noexcept(__is_nothrow_swappable< _Tp >::value)

## Detailed Description

A const-propagating wrapper that propagates const to pointer-like members, as described in n4388 "A Proposal to Add a Const-Propagating Wrapper to the Standard Library".

## Function Documentation

## ◆ get_underlying() [1/2]

template<typename _Tp>

const _Tp & std::experimental::fundamentals_v2::get_underlying | ( | const propagate_const< _Tp > & | __pt | ) |
| constexprnoexcept

Definition at line 444 of file propagate_const.

## ◆ get_underlying() [2/2]

template<typename _Tp>

_Tp & std::experimental::fundamentals_v2::get_underlying | ( | propagate_const< _Tp > & | __pt | ) |
| constexprnoexcept

Definition at line 451 of file propagate_const.

## ◆ operator _Elem *()

template<typename _Tp, typename _Elem>

std::experimental::fundamentals_v2::__propagate_const_conversion_nc< _Tp, _Elem, true >::operator _Elem * | ( |  | ) |
| constexpr

Definition at line 474 of file propagate_const.

## ◆ operator _Tp *()

template<typename _Tp>

std::experimental::fundamentals_v2::__propagate_const_conversions< _Tp * >::operator _Tp * | ( |  | ) |
| constexprnoexcept

Definition at line 463 of file propagate_const.

## ◆ operator const _Elem *()

template<typename _Tp, typename _Elem>

std::experimental::fundamentals_v2::__propagate_const_conversion_c< _Tp, _Elem, true >::operator const _Elem * | ( |  | ) | const
| constexpr

Definition at line 468 of file propagate_const.

## ◆ operator const _Tp *()

template<typename _Tp>

std::experimental::fundamentals_v2::__propagate_const_conversions< _Tp * >::operator const _Tp * | ( |  | ) | const
| constexprnoexcept

Definition at line 458 of file propagate_const.

## ◆ operator!=() [1/5]

template<typename _Tp, typename _Up>

bool std::experimental::fundamentals_v2::operator!= | ( | const _Tp & | __t,
|  | const propagate_const< _Up > & | __pu )
| constexpr

Definition at line 397 of file propagate_const.

## ◆ operator!=() [2/5]

template<typename _Tp, typename _Up>

bool std::experimental::fundamentals_v2::operator!= | ( | const propagate_const< _Tp > & | __pt,
|  | const _Up & | __u )
| constexpr

Definition at line 355 of file propagate_const.

## ◆ operator!=() [3/5]

template<typename _Tp, typename _Up>

bool std::experimental::fundamentals_v2::operator!= | ( | const propagate_const< _Tp > & | __pt,
|  | const propagate_const< _Up > & | __pu )
| constexpr

Definition at line 308 of file propagate_const.

## ◆ operator!=() [4/5]

template<typename _Tp>

bool std::experimental::fundamentals_v2::operator!= | ( | const propagate_const< _Tp > & | __pt,
|  | nullptr_t | )
| constexpr

Definition at line 287 of file propagate_const.

## ◆ operator!=() [5/5]

template<typename _Tp>

bool std::experimental::fundamentals_v2::operator!= | ( | nullptr_t | ,
|  | const propagate_const< _Tp > & | __pu )
| constexpr

Definition at line 293 of file propagate_const.

## ◆ operator<() [1/3]

template<typename _Tp, typename _Up>

bool std::experimental::fundamentals_v2::operator< | ( | const _Tp & | __t,
|  | const propagate_const< _Up > & | __pu )
| constexpr

Definition at line 403 of file propagate_const.

## ◆ operator<() [2/3]

template<typename _Tp, typename _Up>

bool std::experimental::fundamentals_v2::operator< | ( | const propagate_const< _Tp > & | __pt,
|  | const _Up & | __u )
| constexpr

Definition at line 361 of file propagate_const.

## ◆ operator<() [3/3]

template<typename _Tp, typename _Up>

bool std::experimental::fundamentals_v2::operator< | ( | const propagate_const< _Tp > & | __pt,
|  | const propagate_const< _Up > & | __pu )
| constexpr

Definition at line 315 of file propagate_const.

## ◆ operator<=() [1/3]

template<typename _Tp, typename _Up>

bool std::experimental::fundamentals_v2::operator<= | ( | const _Tp & | __t,
|  | const propagate_const< _Up > & | __pu )
| constexpr

Definition at line 417 of file propagate_const.

## ◆ operator<=() [2/3]

template<typename _Tp, typename _Up>

bool std::experimental::fundamentals_v2::operator<= | ( | const propagate_const< _Tp > & | __pt,
|  | const _Up & | __u )
| constexpr

Definition at line 375 of file propagate_const.

## ◆ operator<=() [3/3]

template<typename _Tp, typename _Up>

bool std::experimental::fundamentals_v2::operator<= | ( | const propagate_const< _Tp > & | __pt,
|  | const propagate_const< _Up > & | __pu )
| constexpr

Definition at line 331 of file propagate_const.

## ◆ operator==() [1/5]

template<typename _Tp, typename _Up>

bool std::experimental::fundamentals_v2::operator== | ( | const _Tp & | __t,
|  | const propagate_const< _Up > & | __pu )
| constexpr

Definition at line 390 of file propagate_const.

## ◆ operator==() [2/5]

template<typename _Tp, typename _Up>

bool std::experimental::fundamentals_v2::operator== | ( | const propagate_const< _Tp > & | __pt,
|  | const _Up & | __u )
| constexpr

Definition at line 348 of file propagate_const.

## ◆ operator==() [3/5]

template<typename _Tp, typename _Up>

bool std::experimental::fundamentals_v2::operator== | ( | const propagate_const< _Tp > & | __pt,
|  | const propagate_const< _Up > & | __pu )
| constexpr

Definition at line 300 of file propagate_const.

## ◆ operator==() [4/5]

template<typename _Tp>

bool std::experimental::fundamentals_v2::operator== | ( | const propagate_const< _Tp > & | __pt,
|  | nullptr_t | )
| constexpr

Definition at line 273 of file propagate_const.

## ◆ operator==() [5/5]

template<typename _Tp>

bool std::experimental::fundamentals_v2::operator== | ( | nullptr_t | ,
|  | const propagate_const< _Tp > & | __pu )
| constexpr

Definition at line 280 of file propagate_const.

## ◆ operator>() [1/3]

template<typename _Tp, typename _Up>

bool std::experimental::fundamentals_v2::operator> | ( | const _Tp & | __t,
|  | const propagate_const< _Up > & | __pu )
| constexpr

Definition at line 411 of file propagate_const.

## ◆ operator>() [2/3]

template<typename _Tp, typename _Up>

bool std::experimental::fundamentals_v2::operator> | ( | const propagate_const< _Tp > & | __pt,
|  | const _Up & | __u )
| constexpr

Definition at line 369 of file propagate_const.

## ◆ operator>() [3/3]

template<typename _Tp, typename _Up>

bool std::experimental::fundamentals_v2::operator> | ( | const propagate_const< _Tp > & | __pt,
|  | const propagate_const< _Up > & | __pu )
| constexpr

Definition at line 324 of file propagate_const.

## ◆ operator>=() [1/3]

template<typename _Tp, typename _Up>

bool std::experimental::fundamentals_v2::operator>= | ( | const _Tp & | __t,
|  | const propagate_const< _Up > & | __pu )
| constexpr

Definition at line 425 of file propagate_const.

## ◆ operator>=() [2/3]

template<typename _Tp, typename _Up>

bool std::experimental::fundamentals_v2::operator>= | ( | const propagate_const< _Tp > & | __pt,
|  | const _Up & | __u )
| constexpr

Definition at line 383 of file propagate_const.

## ◆ operator>=() [3/3]

template<typename _Tp, typename _Up>

bool std::experimental::fundamentals_v2::operator>= | ( | const propagate_const< _Tp > & | __pt,
|  | const propagate_const< _Up > & | __pu )
| constexpr

Definition at line 340 of file propagate_const.

## ◆ swap()

template<typename _Tp>

enable_if_t< __is_swappable< _Tp >::value, void > std::experimental::fundamentals_v2::swap | ( | propagate_const< _Tp > & | __pt,
|  | propagate_const< _Tp > & | __pt2 )
| constexprnoexcept

Definition at line 435 of file propagate_const.