Pointer Abstractions
Utilities » Memory
Collaboration diagram for Pointer Abstractions:

## Classes

struct | std::default_delete< _Tp >
struct | std::default_delete< _Tp[]>
class | std::enable_shared_from_this< _Tp >
struct | std::hash< shared_ptr< _Tp > >
struct | std::hash< unique_ptr< _Tp, _Dp > >
struct | std::owner_less< _Tp >
struct | std::owner_less< shared_ptr< _Tp > >
struct | std::owner_less< void >
struct | std::owner_less< weak_ptr< _Tp > >
struct | std::pointer_traits< _Ptr >
struct | std::pointer_traits< _Tp * >
class | std::shared_ptr< _Tp >
class | std::unique_ptr< _Tp, _Dp >
class | std::unique_ptr< _Tp[], _Dp >
class | std::weak_ptr< _Tp >

## Functions

template<typename _Del , typename _Tp , _Lock_policy _Lp>
_Del * | std::get_deleter (const __shared_ptr< _Tp, _Lp > &__p) noexcept
template<typename _Del , typename _Tp >
_Del * | get_deleter (const shared_ptr< _Tp > &__p) noexcept
template<typename _Ch , typename _Tr , typename _Tp , _Lock_policy _Lp>
std::basic_ostream< _Ch, _Tr > & | operator<< (std::basic_ostream< _Ch, _Tr > &__os, const __shared_ptr< _Tp, _Lp > &__p)
template<typename _Tp >
void | swap (weak_ptr< _Tp > &__a, weak_ptr< _Tp > &__b) noexcept
template<typename _Tp , typename _Up >
bool | operator== (const shared_ptr< _Tp > &__a, const shared_ptr< _Up > &__b) noexcept
template<typename _Tp >
bool | operator== (const shared_ptr< _Tp > &__a, nullptr_t) noexcept
template<typename _Tp >
bool | operator== (nullptr_t, const shared_ptr< _Tp > &__a) noexcept
template<typename _Tp , typename _Up >
bool | operator!= (const shared_ptr< _Tp > &__a, const shared_ptr< _Up > &__b) noexcept
template<typename _Tp >
bool | operator!= (const shared_ptr< _Tp > &__a, nullptr_t) noexcept
template<typename _Tp >
bool | operator!= (nullptr_t, const shared_ptr< _Tp > &__a) noexcept
template<typename _Tp , typename _Up >
bool | operator< (const shared_ptr< _Tp > &__a, const shared_ptr< _Up > &__b) noexcept
template<typename _Tp >
bool | operator< (const shared_ptr< _Tp > &__a, nullptr_t) noexcept
template<typename _Tp >
bool | operator< (nullptr_t, const shared_ptr< _Tp > &__a) noexcept
template<typename _Tp , typename _Up >
bool | operator<= (const shared_ptr< _Tp > &__a, const shared_ptr< _Up > &__b) noexcept
template<typename _Tp >
bool | operator<= (const shared_ptr< _Tp > &__a, nullptr_t) noexcept
template<typename _Tp >
bool | operator<= (nullptr_t, const shared_ptr< _Tp > &__a) noexcept
template<typename _Tp , typename _Up >
bool | operator> (const shared_ptr< _Tp > &__a, const shared_ptr< _Up > &__b) noexcept
template<typename _Tp >
bool | operator> (const shared_ptr< _Tp > &__a, nullptr_t) noexcept
template<typename _Tp >
bool | operator> (nullptr_t, const shared_ptr< _Tp > &__a) noexcept
template<typename _Tp , typename _Up >
bool | operator>= (const shared_ptr< _Tp > &__a, const shared_ptr< _Up > &__b) noexcept
template<typename _Tp >
bool | operator>= (const shared_ptr< _Tp > &__a, nullptr_t) noexcept
template<typename _Tp >
bool | operator>= (nullptr_t, const shared_ptr< _Tp > &__a) noexcept
template<typename _Tp >
void | swap (shared_ptr< _Tp > &__a, shared_ptr< _Tp > &__b) noexcept
template<typename _Tp , typename _Up >
shared_ptr< _Tp > | static_pointer_cast (const shared_ptr< _Up > &__r) noexcept
template<typename _Tp , typename _Up >
shared_ptr< _Tp > | const_pointer_cast (const shared_ptr< _Up > &__r) noexcept
template<typename _Tp , typename _Up >
shared_ptr< _Tp > | dynamic_pointer_cast (const shared_ptr< _Up > &__r) noexcept
template<typename _Tp , typename _Up >
shared_ptr< _Tp > | reinterpret_pointer_cast (const shared_ptr< _Up > &__r) noexcept
template<typename _Tp , typename _Alloc , typename... _Args>
shared_ptr< _Tp > | allocate_shared (const _Alloc &__a, _Args &&... __args)
template<typename _Tp , typename... _Args>
shared_ptr< _Tp > | make_shared (_Args &&... __args)
template<typename _Tp , _Lock_policy _Lp>
bool | atomic_is_lock_free (const __shared_ptr< _Tp, _Lp > *__p)
template<typename _Tp >
shared_ptr< _Tp > | atomic_load_explicit (const shared_ptr< _Tp > *__p, memory_order)
template<typename _Tp >
void | atomic_store_explicit (shared_ptr< _Tp > *__p, shared_ptr< _Tp > __r, memory_order)
template<typename _Tp >
shared_ptr< _Tp > | atomic_exchange_explicit (shared_ptr< _Tp > *__p, shared_ptr< _Tp > __r, memory_order)
template<typename _Tp >
bool | atomic_compare_exchange_strong_explicit (shared_ptr< _Tp > *__p, shared_ptr< _Tp > *__v, shared_ptr< _Tp > __w, memory_order, memory_order)
template<typename _Tp , typename _Dp >
enable_if< __is_swappable< _Dp >::value >::type | swap (unique_ptr< _Tp, _Dp > &__x, unique_ptr< _Tp, _Dp > &__y) noexcept
template<typename _Tp , typename _Dp , typename _Up , typename _Ep >
bool | operator== (const unique_ptr< _Tp, _Dp > &__x, const unique_ptr< _Up, _Ep > &__y)
template<typename _Tp , typename _Dp >
bool | operator== (const unique_ptr< _Tp, _Dp > &__x, nullptr_t) noexcept
template<typename _Tp , typename _Dp >
bool | operator== (nullptr_t, const unique_ptr< _Tp, _Dp > &__x) noexcept
template<typename _Tp , typename _Dp , typename _Up , typename _Ep >
bool | operator!= (const unique_ptr< _Tp, _Dp > &__x, const unique_ptr< _Up, _Ep > &__y)
template<typename _Tp , typename _Dp >
bool | operator!= (const unique_ptr< _Tp, _Dp > &__x, nullptr_t) noexcept
template<typename _Tp , typename _Dp >
bool | operator!= (nullptr_t, const unique_ptr< _Tp, _Dp > &__x) noexcept
template<typename _Tp , typename _Dp , typename _Up , typename _Ep >
bool | operator< (const unique_ptr< _Tp, _Dp > &__x, const unique_ptr< _Up, _Ep > &__y)
template<typename _Tp , typename _Dp >
bool | operator< (const unique_ptr< _Tp, _Dp > &__x, nullptr_t)
template<typename _Tp , typename _Dp >
bool | operator< (nullptr_t, const unique_ptr< _Tp, _Dp > &__x)
template<typename _Tp , typename _Dp , typename _Up , typename _Ep >
bool | operator<= (const unique_ptr< _Tp, _Dp > &__x, const unique_ptr< _Up, _Ep > &__y)
template<typename _Tp , typename _Dp >
bool | operator<= (const unique_ptr< _Tp, _Dp > &__x, nullptr_t)
template<typename _Tp , typename _Dp >
bool | operator<= (nullptr_t, const unique_ptr< _Tp, _Dp > &__x)
template<typename _Tp , typename _Dp , typename _Up , typename _Ep >
bool | operator> (const unique_ptr< _Tp, _Dp > &__x, const unique_ptr< _Up, _Ep > &__y)
template<typename _Tp , typename _Dp >
bool | operator> (const unique_ptr< _Tp, _Dp > &__x, nullptr_t)
template<typename _Tp , typename _Dp >
bool | operator> (nullptr_t, const unique_ptr< _Tp, _Dp > &__x)
template<typename _Tp , typename _Dp , typename _Up , typename _Ep >
bool | operator>= (const unique_ptr< _Tp, _Dp > &__x, const unique_ptr< _Up, _Ep > &__y)
template<typename _Tp , typename _Dp >
bool | operator>= (const unique_ptr< _Tp, _Dp > &__x, nullptr_t)
template<typename _Tp , typename _Dp >
bool | operator>= (nullptr_t, const unique_ptr< _Tp, _Dp > &__x)
template<typename _Tp , typename... _Args>
_MakeUniq< _Tp >::__single_object | make_unique (_Args &&... __args)
template<typename _Tp >
_MakeUniq< _Tp >::__array | make_unique (size_t __num)
template<typename _Tp , typename... _Args>
_MakeUniq< _Tp >::__invalid_type | make_unique (_Args &&...)=delete
#define | __cpp_lib_make_unique

