Const-propagating wrapper
Experimental
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
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 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 >

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

constexpr noexcept

Definition at line 412 of file propagate_const.

## get_underlying() [2/2]

template<typename _Tp >

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

constexpr noexcept

Definition at line 419 of file propagate_const.

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

template<typename _Tp , typename _Up >

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

constexpr

Definition at line 367 of file propagate_const.

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

template<typename _Tp , typename _Up >

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

constexpr

Definition at line 325 of file propagate_const.

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

template<typename _Tp , typename _Up >

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

constexpr

Definition at line 278 of file propagate_const.

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

template<typename _Tp >

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

constexpr

Definition at line 257 of file propagate_const.

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

template<typename _Tp >

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

constexpr

Definition at line 263 of file propagate_const.

## operator<() [1/3]

template<typename _Tp , typename _Up >

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

constexpr

Definition at line 373 of file propagate_const.

## operator<() [2/3]

template<typename _Tp , typename _Up >

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

constexpr

Definition at line 331 of file propagate_const.

## operator<() [3/3]

template<typename _Tp , typename _Up >

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

constexpr

Definition at line 285 of file propagate_const.

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

template<typename _Tp , typename _Up >

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

constexpr

Definition at line 387 of file propagate_const.

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

template<typename _Tp , typename _Up >

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

constexpr

Definition at line 345 of file propagate_const.

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

template<typename _Tp , typename _Up >

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

constexpr

Definition at line 301 of file propagate_const.

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

template<typename _Tp , typename _Up >

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

constexpr

Definition at line 360 of file propagate_const.

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

template<typename _Tp , typename _Up >

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

constexpr

Definition at line 318 of file propagate_const.

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

template<typename _Tp , typename _Up >

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

constexpr

Definition at line 270 of file propagate_const.

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

template<typename _Tp >

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

constexpr

Definition at line 243 of file propagate_const.

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

template<typename _Tp >

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

constexpr

Definition at line 250 of file propagate_const.

## operator>() [1/3]

template<typename _Tp , typename _Up >

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

constexpr

Definition at line 381 of file propagate_const.

## operator>() [2/3]

template<typename _Tp , typename _Up >

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

constexpr

Definition at line 339 of file propagate_const.

## operator>() [3/3]

template<typename _Tp , typename _Up >

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

constexpr

Definition at line 294 of file propagate_const.

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

template<typename _Tp , typename _Up >

constexpr 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/3]

template<typename _Tp , typename _Up >

constexpr 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/3]

template<typename _Tp , typename _Up >

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

constexpr

Definition at line 310 of file propagate_const.

## swap()

template<typename _Tp >

constexpr void std::experimental::fundamentals_v2::swap | ( | propagate_const< _Tp > & | __pt,
|  | propagate_const< _Tp > & | __pt2
| ) |  |

constexpr noexcept

Definition at line 403 of file propagate_const.