Krita Source Code Documentation
Loading...
Searching...
No Matches
std::experimental::fundamentals_v2::propagate_const< T > Class Template Reference

#include <propagate_const.h>

Classes

struct  is_propagate_const
 
struct  is_propagate_const< propagate_const< U > >
 

Public Types

using element_type = typename std::pointer_traits<T>::element_type
 

Public Member Functions

PROPAGATE_CONST_CONSTEXPR element_typeget ()
 
PROPAGATE_CONST_CONSTEXPR const element_typeget () const
 
PROPAGATE_CONST_CONSTEXPR operator bool () const
 
template<class T_ = T, class U = enable_if_t<is_convertible< const T_, const element_type*>::value>>
PROPAGATE_CONST_CONSTEXPR operator const element_type * () const
 
template<class T_ = T, class U = enable_if_t<is_convertible<T_, element_type*>::value>>
PROPAGATE_CONST_CONSTEXPR operator element_type * ()
 
PROPAGATE_CONST_CONSTEXPR element_typeoperator* ()
 
PROPAGATE_CONST_CONSTEXPR const element_typeoperator* () const
 
PROPAGATE_CONST_CONSTEXPR element_typeoperator-> ()
 
PROPAGATE_CONST_CONSTEXPR const element_typeoperator-> () const
 
propagate_constoperator= (const propagate_const &p)=delete
 
PROPAGATE_CONST_CONSTEXPR propagate_constoperator= (propagate_const &&p)=default
 
template<class U >
PROPAGATE_CONST_CONSTEXPR propagate_constoperator= (propagate_const< U > &&pu)
 
template<class U , class = enable_if_t<!is_propagate_const<decay_t<U>>::value>>
PROPAGATE_CONST_CONSTEXPR propagate_constoperator= (U &&u)
 
PROPAGATE_CONST_CONSTEXPR propagate_const ()=default
 
 propagate_const (const propagate_const &p)=delete
 
PROPAGATE_CONST_CONSTEXPR propagate_const (propagate_const &&p)=default
 
template<class U , enable_if_t<!is_convertible< U &&, T >::value &&is_constructible< T, U && >::value, bool > = true>
PROPAGATE_CONST_CONSTEXPR propagate_const (propagate_const< U > &&pu)
 
template<class U , enable_if_t< is_convertible< U &&, T >::value &&is_constructible< T, U && >::value, bool > = false>
PROPAGATE_CONST_CONSTEXPR propagate_const (propagate_const< U > &&pu)
 
template<class U , enable_if_t<!is_convertible< U &&, T >::value &&is_constructible< T, U && >::value &&!is_propagate_const< decay_t< U > >::value, bool > = true>
PROPAGATE_CONST_CONSTEXPR propagate_const (U &&u)
 
template<class U , enable_if_t< is_convertible< U &&, T >::value &&is_constructible< T, U && >::value &&!is_propagate_const< decay_t< U > >::value, bool > = false>
PROPAGATE_CONST_CONSTEXPR propagate_const (U &&u)
 
PROPAGATE_CONST_CONSTEXPR void swap (propagate_const &pt) noexcept(noexcept(swap(declval< T & >(), declval< T & >())))
 

Static Private Member Functions

template<class U >
static const element_typeget_pointer (const U &u)
 
template<class U >
static const element_typeget_pointer (const U *u)
 
template<class U >
static element_typeget_pointer (U &u)
 
template<class U >
static element_typeget_pointer (U *u)
 

Private Attributes

t_
 

Friends

template<class U >
PROPAGATE_CONST_CONSTEXPR bool operator!= (const propagate_const &pt, const propagate_const< U > &pu)
 
template<class U , class = enable_if_t<!is_propagate_const<decay_t<U>>::value>>
PROPAGATE_CONST_CONSTEXPR bool operator!= (const propagate_const &pt, const U &u)
 
PROPAGATE_CONST_CONSTEXPR bool operator!= (const propagate_const &pt, nullptr_t)
 
template<class U , class = enable_if_t<!is_propagate_const<decay_t<U>>::value>>
PROPAGATE_CONST_CONSTEXPR bool operator!= (const U &u, const propagate_const &pu)
 