## Detailed Description

Smart pointers, etc.

## Macro Definition Documentation

## __cpp_lib_make_unique

#define __cpp_lib_make_unique

std::make_unique for single objects

Definition at line 940 of file unique_ptr.h.

## Function Documentation

## allocate_shared()

template<typename _Tp , typename _Alloc , typename... _Args>

shared_ptr< _Tp > allocate_shared | ( | const _Alloc & | __a,
|  | _Args &&... | __args
| ) |  |

related

Create an object that is owned by a shared_ptr.

Parameters

  __a | An allocator.
  __args | Arguments for the _Tp object's constructor.

Returns
  A shared_ptr that owns the newly created object.

Exceptions

  An | exception thrown from _Alloc::allocate or from the constructor of _Tp.

A copy of __a will be used to allocate memory for the shared_ptr and the new object.

Definition at line 858 of file bits/shared_ptr.h.

## atomic_compare_exchange_strong_explicit()

template<typename _Tp >

bool atomic_compare_exchange_strong_explicit | ( | shared_ptr< _Tp > * | __p,
|  | shared_ptr< _Tp > * | __v,
|  | shared_ptr< _Tp > | __w,
|  | memory_order | ,
|  | memory_order |
| ) |  |

related

Atomic compare-and-swap for shared_ptr objects.

