| 
| void  | gc_collect () | 
|   | 
| template<class T , class U >  | 
| bool  | operator== (const gc_ptr< T > &lhs, const gc_ptr< U > &rhs) noexcept | 
|   | 
| template<class T >  | 
| bool  | operator== (const gc_ptr< T > &lhs, nullptr_t n) noexcept | 
|   | 
| template<class T >  | 
| bool  | operator== (nullptr_t n, const gc_ptr< T > &rhs) noexcept | 
|   | 
| template<class T , class U >  | 
| bool  | operator!= (const gc_ptr< T > &lhs, const gc_ptr< U > &rhs) noexcept | 
|   | 
| template<class T >  | 
| bool  | operator!= (const gc_ptr< T > &lhs, nullptr_t n) noexcept | 
|   | 
| template<class T >  | 
| bool  | operator!= (nullptr_t n, const gc_ptr< T > &rhs) noexcept | 
|   | 
| template<class T , class U >  | 
| bool  | operator< (const gc_ptr< T > &lhs, const gc_ptr< U > &rhs) noexcept | 
|   | 
| template<class T >  | 
| bool  | operator< (const gc_ptr< T > &lhs, nullptr_t n) noexcept | 
|   | 
| template<class T >  | 
| bool  | operator< (nullptr_t n, const gc_ptr< T > &rhs) noexcept | 
|   | 
| template<class T >  | 
| bool  | operator<= (const gc_ptr< T > &lhs, const gc_ptr< T > &rhs) noexcept | 
|   | 
| template<class T >  | 
| bool  | operator<= (const gc_ptr< T > &lhs, nullptr_t n) noexcept | 
|   | 
| template<class T >  | 
| bool  | operator<= (nullptr_t n, const gc_ptr< T > &rhs) noexcept | 
|   | 
| template<class T >  | 
| bool  | operator> (const gc_ptr< T > &lhs, const gc_ptr< T > &rhs) noexcept | 
|   | 
| template<class T >  | 
| bool  | operator> (const gc_ptr< T > &lhs, nullptr_t n) noexcept | 
|   | 
| template<class T >  | 
| bool  | operator> (nullptr_t n, const gc_ptr< T > &rhs) noexcept | 
|   | 
| template<class T >  | 
| bool  | operator>= (const gc_ptr< T > &lhs, const gc_ptr< T > &rhs) noexcept | 
|   | 
| template<class T >  | 
| bool  | operator>= (const gc_ptr< T > &lhs, nullptr_t n) noexcept | 
|   | 
| template<class T >  | 
| bool  | operator>= (nullptr_t n, const gc_ptr< T > &rhs) noexcept | 
|   | 
| template<class T , class U >  | 
| gc_ptr< T >  | operator+ (const gc_ptr< T > &a, const U &b) noexcept | 
|   | 
| template<class T , class U >  | 
| gc_ptr< T >  | operator+ (const U &a, const gc_ptr< T > &b) noexcept | 
|   | 
| template<class T , class U >  | 
| gc_ptr< T >  | operator- (const gc_ptr< T > &a, const U &b) noexcept | 
|   | 
| template<class T >  | 
| auto  | operator- (const gc_ptr< T > &a, const gc_ptr< T > &b) noexcept-> decltype(a.get()-b.get()) | 
|   | 
| template<class T , class U >  | 
| gc_ptr< T >  | static_pointer_cast (const gc_ptr< U > &p) noexcept | 
|   | 
| template<class T , class U >  | 
| gc_ptr< T >  | dynamic_pointer_cast (const gc_ptr< U > &p) noexcept | 
|   | 
| template<class T , class U >  | 
| gc_ptr< T >  | const_pointer_cast (const gc_ptr< U > &p) noexcept | 
|   | 
| template<class T , class U >  | 
| gc_ptr< T >  | reinterpret_pointer_cast (const gc_ptr< U > &p) noexcept | 
|   | 
| template<class T , class U >  | 
| gc_ptr< T >  | pointer_cast (const gc_ptr< U > &p) noexcept | 
|   |