PROPAGATE_CONST_CONSTEXPR bool operator!= (nullptr_t, const propagate_const &pu)
 
template<class U >
PROPAGATE_CONST_CONSTEXPR bool operator< (const propagate_const &pt, const propagate_const< U > &pu)
 
template<class U , class = enable_if_t<!is_propagate_const<decay_t<U>>::value>>
PROPAGATE_CONST_CONSTEXPR bool operator< (const propagate_const &pt, const U &u)
 
template<class U , class = enable_if_t<!is_propagate_const<decay_t<U>>::value>>
PROPAGATE_CONST_CONSTEXPR bool operator< (const U &u, const propagate_const &pu)
 
template<class U >
PROPAGATE_CONST_CONSTEXPR bool operator<= (const propagate_const &pt, const propagate_const< U > &pu)
 
template<class U , class = enable_if_t<!is_propagate_const<decay_t<U>>::value>>
PROPAGATE_CONST_CONSTEXPR bool operator<= (const propagate_const &pt, const U &u)
 
template<class U , class = enable_if_t<!is_propagate_const<decay_t<U>>::value>>
PROPAGATE_CONST_CONSTEXPR bool operator<= (const U &u, const propagate_const &pu)
 
template<class U >
PROPAGATE_CONST_CONSTEXPR bool operator== (const propagate_const &pt, const propagate_const< U > &pu)
 
template<class U , class = enable_if_t<!is_propagate_const<decay_t<U>>::value>>
PROPAGATE_CONST_CONSTEXPR bool operator== (const propagate_const &pt, const U &u)
 
PROPAGATE_CONST_CONSTEXPR bool operator== (const propagate_const &pt, nullptr_t)
 
template<class U , class = enable_if_t<!is_propagate_const<decay_t<U>>::value>>
PROPAGATE_CONST_CONSTEXPR bool operator== (const U &u, const propagate_const &pu)
 
PROPAGATE_CONST_CONSTEXPR bool operator== (nullptr_t, const propagate_const &pu)
 
template<class U >
PROPAGATE_CONST_CONSTEXPR bool operator> (const propagate_const &pt, const propagate_const< U > &pu)
 
template<class U , class = enable_if_t<!is_propagate_const<decay_t<U>>::value>>
PROPAGATE_CONST_CONSTEXPR bool operator> (const propagate_const &pt, const U &u)
 
template<class U , class = enable_if_t<!is_propagate_const<decay_t<U>>::value>>
PROPAGATE_CONST_CONSTEXPR bool operator> (const U &u, const propagate_const &pu)
 
template<class U >
PROPAGATE_CONST_CONSTEXPR bool operator>= (const propagate_const &pt, const propagate_const< U > &pu)
 
template<class U , class = enable_if_t<!is_propagate_const<decay_t<U>>::value>>
PROPAGATE_CONST_CONSTEXPR bool operator>= (const propagate_const &pt, const U &u)
 
template<class U , class = enable_if_t<!is_propagate_const<decay_t<U>>::value>>
PROPAGATE_CONST_CONSTEXPR bool operator>= (const U &u, const propagate_const &pu)
 
struct std::equal_to< propagate_const< T > >
 
struct std::greater< propagate_const< T > >
 
struct std::greater_equal< propagate_const< T > >
 
struct std::hash< propagate_const< T > >
 
struct std::less< propagate_const< T > >
 
struct std::less_equal< propagate_const< T > >
 
struct std::not_equal_to< propagate_const< T > >
 

Detailed Description

template<class T>
class std::experimental::fundamentals_v2::propagate_const< T >

Definition at line 47 of file propagate_const.h.

Member Typedef Documentation

◆ element_type

template<class T >
using std::experimental::fundamentals_v2::propagate_const< T >::element_type = typename std::pointer_traits<T>::element_type

Definition at line 49 of file propagate_const.h.

Constructor & Destructor Documentation

◆ propagate_const() [1/7]