Parameters

  __p | A non-null pointer to a shared_ptr object.
  __v | A non-null pointer to a shared_ptr object.
  __w | A non-null pointer to a shared_ptr object.

Returns
  True if `*__p` was equivalent to `*__v`, false otherwise.

The memory order for failure shall not be `memory_order_release` or `memory_order_acq_rel`, or stronger than the memory order for success.

Definition at line 225 of file shared_ptr_atomic.h.

References std::move().

## atomic_exchange_explicit()

template<typename _Tp >

shared_ptr< _Tp > atomic_exchange_explicit | ( | shared_ptr< _Tp > * | __p,
|  | shared_ptr< _Tp > | __r,
|  | memory_order |
| ) |  |

related

Atomic exchange for shared_ptr objects.

Parameters

  __p | A non-null pointer to a shared_ptr object.
  __r | New value to store in `*__p`.

Returns
  The original value of `*__p`

Definition at line 176 of file shared_ptr_atomic.h.

## atomic_is_lock_free()

template<typename _Tp , _Lock_policy _Lp>

bool atomic_is_lock_free | ( | const __shared_ptr< _Tp, _Lp > * | __p | ) |

related

Report whether shared_ptr atomic operations are lock-free.

Parameters

  __p | A non-null pointer to a shared_ptr object.

Returns
  True if atomic access to `*__p` is lock-free, false otherwise.

Definition at line 76 of file shared_ptr_atomic.h.

## atomic_load_explicit()

