|  | 
|  | CsSharedArrayPointer (const CsSharedArrayPointer< element_type > &other) | 
|  | 
|  | CsSharedArrayPointer (const CsSharedArrayPointer< element_type[]> &other) | 
|  | 
| CsSharedArrayPointer & | operator= (const CsSharedArrayPointer< element_type > &other) | 
|  | 
| CsSharedArrayPointer & | operator= (const CsSharedArrayPointer< element_type[]> &other) | 
|  | 
|  | CsSharedArrayPointer (CsSharedArrayPointer< element_type > &&other) | 
|  | 
|  | CsSharedArrayPointer (CsSharedArrayPointer< element_type[]> &&other) | 
|  | 
| CsSharedArrayPointer & | operator= (CsSharedArrayPointer< element_type > &&other) | 
|  | 
| CsSharedArrayPointer & | operator= (CsSharedArrayPointer< element_type[]> &&other) | 
|  | 
| element_type & | operator* () const noexcept | 
|  | 
| element_type & | operator[] (std::size_t index) const noexcept | 
|  | 
| constexpr | CsSharedPointer () noexcept | 
|  | 
| constexpr | CsSharedPointer (std::nullptr_t) noexcept | 
|  | 
|  | CsSharedPointer (U *p) | 
|  | 
|  | CsSharedPointer (U *p, Deleter d) | 
|  | 
|  | CsSharedPointer (std::nullptr_t, Deleter d) | 
|  | 
|  | CsSharedPointer (U *p, Deleter d, Alloc a) | 
|  | 
|  | CsSharedPointer (std::nullptr_t, Deleter d, Alloc a) | 
|  | 
|  | CsSharedPointer (CsUniquePointer< U, Deleter > &&p) | 
|  | 
|  | CsSharedPointer (const std::shared_ptr< U > &p) noexcept | 
|  | 
|  | CsSharedPointer (std::shared_ptr< U > &&p) noexcept | 
|  | 
|  | CsSharedPointer (const CsSharedPointer< U > &p1, element_type *p2) noexcept | 
|  | 
|  | CsSharedPointer (CsSharedPointer< U > &&p1, element_type *p2) noexcept | 
|  | 
|  | CsSharedPointer (const CsSharedPointer &other) = default | 
|  | 
|  | CsSharedPointer (CsSharedPointer &&other) = default | 
|  | 
|  | CsSharedPointer (const CsSharedPointer< U > &p) noexcept | 
|  | 
|  | CsSharedPointer (CsSharedPointer< U > &&p) noexcept | 
|  | 
|  | CsSharedPointer (const CsWeakPointer< U > &p) | 
|  | 
| void | clear () noexcept | 
|  | 
| pointer | data () const noexcept | 
|  | 
| pointer | get () const noexcept | 
|  | 
| bool | is_null () const noexcept | 
|  | 
|  | operator bool () const noexcept | 
|  | 
|  | operator std::shared_ptr< U > () const &noexcept | 
|  | 
|  | operator std::shared_ptr< U > () &&noexcept | 
|  | 
| bool | operator! () const noexcept | 
|  | 
| element_type & | operator* () const noexcept | 
|  | 
| pointer | operator-> () const noexcept | 
|  | 
| CsSharedPointer & | operator= (const CsSharedPointer &other) = default | 
|  | 
| CsSharedPointer & | operator= (CsSharedPointer &&other) = default | 
|  | 
| CsSharedPointer & | operator= (const CsSharedPointer< U > &p) noexcept | 
|  | 
| CsSharedPointer & | operator= (CsSharedPointer< U > &&p) noexcept | 
|  | 
| CsSharedPointer & | operator= (const CsWeakPointer< U > &p) | 
|  | 
| bool | owner_before (const CsSharedPointer< U > &p) const noexcept | 
|  | 
| bool | owner_before (const CsWeakPointer< U > &p) const noexcept | 
|  | 
| void | reset () noexcept | 
|  | 
| void | reset (U *p) | 
|  | 
| void | reset (U *p, Deleter d) | 
|  | 
| void | reset (U *p, Deleter d, Alloc a) | 
|  | 
| void | swap (CsSharedPointer &other) noexcept | 
|  | 
| CsWeakPointer< cs_add_missing_extent_t< T > > | toWeakRef () const | 
|  | 
| bool | unique () const noexcept | 
|  | 
| long | use_count () const noexcept | 
|  | 
|  | ~CsSharedPointer () = default | 
|  | 
|  | 
| static CsSharedPointer< cs_add_missing_extent_t< T > > | create (Args &&...args) | 
|  | 
| CsSharedPointer< cs_add_missing_extent_t< T > > | const_pointer_cast (const CsSharedPointer< U > &ptr) | 
|  | 
| CsSharedPointer< cs_add_missing_extent_t< T > > | const_pointer_cast (CsSharedPointer< U > &&ptr) | 
|  | 
| CsSharedPointer< cs_add_missing_extent_t< T > > | dynamic_pointer_cast (const CsSharedPointer< U > &ptr) | 
|  | 
| CsSharedPointer< cs_add_missing_extent_t< T > > | dynamic_pointer_cast (CsSharedPointer< U > &&ptr) | 
|  | 
| CsSharedPointer< cs_add_missing_extent_t< T > > | make_shared (Args &&...args) | 
|  | 
| bool | operator!= (const CsSharedPointer< T1 > &ptr1, const CsSharedPointer< T2 > &ptr2) | 
|  | 
| bool | operator!= (const CsSharedPointer< T1 > &ptr1, const T2 *ptr2) | 
|  | 
| bool | operator!= (const T1 *ptr1, const CsSharedPointer< T2 > &ptr2) | 
|  | 
| bool | operator!= (const CsSharedPointer< cs_add_missing_extent_t< T > > &ptr1, std::nullptr_t) noexcept | 
|  | 
| bool | operator!= (std::nullptr_t, const CsSharedPointer< cs_add_missing_extent_t< T > > &ptr2) noexcept | 
|  | 
| bool | operator< (const CsSharedPointer< T1 > &ptr1, const CsSharedPointer< T2 > ptr2) | 
|  | 
| bool | operator<= (const CsSharedPointer< T1 > &ptr1, const CsSharedPointer< T2 > ptr2) | 
|  | 
| bool | operator== (const CsSharedPointer< T1 > &ptr1, const CsSharedPointer< T2 > &ptr2) | 
|  | 
| bool | operator== (const CsSharedPointer< T1 > &ptr1, const T2 *ptr2) | 
|  | 
| bool | operator== (const T1 *ptr1, const CsSharedPointer< T2 > &ptr2) | 
|  | 
| bool | operator== (const CsSharedPointer< cs_add_missing_extent_t< T > > &ptr1, std::nullptr_t) noexcept | 
|  | 
| bool | operator== (std::nullptr_t, const CsSharedPointer< cs_add_missing_extent_t< T > > &ptr2) noexcept | 
|  | 
| bool | operator> (const CsSharedPointer< T1 > &ptr1, const CsSharedPointer< T2 > ptr2) | 
|  | 
| bool | operator>= (const CsSharedPointer< T1 > &ptr1, const CsSharedPointer< T2 > ptr2) | 
|  | 
| CsSharedPointer< cs_add_missing_extent_t< T > > | static_pointer_cast (const CsSharedPointer< U > &ptr) | 
|  | 
| CsSharedPointer< cs_add_missing_extent_t< T > > | static_pointer_cast (CsSharedPointer< U > &&ptr) | 
|  | 
| void | swap (CsSharedPointer< cs_add_missing_extent_t< T > > &ptr1, CsSharedPointer< cs_add_missing_extent_t< T > > &ptr2) noexcept | 
|  | 
template<typename T>
class CsPointer::CsSharedArrayPointer< T >
The CsSharedArrayPointer class stores a shared pointer to a dynamically allocated array of objects. The array will be deleted when the last CsSharedArrayPointer pointing to the array is destroyed or reset.