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 | ) |

constexpr noexcept

Definition at line 442 of file propagate_const.

## get_underlying() [2/2]

template<typename _Tp>

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

constexpr noexcept

Definition at line 449 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 472 of file propagate_const.

## operator _Tp *()

template<typename _Tp>

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

constexpr noexcept

Definition at line 461 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 466 of file propagate_const.

## operator const _Tp *()

template<typename _Tp>

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

constexpr noexcept

Definition at line 456 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 395 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 353 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 306 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 285 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 291 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 401 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 359 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 313 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 415 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 373 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 329 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 388 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 346 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 298 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 271 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 278 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 409 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 367 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 322 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 423 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 381 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 338 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 )

constexpr noexcept

Definition at line 433 of file propagate_const.