template<typename _Tp >

shared_ptr< _Tp > atomic_load_explicit | ( | const shared_ptr< _Tp > * | __p,
|  | memory_order |
| ) |  |

related

Atomic load for shared_ptr objects.

Parameters

  __p | A non-null pointer to a shared_ptr object.

Returns
  `*__p`

The memory order shall not be `memory_order_release` or `memory_order_acq_rel`.

Definition at line 103 of file shared_ptr_atomic.h.

## atomic_store_explicit()

template<typename _Tp >

void atomic_store_explicit | ( | shared_ptr< _Tp > * | __p,
|  | shared_ptr< _Tp > | __r,
|  | memory_order |
| ) |  |

related

Atomic store for shared_ptr objects.

Parameters

  __p | A non-null pointer to a shared_ptr object.
  __r | The value to store.

The memory order shall not be `memory_order_acquire` or `memory_order_acq_rel`.

Definition at line 139 of file shared_ptr_atomic.h.

## const_pointer_cast()

template<typename _Tp , typename _Up >

shared_ptr< _Tp > const_pointer_cast | ( | const shared_ptr< _Up > & | __r | ) |

related

Convert type of `shared_ptr`, via `const_cast`

Definition at line 591 of file bits/shared_ptr.h.

## dynamic_pointer_cast()

template<typename _Tp , typename _Up >

shared_ptr< _Tp > dynamic_pointer_cast | ( | const shared_ptr< _Up > & | __r | ) |

related

Convert type of `shared_ptr`, via `dynamic_cast`

Definition at line 600 of file bits/shared_ptr.h.

## get_deleter() [1/2]

template<typename _Del , typename _Tp , _Lock_policy _Lp>

_Del * std::get_deleter | ( | const __shared_ptr< _Tp, _Lp > & | __p | ) |

inline noexcept

Definition at line 79 of file bits/shared_ptr.h.

## get_deleter() [2/2]

template<typename _Del , typename _Tp >

_Del * get_deleter | ( | const shared_ptr< _Tp > & | __p | ) |

related

20.7.2.2.10 shared_ptr get_deleter

If `__p` has a deleter of type `_Del`, return a pointer to it.

Definition at line 94 of file bits/shared_ptr.h.

## make_shared()

template<typename _Tp , typename... _Args>

shared_ptr< _Tp > make_shared | ( | _Args &&... | __args | ) |

related

Create an object that is owned by a shared_ptr.

Parameters

  __args | Arguments for the _Tp object's constructor.

Returns
  A shared_ptr that owns the newly created object.

Exceptions

  std::bad_alloc,or | an exception thrown from the constructor of _Tp.

Definition at line 875 of file bits/shared_ptr.h.

## make_unique() [1/3]

template<typename _Tp , typename... _Args>

_MakeUniq< _Tp >::__single_object make_unique | ( | _Args &&... | __args | ) |

related

std::make_unique for single objects

Definition at line 961 of file unique_ptr.h.

## make_unique() [2/3]

template<typename _Tp , typename... _Args>

_MakeUniq< _Tp >::__invalid_type make_unique | ( | _Args && | ... | ) |

related

Disable std::make_unique for arrays of known bound.

## make_unique() [3/3]

template<typename _Tp >

_MakeUniq< _Tp >::__array make_unique | ( | size_t | __num | ) |

related

std::make_unique for arrays of unknown bound

Definition at line 967 of file unique_ptr.h.

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

template<typename _Tp , typename _Up >

bool operator!= | ( | const shared_ptr< _Tp > & | __a,
|  | const shared_ptr< _Up > & | __b
| ) |  |

related

Inequality operator for shared_ptr objects, compares the stored pointers.

Definition at line 470 of file bits/shared_ptr.h.

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

template<typename _Tp >

bool operator!= | ( | const shared_ptr< _Tp > & | __a,
|  | nullptr_t |
| ) |  |

related

shared_ptr comparison with nullptr

Definition at line 476 of file bits/shared_ptr.h.

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