template<class T >
PROPAGATE_CONST_CONSTEXPR std::experimental::fundamentals_v2::propagate_const< T >::propagate_const ( )
default

◆ propagate_const() [2/7]

template<class T >
std::experimental::fundamentals_v2::propagate_const< T >::propagate_const ( const propagate_const< T > & p)
delete

◆ propagate_const() [3/7]

template<class T >
PROPAGATE_CONST_CONSTEXPR std::experimental::fundamentals_v2::propagate_const< T >::propagate_const ( propagate_const< T > && p)
default

◆ propagate_const() [4/7]

template<class T >
template<class U , enable_if_t<!is_convertible< U &&, T >::value &&is_constructible< T, U && >::value, bool > = true>
PROPAGATE_CONST_CONSTEXPR std::experimental::fundamentals_v2::propagate_const< T >::propagate_const ( propagate_const< U > && pu)
inlineexplicit

Definition at line 110 of file propagate_const.h.

◆ propagate_const() [5/7]

template<class T >
template<class U , enable_if_t< is_convertible< U &&, T >::value &&is_constructible< T, U && >::value, bool > = false>
PROPAGATE_CONST_CONSTEXPR std::experimental::fundamentals_v2::propagate_const< T >::propagate_const ( propagate_const< U > && pu)
inline

Definition at line 116 of file propagate_const.h.

116: t_(std::move(pu.t_)) {}

◆ propagate_const() [6/7]

template<class T >
template<class U , enable_if_t<!is_convertible< U &&, T >::value &&is_constructible< T, U && >::value &&!is_propagate_const< decay_t< U > >::value, bool > = true>
PROPAGATE_CONST_CONSTEXPR std::experimental::fundamentals_v2::propagate_const< T >::propagate_const ( U && u)
inlineexplicit

Definition at line 122 of file propagate_const.h.

122: t_(std::forward<U>(u)) {}
qreal u

◆ propagate_const() [7/7]

template<class T >
template<class U , enable_if_t< is_convertible< U &&, T >::value &&is_constructible< T, U && >::value &&!is_propagate_const< decay_t< U > >::value, bool > = false>
PROPAGATE_CONST_CONSTEXPR std::experimental::fundamentals_v2::propagate_const< T >::propagate_const ( U && u)
inline

Definition at line 128 of file propagate_const.h.

128: t_(std::forward<U>(u)) {}

Member Function Documentation

◆ get() [1/2]

◆ get() [2/2]

◆ get_pointer() [1/4]

template<class T >
template<class U >
static const element_type * std::experimental::fundamentals_v2::propagate_const< T >::get_pointer ( const U & u)
inlinestaticprivate

Definition at line 68 of file propagate_const.h.

68 {
69 return get_pointer(u.get());
70 }

References std::experimental::fundamentals_v2::propagate_const< T >::get_pointer(), and u.

◆ get_pointer() [2/4]

template<class T >
template<class U >
static const element_type * std::experimental::fundamentals_v2::propagate_const< T >::get_pointer ( const U * u)
inlinestaticprivate

Definition at line 63 of file propagate_const.h.

63 {
64 return u;
65 }

References u.

◆ get_pointer() [3/4]

template<class T >
template<class U >
static element_type * std::experimental::fundamentals_v2::propagate_const< T >::get_pointer ( U & u)
inlinestaticprivate

Definition at line 58 of file propagate_const.h.

58 {
59 return get_pointer(u.get());
60 }

References std::experimental::fundamentals_v2::propagate_const< T >::get_pointer(), and u.

◆ get_pointer() [4/4]

template<class T >
template<class U >
static element_type * std::experimental::fundamentals_v2::propagate_const< T >::get_pointer ( U * u)
inlinestaticprivate

Definition at line 53 of file propagate_const.h.

53 {
54 return u;
55 }

References u.

◆ operator bool()

template<class T >
PROPAGATE_CONST_CONSTEXPR std::experimental::fundamentals_v2::propagate_const< T >::operator bool ( ) const
inlineexplicit

Definition at line 150 of file propagate_const.h.

150{ return get() != nullptr; }
PROPAGATE_CONST_CONSTEXPR const element_type * get() const

