libstdc++
experimental/bits/shared_ptr.h File Reference

Go to the source code of this file.

Classes

struct  std::experimental::fundamentals_v2::owner_less< shared_ptr< _Tp > >
 
struct  std::experimental::fundamentals_v2::owner_less< weak_ptr< _Tp > >
 
struct  std::hash< experimental::shared_ptr< _Tp > >
 

Namespaces

 std
 

Macros

#define __cpp_lib_experimental_shared_ptr_arrays
 

Typedefs

template<typename _Tp , _Lock_policy _Lp = __default_lock_policy>
using std::experimental::fundamentals_v2::__shared_ptr = std::__shared_ptr< __libfund_v1< _Tp >, _Lp >
 
template<typename _Tp , _Lock_policy _Lp = __default_lock_policy>
using std::experimental::fundamentals_v2::__weak_ptr = std::__weak_ptr< __libfund_v1< _Tp >, _Lp >
 

Functions

template<typename _Tp >
bool std::experimental::fundamentals_v2::atomic_compare_exchange_strong (shared_ptr< _Tp > *__p, shared_ptr< _Tp > *__v, shared_ptr< _Tp > __w)
 
template<typename _Tp >
bool std::experimental::fundamentals_v2::atomic_compare_exchange_strong_explicit (shared_ptr< _Tp > *__p, shared_ptr< _Tp > *__v, shared_ptr< _Tp > __w, memory_order __success, memory_order __failure)
 
template<typename _Tp >
bool std::experimental::fundamentals_v2::atomic_compare_exchange_weak (shared_ptr< _Tp > *__p, shared_ptr< _Tp > *__v, shared_ptr< _Tp > __w)
 
template<typename _Tp >
bool std::experimental::fundamentals_v2::atomic_compare_exchange_weak_explicit (shared_ptr< _Tp > *__p, shared_ptr< _Tp > *__v, shared_ptr< _Tp > __w, memory_order __success, memory_order __failure)
 
template<typename _Tp >
void std::experimental::fundamentals_v2::atomic_exchange (shared_ptr< _Tp > *__p, shared_ptr< _Tp > __r)
 
template<typename _Tp >
shared_ptr< _Tp > std::experimental::fundamentals_v2::atomic_exchange_explicit (const shared_ptr< _Tp > *__p, shared_ptr< _Tp > __r, memory_order __mo)
 
template<typename _Tp >
bool std::experimental::fundamentals_v2::atomic_is_lock_free (const shared_ptr< _Tp > *__p)
 
template<typename _Tp >
shared_ptr< _Tp > std::experimental::fundamentals_v2::atomic_load (const shared_ptr< _Tp > *__p)
 
template<typename _Tp >
shared_ptr< _Tp > std::experimental::fundamentals_v2::atomic_load_explicit (const shared_ptr< _Tp > *__p, memory_order __mo)
 
template<typename _Tp >
void std::experimental::fundamentals_v2::atomic_store (shared_ptr< _Tp > *__p, shared_ptr< _Tp > __r)
 
template<typename _Tp >
shared_ptr< _Tp > std::experimental::fundamentals_v2::atomic_store_explicit (const shared_ptr< _Tp > *__p, shared_ptr< _Tp > __r, memory_order __mo)
 
template<typename _Tp , typename _Tp1 >
shared_ptr< _Tp > std::experimental::fundamentals_v2::const_pointer_cast (const shared_ptr< _Tp1 > &__r) noexcept
 
template<typename _Tp , typename _Tp1 >
shared_ptr< _Tp > std::experimental::fundamentals_v2::dynamic_pointer_cast (const shared_ptr< _Tp1 > &__r) noexcept
 
template<typename _Del , typename _Tp , _Lock_policy _Lp>
_Del * std::experimental::fundamentals_v2::get_deleter (const __shared_ptr< _Tp, _Lp > &__p) noexcept
 
template<typename _Tp1 , typename _Tp2 >
bool std::experimental::fundamentals_v2::operator!= (const shared_ptr< _Tp1 > &__a, const shared_ptr< _Tp2 > &__b) noexcept
 
template<typename _Tp >
bool std::experimental::fundamentals_v2::operator!= (const shared_ptr< _Tp > &__a, nullptr_t) noexcept
 
template<typename _Tp >
bool std::experimental::fundamentals_v2::operator!= (nullptr_t, const shared_ptr< _Tp > &__a) noexcept
 
