std::experimental::static_pointer_cast,std::experimental::dynamic_pointer_cast, (3) - Linux Manuals
std::experimental::static_pointer_cast,std::experimental::dynamic_pointer_cast,: std::experimental::static_pointer_cast,std::experimental::dynamic_pointer_cast,
Command to display std::experimental::static_pointer_cast,std::experimental::dynamic_pointer_cast,
manual in Linux: $ man 3 std::experimental::static_pointer_cast,std::experimental::dynamic_pointer_cast,
NAME
std::experimental::static_pointer_cast,std::experimental::dynamic_pointer_cast, - std::experimental::static_pointer_cast,std::experimental::dynamic_pointer_cast,
Synopsis
template< class T, class U > (library fundamentals
std::experimental::shared_ptr<T> static_pointer_cast( (1) TS)
const std::experimental::shared_ptr<U>& r ) noexcept;
template< class T, class U > (library fundamentals
std::experimental::shared_ptr<T> dynamic_pointer_cast( (2) TS)
const std::experimental::shared_ptr<U>& r ) noexcept;
template< class T, class U > (library fundamentals
std::experimental::shared_ptr<T> const_pointer_cast( const (3) TS)
std::experimental::shared_ptr<U>& r ) noexcept;
template< class T, class U > (library fundamentals
std::experimental::shared_ptr<T> reinterpret_pointer_cast( (4) TS)
const std::experimental::shared_ptr<U>& r ) noexcept;
Creates a new instance of std::experimental::shared_ptr whose stored pointer is
obtained from r's stored pointer using a cast expression. If r is empty, so is the
new shared_ptr (but its stored pointer is not necessarily null).
Otherwise, the new shared_ptr will share ownership with r, except that it is empty
if the dynamic_cast performed by dynamic_pointer_cast returns a null pointer.
Let Y be typename std::experimental::shared_ptr<T>::element_type, then the resulting
std::experimental::shared_ptr's stored pointer will be obtained by calling (in
respective order):
1) static_cast<Y*>(r.get()).
2) dynamic_cast<Y*>(r.get()) (If the result of the dynamic_cast is a null pointer
value, the returned shared_ptr will be empty).
3) const_cast<Y*>(r.get()).
4) reinterpret_cast<Y*>(r.get()).
The behavior of these functions is undefined unless the corresponding cast from U*
to T* is well formed:
1) The behavior is undefined unless static_cast<T*>((U*)nullptr) is well formed.
2) The behavior is undefined unless dynamic_cast<T*>((U*)nullptr) is well formed.
3) The behavior is undefined unless const_cast<T*>((U*)nullptr) is well formed.
4) The behavior is undefined unless reinterpret_cast<T*>((U*)nullptr) is well
formed.
Parameters
r - The pointer to convert
Example
This section is incomplete
Reason: no example
See also
constructor constructs new shared_ptr
(public member function)
static_pointer_cast
dynamic_pointer_cast applies static_cast, dynamic_cast, const_cast, or
const_pointer_cast reinterpret_cast to the stored pointer
reinterpret_pointer_cast (function template)
(C++17)
Pages related to std::experimental::static_pointer_cast,std::experimental::dynamic_pointer_cast,
- std::experimental::static_pointer_cast,std::experimental::dynamic_pointer_cast,std::experimental::const_pointer_cast,std::experimental::reinterpret_pointer_cast (3) - std::experimental::static_pointer_cast,std::experimental::dynamic_pointer_cast,std::experimental::const_pointer_cast,std::experimental::reinterpret_pointer_cast
- std::experimental::sample (3) - std::experimental::sample
- std::experimental::search (3) - std::experimental::search
- std::experimental::shared_future (3) - std::experimental::shared_future
- std::experimental::shared_future<T>::is_ready (3) - std::experimental::shared_future<T>::is_ready
- std::experimental::shared_future<T>::operator= (3) - std::experimental::shared_future<T>::operator=
- std::experimental::shared_future<T>::shared_future (3) - std::experimental::shared_future<T>::shared_future
- std::experimental::shared_future<T>::then (3) - std::experimental::shared_future<T>::then
- std::experimental::shared_ptr (3) - std::experimental::shared_ptr
- std::experimental::shared_ptr<T>::get (3) - std::experimental::shared_ptr<T>::get
- std::experimental::shared_ptr<T>::operator*,std::experimental::shared_ptr<T>::operator-> (3) - std::experimental::shared_ptr<T>::operator*,std::experimental::shared_ptr<T>::operator->
- std::experimental::shared_ptr<T>::operator[] (3) - std::experimental::shared_ptr<T>::operator[]
- std::experimental::shared_ptr<T>::shared_ptr (3) - std::experimental::shared_ptr<T>::shared_ptr
- std::experimental::shuffle (3) - std::experimental::shuffle
- std::experimental::simd (3) - std::experimental::simd
- std::experimental::simd_abi::compatible (3) - std::experimental::simd_abi::compatible
- std::experimental::simd_abi::fixed_size (3) - std::experimental::simd_abi::fixed_size
- std::experimental::simd_abi::max_fixed_size (3) - std::experimental::simd_abi::max_fixed_size
- std::experimental::simd_abi::native (3) - std::experimental::simd_abi::native
- std::experimental::simd_abi::scalar (3) - std::experimental::simd_abi::scalar
- std::experimental::simd_cast,std::experimental::static_simd_cast (3) - std::experimental::simd_cast,std::experimental::static_simd_cast
- std::experimental::simd_mask (3) - std::experimental::simd_mask
- std::experimental::source_location (3) - std::experimental::source_location
- std::experimental::source_location::column (3) - std::experimental::source_location::column