References std::experimental::fundamentals_v2::propagate_const< T >::get().

◆ operator const element_type *()

template<class T >
template<class T_ = T, class U = enable_if_t<is_convertible< const T_, const element_type*>::value>>
PROPAGATE_CONST_CONSTEXPR std::experimental::fundamentals_v2::propagate_const< T >::operator const element_type * ( ) const
inline

Definition at line 155 of file propagate_const.h.

156 {
157 return get();
158 }

References std::experimental::fundamentals_v2::propagate_const< T >::get().

◆ operator element_type *()

template<class T >
template<class T_ = T, class U = enable_if_t<is_convertible<T_, element_type*>::value>>
PROPAGATE_CONST_CONSTEXPR std::experimental::fundamentals_v2::propagate_const< T >::operator element_type * ( )
inline

Definition at line 169 of file propagate_const.h.

170 {
171 return get();
172 }

References std::experimental::fundamentals_v2::propagate_const< T >::get().

◆ operator*() [1/2]

◆ operator*() [2/2]

template<class T >
PROPAGATE_CONST_CONSTEXPR const element_type & std::experimental::fundamentals_v2::propagate_const< T >::operator* ( ) const
inline

Definition at line 160 of file propagate_const.h.

160{ return *get(); }

References std::experimental::fundamentals_v2::propagate_const< T >::get().

◆ operator->() [1/2]

◆ operator->() [2/2]

template<class T >
PROPAGATE_CONST_CONSTEXPR const element_type * std::experimental::fundamentals_v2::propagate_const< T >::operator-> ( ) const
inline

Definition at line 151 of file propagate_const.h.

151{ return get(); }

References std::experimental::fundamentals_v2::propagate_const< T >::get().

◆ operator=() [1/4]

template<class T >
propagate_const & std::experimental::fundamentals_v2::propagate_const< T >::operator= ( const propagate_const< T > & p)
delete

◆ operator=() [2/4]

◆ operator=() [3/4]

template<class T >
template<class U >
PROPAGATE_CONST_CONSTEXPR propagate_const & std::experimental::fundamentals_v2::propagate_const< T >::operator= ( propagate_const< U > && pu)
inline

Definition at line 137 of file propagate_const.h.

137 {
138 t_ = std::move(pu.t_);
139 return *this;
140 }

References std::experimental::fundamentals_v2::propagate_const< T >::t_.

◆ operator=() [4/4]

template<class T >
template<class U , class = enable_if_t<!is_propagate_const<decay_t<U>>::value>>
PROPAGATE_CONST_CONSTEXPR propagate_const & std::experimental::fundamentals_v2::propagate_const< T >::operator= ( U && u)
inline

Definition at line 144 of file propagate_const.h.

144 {
145 t_ = std::move(u);
146 return *this;
147 }

References std::experimental::fundamentals_v2::propagate_const< T >::t_, and u.

◆ swap()

Definition at line 179 of file propagate_const.h.

180 {
181 swap(t_, pt.t_);
182 }
PROPAGATE_CONST_CONSTEXPR void swap(propagate_const &pt) noexcept(noexcept(swap(declval< T & >(), declval< T & >())))

References std::experimental::fundamentals_v2::propagate_const< T >::swap(), and std::experimental::fundamentals_v2::propagate_const< T >::t_.

Friends And Related Symbol Documentation

◆ operator!= [1/5]

template<class T >
template<class U >
PROPAGATE_CONST_CONSTEXPR bool operator!= ( const propagate_const< T > & pt,
const propagate_const< U > & pu )
friend

Definition at line 219 of file propagate_const.h.

220 {
221 return pt.t_ != pu.t_;
222 }

◆ operator!= [2/5]

template<class T >
template<class U , class = enable_if_t<!is_propagate_const<decay_t<U>>::value>>
PROPAGATE_CONST_CONSTEXPR bool operator!= ( const propagate_const< T > & pt,
const U & u )
friend

Definition at line 256 of file propagate_const.h.

256 {
257 return pt.t_ != u;
258 }