template<typename _Tp , typename _Dp , typename _Up , typename _Ep >

bool operator!= | ( | const unique_ptr< _Tp, _Dp > & | __x,
|  | const unique_ptr< _Up, _Ep > & | __y
| ) |  |

related

Inequality operator for unique_ptr objects, compares the owned pointers.

Definition at line 774 of file unique_ptr.h.

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

template<typename _Tp , typename _Dp >

bool operator!= | ( | const unique_ptr< _Tp, _Dp > & | __x,
|  | nullptr_t |
| ) |  |

related

unique_ptr comparison with nullptr

Definition at line 781 of file unique_ptr.h.

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

template<typename _Tp >

bool operator!= | ( | nullptr_t | ,
|  | const shared_ptr< _Tp > & | __a
| ) |  |

related

shared_ptr comparison with nullptr

Definition at line 482 of file bits/shared_ptr.h.

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

template<typename _Tp , typename _Dp >

bool operator!= | ( | nullptr_t | ,
|  | const unique_ptr< _Tp, _Dp > & | __x
| ) |  |

related

unique_ptr comparison with nullptr

Definition at line 787 of file unique_ptr.h.

## operator<() [1/6]

template<typename _Tp , typename _Up >

bool operator< | ( | const shared_ptr< _Tp > & | __a,
|  | const shared_ptr< _Up > & | __b
| ) |  |

related

Relational operator for shared_ptr objects, compares the stored pointers.

Definition at line 487 of file bits/shared_ptr.h.

## operator<() [2/6]

template<typename _Tp >

bool operator< | ( | const shared_ptr< _Tp > & | __a,
|  | nullptr_t |
| ) |  |

related

shared_ptr comparison with nullptr

Definition at line 498 of file bits/shared_ptr.h.

## operator<() [3/6]

template<typename _Tp , typename _Dp , typename _Up , typename _Ep >

bool operator< | ( | const unique_ptr< _Tp, _Dp > & | __x,
|  | const unique_ptr< _Up, _Ep > & | __y
| ) |  |

related

Relational operator for unique_ptr objects, compares the owned pointers.

Definition at line 794 of file unique_ptr.h.

## operator<() [4/6]

template<typename _Tp , typename _Dp >

bool operator< | ( | const unique_ptr< _Tp, _Dp > & | __x,
|  | nullptr_t |
| ) |  |

related

unique_ptr comparison with nullptr

Definition at line 806 of file unique_ptr.h.

## operator<() [5/6]

template<typename _Tp >

bool operator< | ( | nullptr_t | ,
|  | const shared_ptr< _Tp > & | __a
| ) |  |

related

shared_ptr comparison with nullptr

Definition at line 507 of file bits/shared_ptr.h.

## operator<() [6/6]

template<typename _Tp , typename _Dp >

bool operator< | ( | nullptr_t | ,
|  | const unique_ptr< _Tp, _Dp > & | __x
| ) |  |

related

unique_ptr comparison with nullptr

Definition at line 815 of file unique_ptr.h.

## operator<<()

template<typename _Ch , typename _Tr , typename _Tp , _Lock_policy _Lp>

std::basic_ostream< _Ch, _Tr > & operator<< | ( | std::basic_ostream< _Ch, _Tr > & | __os,
|  | const __shared_ptr< _Tp, _Lp > & | __p
| ) |  |

related

Write the stored pointer to an ostream.

Definition at line 1 of file bits/shared_ptr.h.

References std::operator<<().

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

template<typename _Tp , typename _Up >

bool operator<= | ( | const shared_ptr< _Tp > & | __a,
|  | const shared_ptr< _Up > & | __b
| ) |  |

related

Relational operator for shared_ptr objects, compares the stored pointers.

Definition at line 516 of file bits/shared_ptr.h.

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

template<typename _Tp >

bool operator<= | ( | const shared_ptr< _Tp > & | __a,
|  | nullptr_t |
| ) |  |

related

shared_ptr comparison with nullptr

Definition at line 522 of file bits/shared_ptr.h.

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

