libstdc++: std::experimental::fundamentals_v2::propagate_const< _Tp > Class Template Reference

libstdc++

std::experimental::fundamentals_v2::propagate_const< _Tp > Class Template Reference
Technical Specifications » Library Fundamentals TS » Const-propagating wrapper

`#include <propagate_const>`

## Public Types
using | 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
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::fundamentals_v2::propagate_const< _Tp >

Const-propagating wrapper.

Definition at line 109 of file propagate_const.

## Member Typedef Documentation

## ◆ element_type

template<typename _Tp>

using std::experimental::fundamentals_v2::propagate_const< _Tp >::element_type

Definition at line 112 of file propagate_const.

## Constructor & Destructor Documentation

## ◆ propagate_const() [1/4]

template<typename _Tp>
template<typename _Up, typename enable_if< __and_< is_constructible< _Tp, _Up && >, is_convertible< _Up &&, _Tp > >::value, bool >::type = true>

std::experimental::fundamentals_v2::propagate_const< _Tp >::propagate_const | ( | propagate_const< _Up > && | __pu | ) |
| inlineconstexpr

Definition at line 166 of file propagate_const.

## ◆ propagate_const() [2/4]

template<typename _Tp>
template<typename _Up, typename enable_if< __and_< is_constructible< _Tp, _Up && >, __not_< is_convertible< _Up &&, _Tp > > >::value, bool >::type = false>

std::experimental::fundamentals_v2::propagate_const< _Tp >::propagate_const | ( | propagate_const< _Up > && | __pu | ) |
| inlineexplicitconstexpr

Definition at line 174 of file propagate_const.

## ◆ propagate_const() [3/4]

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>

std::experimental::fundamentals_v2::propagate_const< _Tp >::propagate_const | ( | _Up && | __u | ) |
| inlineconstexpr

Definition at line 184 of file propagate_const.

## ◆ propagate_const() [4/4]

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>

std::experimental::fundamentals_v2::propagate_const< _Tp >::propagate_const | ( | _Up && | __u | ) |
| inlineexplicitconstexpr

Definition at line 194 of file propagate_const.

## Member Function Documentation

## ◆ get() [1/2]

template<typename _Tp>

element_type * std::experimental::fundamentals_v2::propagate_const< _Tp >::get | ( |  | ) |
| inlineconstexpr

Definition at line 253 of file propagate_const.

## ◆ get() [2/2]

template<typename _Tp>

const element_type * std::experimental::fundamentals_v2::propagate_const< _Tp >::get | ( |  | ) | const
| inlineconstexpr

Definition at line 237 of file propagate_const.

## ◆ operator bool()

template<typename _Tp>

std::experimental::fundamentals_v2::propagate_const< _Tp >::operator bool | ( |  | ) | const
| inlineexplicitconstexpr

Definition at line 222 of file propagate_const.

## ◆ operator*() [1/2]

template<typename _Tp>

element_type & std::experimental::fundamentals_v2::propagate_const< _Tp >::operator* | ( |  | ) |
| inlineconstexpr

Definition at line 248 of file propagate_const.

## ◆ operator*() [2/2]

template<typename _Tp>

const element_type & std::experimental::fundamentals_v2::propagate_const< _Tp >::operator* | ( |  | ) | const
| inlineconstexpr

Definition at line 232 of file propagate_const.

## ◆ operator->() [1/2]

template<typename _Tp>

element_type * std::experimental::fundamentals_v2::propagate_const< _Tp >::operator-> | ( |  | ) |
| inlineconstexpr

Definition at line 243 of file propagate_const.

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

template<typename _Tp>

const element_type * std::experimental::fundamentals_v2::propagate_const< _Tp >::operator-> | ( |  | ) | const
| inlineconstexpr

Definition at line 227 of file propagate_const.

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

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>

propagate_const & std::experimental::fundamentals_v2::propagate_const< _Tp >::operator= | ( | _Up && | __u | ) |
| inlineconstexpr

Definition at line 215 of file propagate_const.

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

template<typename _Tp>
template<typename _Up, typename = typename enable_if<is_convertible<_Up&&, _Tp>::value>::type>

propagate_const & std::experimental::fundamentals_v2::propagate_const< _Tp >::operator= | ( | propagate_const< _Up > && | __pu | ) |
| inlineconstexpr

Definition at line 204 of file propagate_const.

## ◆ swap()

template<typename _Tp>

void std::experimental::fundamentals_v2::propagate_const< _Tp >::swap | ( | propagate_const< _Tp > & | __pt | ) |
| inlineconstexprnoexcept

Definition at line 260 of file propagate_const.

The documentation for this class was generated from the following file:

- propagate_const