template<typename _Tp1 , typename _Tp2 >
bool std::experimental::fundamentals_v2::operator< (const shared_ptr< _Tp1 > &__a, const shared_ptr< _Tp2 > &__b) noexcept
 
template<typename _Tp >
bool std::experimental::fundamentals_v2::operator< (const shared_ptr< _Tp > &__a, nullptr_t) noexcept
 
template<typename _Tp >
bool std::experimental::fundamentals_v2::operator< (nullptr_t, const shared_ptr< _Tp > &__a) noexcept
 
template<typename _Ch , typename _Tr , typename _Tp , _Lock_policy _Lp>
std::basic_ostream< _Ch, _Tr > & std::experimental::fundamentals_v2::operator<< (std::basic_ostream< _Ch, _Tr > &__os, const __shared_ptr< _Tp, _Lp > &__p)
 
template<typename _Tp1 , typename _Tp2 >
bool std::experimental::fundamentals_v2::operator<= (const shared_ptr< _Tp1 > &__a, const shared_ptr< _Tp2 > &__b) noexcept
 
template<typename _Tp >
bool std::experimental::fundamentals_v2::operator<= (const shared_ptr< _Tp > &__a, nullptr_t) noexcept
 
template<typename _Tp >
bool std::experimental::fundamentals_v2::operator<= (nullptr_t, const shared_ptr< _Tp > &__a) noexcept
 
template<typename _Tp1 , typename _Tp2 >
bool std::experimental::fundamentals_v2::operator== (const shared_ptr< _Tp1 > &__a, const shared_ptr< _Tp2 > &__b) noexcept
 
template<typename _Tp >
bool std::experimental::fundamentals_v2::operator== (const shared_ptr< _Tp > &__a, nullptr_t) noexcept
 
template<typename _Tp >
bool std::experimental::fundamentals_v2::operator== (nullptr_t, const shared_ptr< _Tp > &__a) noexcept
 
template<typename _Tp1 , typename _Tp2 >
bool std::experimental::fundamentals_v2::operator> (const shared_ptr< _Tp1 > &__a, const shared_ptr< _Tp2 > &__b) noexcept
 
template<typename _Tp >
bool std::experimental::fundamentals_v2::operator> (const shared_ptr< _Tp > &__a, nullptr_t) noexcept
 
template<typename _Tp >
bool std::experimental::fundamentals_v2::operator> (nullptr_t, const shared_ptr< _Tp > &__a) noexcept
 
template<typename _Tp1 , typename _Tp2 >
bool std::experimental::fundamentals_v2::operator>= (const shared_ptr< _Tp1 > &__a, const shared_ptr< _Tp2 > &__b) noexcept
 
template<typename _Tp >
bool std::experimental::fundamentals_v2::operator>= (const shared_ptr< _Tp > &__a, nullptr_t) noexcept
 
template<typename _Tp >
bool std::experimental::fundamentals_v2::operator>= (nullptr_t, const shared_ptr< _Tp > &__a) noexcept
 
template<typename _Tp , typename _Tp1 >
shared_ptr< _Tp > std::experimental::fundamentals_v2::reinterpret_pointer_cast (const shared_ptr< _Tp1 > &__r) noexcept
 
template<typename _Tp , typename _Tp1 >
shared_ptr< _Tp > std::experimental::fundamentals_v2::static_pointer_cast (const shared_ptr< _Tp1 > &__r) noexcept
 
template<typename _Tp >
void std::experimental::fundamentals_v2::swap (shared_ptr< _Tp > &__a, shared_ptr< _Tp > &__b) noexcept
 
template<typename _Tp >
void std::experimental::fundamentals_v2::swap (weak_ptr< _Tp > &__a, weak_ptr< _Tp > &__b) noexcept
 

Variables

template<typename _Yp , typename _Tp >
constexpr bool std::__sp_compatible_v
 
template<typename _Tp , typename _Yp >
constexpr bool std::__sp_is_constructible_v
 

Detailed Description

This is an internal header file, included by other library headers. Do not attempt to use it directly. Instead, include <experimental/memory>.

Definition in file experimental/bits/shared_ptr.h.

Function Documentation

template<typename _Del , typename _Tp , _Lock_policy _Lp>
_Del* std::experimental::fundamentals_v2::get_deleter ( const __shared_ptr< _Tp, _Lp > &  __p)
inlinenoexcept

C++14 ยง20.8.2.2.10.

Definition at line 1133 of file experimental/bits/shared_ptr.h.