template<typename _Tp , typename _Dp , typename _Up , typename _Ep >

bool operator<= | ( | const unique_ptr< _Tp, _Dp > & | __x,
|  | const unique_ptr< _Up, _Ep > & | __y
| ) |  |

related

Relational operator for unique_ptr objects, compares the owned pointers.

Definition at line 825 of file unique_ptr.h.

## operator<=() [4/6]

template<typename _Tp , typename _Dp >

bool operator<= | ( | const unique_ptr< _Tp, _Dp > & | __x,
|  | nullptr_t |
| ) |  |

related

unique_ptr comparison with nullptr

Definition at line 832 of file unique_ptr.h.

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

template<typename _Tp >

bool operator<= | ( | nullptr_t | ,
|  | const shared_ptr< _Tp > & | __a
| ) |  |

related

shared_ptr comparison with nullptr

Definition at line 528 of file bits/shared_ptr.h.

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

template<typename _Tp , typename _Dp >

bool operator<= | ( | nullptr_t | ,
|  | const unique_ptr< _Tp, _Dp > & | __x
| ) |  |

related

unique_ptr comparison with nullptr

Definition at line 838 of file unique_ptr.h.

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

template<typename _Tp , typename _Up >

bool operator== | ( | const shared_ptr< _Tp > & | __a,
|  | const shared_ptr< _Up > & | __b
| ) |  |

related

Equality operator for shared_ptr objects, compares the stored pointers

Definition at line 437 of file bits/shared_ptr.h.

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

template<typename _Tp >

bool operator== | ( | const shared_ptr< _Tp > & | __a,
|  | nullptr_t |
| ) |  |

related

shared_ptr comparison with nullptr

Definition at line 443 of file bits/shared_ptr.h.

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

template<typename _Tp , typename _Dp , typename _Up , typename _Ep >

bool operator== | ( | const unique_ptr< _Tp, _Dp > & | __x,
|  | const unique_ptr< _Up, _Ep > & | __y
| ) |  |

related

Equality operator for unique_ptr objects, compares the owned pointers.

Definition at line 753 of file unique_ptr.h.

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

template<typename _Tp , typename _Dp >

bool operator== | ( | const unique_ptr< _Tp, _Dp > & | __x,
|  | nullptr_t |
| ) |  |

related

unique_ptr comparison with nullptr

Definition at line 760 of file unique_ptr.h.

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

template<typename _Tp >

bool operator== | ( | nullptr_t | ,
|  | const shared_ptr< _Tp > & | __a
| ) |  |

related

shared_ptr comparison with nullptr

Definition at line 464 of file bits/shared_ptr.h.

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

template<typename _Tp , typename _Dp >

bool operator== | ( | nullptr_t | ,
|  | const unique_ptr< _Tp, _Dp > & | __x
| ) |  |

related

unique_ptr comparison with nullptr

Definition at line 767 of file unique_ptr.h.

## operator>() [1/6]

template<typename _Tp , typename _Up >

bool operator> | ( | const shared_ptr< _Tp > & | __a,
|  | const shared_ptr< _Up > & | __b
| ) |  |

related

Relational operator for shared_ptr objects, compares the stored pointers.

Definition at line 535 of file bits/shared_ptr.h.

## operator>() [2/6]

template<typename _Tp >

bool operator> | ( | const shared_ptr< _Tp > & | __a,
|  | nullptr_t |
| ) |  |

related

shared_ptr comparison with nullptr

Definition at line 541 of file bits/shared_ptr.h.

## operator>() [3/6]

template<typename _Tp , typename _Dp , typename _Up , typename _Ep >

bool operator> | ( | const unique_ptr< _Tp, _Dp > & | __x,
|  | const unique_ptr< _Up, _Ep > & | __y
| ) |  |

related

Relational operator for unique_ptr objects, compares the owned pointers.

Definition at line 846 of file unique_ptr.h.

## operator>() [4/6]

template<typename _Tp , typename _Dp >

bool operator> | ( | const unique_ptr< _Tp, _Dp > & | __x,
|  | nullptr_t |
| ) |  |