◆ operator!= [3/5]

template<class T >
PROPAGATE_CONST_CONSTEXPR bool operator!= ( const propagate_const< T > & pt,
nullptr_t  )
friend

Definition at line 204 of file propagate_const.h.

204 {
205 return pt.t_ != nullptr;
206 }

◆ operator!= [4/5]

template<class T >
template<class U , class = enable_if_t<!is_propagate_const<decay_t<U>>::value>>
PROPAGATE_CONST_CONSTEXPR bool operator!= ( const U & u,
const propagate_const< T > & pu )
friend

Definition at line 292 of file propagate_const.h.

292 {
293 return u != pu.t_;
294 }

◆ operator!= [5/5]

template<class T >
PROPAGATE_CONST_CONSTEXPR bool operator!= ( nullptr_t ,
const propagate_const< T > & pu )
friend

Definition at line 208 of file propagate_const.h.

208 {
209 return nullptr != pu.t_;
210 }

◆ operator< [1/3]

template<class T >
template<class U >
PROPAGATE_CONST_CONSTEXPR bool operator< ( const propagate_const< T > & pt,
const propagate_const< U > & pu )
friend

Definition at line 225 of file propagate_const.h.

226 {
227 return pt.t_ < pu.t_;
228 }

◆ operator< [2/3]

template<class T >
template<class U , class = enable_if_t<!is_propagate_const<decay_t<U>>::value>>
PROPAGATE_CONST_CONSTEXPR bool operator< ( const propagate_const< T > & pt,
const U & u )
friend

Definition at line 262 of file propagate_const.h.

262 {
263 return pt.t_ < u;
264 }

◆ operator< [3/3]

template<class T >
template<class U , class = enable_if_t<!is_propagate_const<decay_t<U>>::value>>
PROPAGATE_CONST_CONSTEXPR bool operator< ( const U & u,
const propagate_const< T > & pu )
friend

Definition at line 298 of file propagate_const.h.

298 {
299 return u < pu.t_;
300 }

◆ operator<= [1/3]

template<class T >
template<class U >
PROPAGATE_CONST_CONSTEXPR bool operator<= ( const propagate_const< T > & pt,
const propagate_const< U > & pu )
friend

Definition at line 237 of file propagate_const.h.

238 {
239 return pt.t_ <= pu.t_;
240 }

◆ operator<= [2/3]

template<class T >
template<class U , class = enable_if_t<!is_propagate_const<decay_t<U>>::value>>
PROPAGATE_CONST_CONSTEXPR bool operator<= ( const propagate_const< T > & pt,
const U & u )
friend

Definition at line 274 of file propagate_const.h.

274 {
275 return pt.t_ <= u;
276 }

◆ operator<= [3/3]

template<class T >
template<class U , class = enable_if_t<!is_propagate_const<decay_t<U>>::value>>
PROPAGATE_CONST_CONSTEXPR bool operator<= ( const U & u,
const propagate_const< T > & pu )
friend

Definition at line 310 of file propagate_const.h.

310 {
311 return u <= pu.t_;
312 }

◆ operator== [1/5]

template<class T >
template<class U >
PROPAGATE_CONST_CONSTEXPR bool operator== ( const propagate_const< T > & pt,
const propagate_const< U > & pu )
friend

Definition at line 213 of file propagate_const.h.

214 {
215 return pt.t_ == pu.t_;
216 }

◆ operator== [2/5]

template<class T >
template<class U , class = enable_if_t<!is_propagate_const<decay_t<U>>::value>>
PROPAGATE_CONST_CONSTEXPR bool operator== ( const propagate_const< T > & pt,
const U & u )
friend

Definition at line 250 of file propagate_const.h.

250 {
251 return pt.t_ == u;
252 }

◆ operator== [3/5]

template<class T >
PROPAGATE_CONST_CONSTEXPR bool operator== ( const propagate_const< T > & pt,
nullptr_t  )
friend

Definition at line 196 of file propagate_const.h.

196 {
197 return pt.t_ == nullptr;
198 }

◆ operator== [4/5]