related

unique_ptr comparison with nullptr

Definition at line 853 of file unique_ptr.h.

## operator>() [5/6]

template<typename _Tp >

bool operator> | ( | nullptr_t | ,
|  | const shared_ptr< _Tp > & | __a
| ) |  |

related

shared_ptr comparison with nullptr

Definition at line 547 of file bits/shared_ptr.h.

## operator>() [6/6]

template<typename _Tp , typename _Dp >

bool operator> | ( | nullptr_t | ,
|  | const unique_ptr< _Tp, _Dp > & | __x
| ) |  |

related

unique_ptr comparison with nullptr

Definition at line 862 of file unique_ptr.h.

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

template<typename _Tp , typename _Up >

bool operator>= | ( | const shared_ptr< _Tp > & | __a,
|  | const shared_ptr< _Up > & | __b
| ) |  |

related

Relational operator for shared_ptr objects, compares the stored pointers.

Definition at line 553 of file bits/shared_ptr.h.

## operator>=() [2/6]

template<typename _Tp >

bool operator>= | ( | const shared_ptr< _Tp > & | __a,
|  | nullptr_t |
| ) |  |

related

shared_ptr comparison with nullptr

Definition at line 559 of file bits/shared_ptr.h.

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

template<typename _Tp , typename _Dp , typename _Up , typename _Ep >

bool operator>= | ( | const unique_ptr< _Tp, _Dp > & | __x,
|  | const unique_ptr< _Up, _Ep > & | __y
| ) |  |

related

Relational operator for unique_ptr objects, compares the owned pointers.

Definition at line 872 of file unique_ptr.h.

## operator>=() [4/6]

template<typename _Tp , typename _Dp >

bool operator>= | ( | const unique_ptr< _Tp, _Dp > & | __x,
|  | nullptr_t |
| ) |  |

related

unique_ptr comparison with nullptr

Definition at line 879 of file unique_ptr.h.

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

template<typename _Tp >

bool operator>= | ( | nullptr_t | ,
|  | const shared_ptr< _Tp > & | __a
| ) |  |

related

shared_ptr comparison with nullptr

Definition at line 565 of file bits/shared_ptr.h.

## operator>=() [6/6]

template<typename _Tp , typename _Dp >

bool operator>= | ( | nullptr_t | ,
|  | const unique_ptr< _Tp, _Dp > & | __x
| ) |  |

related

unique_ptr comparison with nullptr

Definition at line 885 of file unique_ptr.h.

## reinterpret_pointer_cast()

template<typename _Tp , typename _Up >

shared_ptr< _Tp > reinterpret_pointer_cast | ( | const shared_ptr< _Up > & | __r | ) |

related

Convert type of `shared_ptr`, via `reinterpret_cast`

Definition at line 612 of file bits/shared_ptr.h.

## static_pointer_cast()

template<typename _Tp , typename _Up >

shared_ptr< _Tp > static_pointer_cast | ( | const shared_ptr< _Up > & | __r | ) |

related

Convert type of `shared_ptr`, via `static_cast`

Definition at line 582 of file bits/shared_ptr.h.

## swap() [1/3]

template<typename _Tp >

void swap | ( | shared_ptr< _Tp > & | __a,
|  | shared_ptr< _Tp > & | __b
| ) |  |

related

Swap overload for shared_ptr.

Definition at line 574 of file bits/shared_ptr.h.

## swap() [2/3]

template<typename _Tp , typename _Dp >

enable_if< __is_swappable< _Dp >::value >::type swap | ( | unique_ptr< _Tp, _Dp > & | __x,
|  | unique_ptr< _Tp, _Dp > & | __y
| ) |  |

related

Swap overload for unique_ptr

Definition at line 738 of file unique_ptr.h.

## swap() [3/3]

template<typename _Tp >

void swap | ( | weak_ptr< _Tp > & | __a,
|  | weak_ptr< _Tp > & | __b
| ) |  |

related

Swap overload for weak_ptr.

Definition at line 763 of file bits/shared_ptr.h.