template<class T >
template<class U , class = enable_if_t<!is_propagate_const<decay_t<U>>::value>>
PROPAGATE_CONST_CONSTEXPR bool operator== ( const U & u,
const propagate_const< T > & pu )
friend

Definition at line 286 of file propagate_const.h.

286 {
287 return u == pu.t_;
288 }

◆ operator== [5/5]

template<class T >
PROPAGATE_CONST_CONSTEXPR bool operator== ( nullptr_t ,
const propagate_const< T > & pu )
friend

Definition at line 200 of file propagate_const.h.

200 {
201 return nullptr == pu.t_;
202 }

◆ operator> [1/3]

template<class T >
template<class U >
PROPAGATE_CONST_CONSTEXPR bool operator> ( const propagate_const< T > & pt,
const propagate_const< U > & pu )
friend

Definition at line 231 of file propagate_const.h.

232 {
233 return pt.t_ > pu.t_;
234 }

◆ operator> [2/3]

template<class T >
template<class U , class = enable_if_t<!is_propagate_const<decay_t<U>>::value>>
PROPAGATE_CONST_CONSTEXPR bool operator> ( const propagate_const< T > & pt,
const U & u )
friend

Definition at line 268 of file propagate_const.h.

268 {
269 return pt.t_ > u;
270 }

◆ operator> [3/3]

template<class T >
template<class U , class = enable_if_t<!is_propagate_const<decay_t<U>>::value>>
PROPAGATE_CONST_CONSTEXPR bool operator> ( const U & u,
const propagate_const< T > & pu )
friend

Definition at line 304 of file propagate_const.h.

304 {
305 return u > pu.t_;
306 }

◆ operator>= [1/3]

template<class T >
template<class U >
PROPAGATE_CONST_CONSTEXPR bool operator>= ( const propagate_const< T > & pt,
const propagate_const< U > & pu )
friend

Definition at line 243 of file propagate_const.h.

244 {
245 return pt.t_ >= pu.t_;
246 }

◆ operator>= [2/3]

template<class T >
template<class U , class = enable_if_t<!is_propagate_const<decay_t<U>>::value>>
PROPAGATE_CONST_CONSTEXPR bool operator>= ( const propagate_const< T > & pt,
const U & u )
friend

Definition at line 280 of file propagate_const.h.

280 {
281 return pt.t_ >= u;
282 }

◆ operator>= [3/3]

template<class T >
template<class U , class = enable_if_t<!is_propagate_const<decay_t<U>>::value>>
PROPAGATE_CONST_CONSTEXPR bool operator>= ( const U & u,
const propagate_const< T > & pu )
friend

Definition at line 316 of file propagate_const.h.

316 {
317 return u >= pu.t_;
318 }

◆ std::equal_to< propagate_const< T > >

template<class T >
friend struct std::equal_to< propagate_const< T > >
friend

Definition at line 185 of file propagate_const.h.

◆ std::greater< propagate_const< T > >

template<class T >
friend struct std::greater< propagate_const< T > >
friend

Definition at line 185 of file propagate_const.h.

◆ std::greater_equal< propagate_const< T > >

template<class T >
friend struct std::greater_equal< propagate_const< T > >
friend

Definition at line 185 of file propagate_const.h.

◆ std::hash< propagate_const< T > >

template<class T >
friend struct std::hash< propagate_const< T > >
friend

Definition at line 185 of file propagate_const.h.

◆ std::less< propagate_const< T > >

template<class T >
friend struct std::less< propagate_const< T > >
friend

Definition at line 185 of file propagate_const.h.

◆ std::less_equal< propagate_const< T > >

template<class T >
friend struct std::less_equal< propagate_const< T > >
friend

Definition at line 185 of file propagate_const.h.

◆ std::not_equal_to< propagate_const< T > >

template<class T >
friend struct std::not_equal_to< propagate_const< T > >
friend

Definition at line 185 of file propagate_const.h.

Member Data Documentation

◆ t_

template<class T >
T std::experimental::fundamentals_v2::propagate_const< T >::t_
private

Definition at line 185 of file propagate_const.h.


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