# _smart_ptr.h File Reference

`#include <cassert>`
`#include "_ref_count.h"`

Go to the source code of this file.

## Classes

struct | generic_deleter< T >
struct | array_deleter< T >
class | smart_ptr< T, D >
| Object Smart Pointer. More...
class | loose_smart_ptr< T >
| Loose Object Smart Pointer. More...

## Functions

template<class T, class U>
bool | operator== (const smart_ptr< T > &lhs, const smart_ptr< U > &rhs)
template<class T, class U>
bool | operator== (const loose_smart_ptr< T > &lhs, const loose_smart_ptr< U > &rhs)
template<class T, class U>
bool | operator== (const smart_ptr< T > &lhs, const loose_smart_ptr< U > &rhs)
template<class T, class U>
bool | operator== (const loose_smart_ptr< T > &lhs, const smart_ptr< U > &rhs)
template<class T>
bool | operator== (const smart_ptr< T > &lhs, const T *rhs)
template<class T>
bool | operator== (const loose_smart_ptr< T > &lhs, const T *rhs)
template<class T>
bool | operator== (const T *lhs, const smart_ptr< T > &rhs)
template<class T>
bool | operator== (const T *lhs, const loose_smart_ptr< T > &rhs)
template<class T, class U>
bool | operator!= (const smart_ptr< T > &lhs, const smart_ptr< U > &rhs)
template<class T, class U>
bool | operator!= (const loose_smart_ptr< T > &lhs, const loose_smart_ptr< U > &rhs)
template<class T, class U>
bool | operator!= (const smart_ptr< T > &lhs, const loose_smart_ptr< U > &rhs)
template<class T, class U>
bool | operator!= (const loose_smart_ptr< T > &lhs, const smart_ptr< U > &rhs)
template<class T>
bool | operator!= (const smart_ptr< T > &lhs, const T *rhs)
template<class T>
bool | operator!= (const loose_smart_ptr< T > &lhs, const T *rhs)
template<class T>
bool | operator!= (const T *lhs, const smart_ptr< T > &rhs)
template<class T>
bool | operator!= (const T *lhs, const loose_smart_ptr< T > &rhs)
template<class T, class U>
bool | operator< (const smart_ptr< T > &lhs, const smart_ptr< U > &rhs)
template<class T, class U>
bool | operator< (const loose_smart_ptr< T > &lhs, const loose_smart_ptr< U > &rhs)
template<class T, class U>
bool | operator< (const smart_ptr< T > &lhs, const loose_smart_ptr< U > &rhs)
template<class T, class U>
bool | operator< (const loose_smart_ptr< T > &lhs, const smart_ptr< U > &rhs)
template<class T>
bool | operator< (const smart_ptr< T > &lhs, const T *rhs)
template<class T>
bool | operator< (const loose_smart_ptr< T > &lhs, const T *rhs)
template<class T>
bool | operator< (const T *lhs, const smart_ptr< T > &rhs)
template<class T>
bool | operator< (const T *lhs, const loose_smart_ptr< T > &rhs)

## Function Documentation

template<class T, class U>

bool operator== | ( | const smart_ptr< T > & | lhs,
|  | const smart_ptr< U > & | rhs |
| ) |  |  | `[inline]`

Definition at line 283 of file _smart_ptr.h.

References smart_ptr< T, D >::get().

template<class T, class U>

bool operator== | ( | const loose_smart_ptr< T > & | lhs,
|  | const loose_smart_ptr< U > & | rhs |
| ) |  |  | `[inline]`

Definition at line 286 of file _smart_ptr.h.

References loose_smart_ptr< T >::get().

template<class T, class U>

bool operator== | ( | const smart_ptr< T > & | lhs,
|  | const loose_smart_ptr< U > & | rhs |
| ) |  |  | `[inline]`

Definition at line 289 of file _smart_ptr.h.

References loose_smart_ptr< T >::get(), and smart_ptr< T, D >::get().

template<class T, class U>

bool operator== | ( | const loose_smart_ptr< T > & | lhs,
|  | const smart_ptr< U > & | rhs |
| ) |  |  | `[inline]`

Definition at line 292 of file _smart_ptr.h.

References smart_ptr< T, D >::get(), and loose_smart_ptr< T >::get().

template<class T>

bool operator== | ( | const smart_ptr< T > & | lhs,
|  | const T * | rhs |
| ) |  |  | `[inline]`

Definition at line 295 of file _smart_ptr.h.

References smart_ptr< T, D >::get().

template<class T>

bool operator== | ( | const loose_smart_ptr< T > & | lhs,
|  | const T * | rhs |
| ) |  |  | `[inline]`

Definition at line 298 of file _smart_ptr.h.

References loose_smart_ptr< T >::get().

template<class T>

bool operator== | ( | const T * | lhs,
|  | const smart_ptr< T > & | rhs |
| ) |  |  | `[inline]`

Definition at line 301 of file _smart_ptr.h.

References smart_ptr< T, D >::get().

template<class T>

bool operator== | ( | const T * | lhs,
|  | const loose_smart_ptr< T > & | rhs |
| ) |  |  | `[inline]`

Definition at line 304 of file _smart_ptr.h.

References loose_smart_ptr< T >::get().

template<class T, class U>

bool operator!= | ( | const smart_ptr< T > & | lhs,
|  | const smart_ptr< U > & | rhs |
| ) |  |  | `[inline]`

Definition at line 309 of file _smart_ptr.h.

References smart_ptr< T, D >::get().

template<class T, class U>

bool operator!= | ( | const loose_smart_ptr< T > & | lhs,
|  | const loose_smart_ptr< U > & | rhs |
| ) |  |  | `[inline]`

Definition at line 312 of file _smart_ptr.h.

References loose_smart_ptr< T >::get().

template<class T, class U>

bool operator!= | ( | const smart_ptr< T > & | lhs,
|  | const loose_smart_ptr< U > & | rhs |
| ) |  |  | `[inline]`

Definition at line 315 of file _smart_ptr.h.

References loose_smart_ptr< T >::get(), and smart_ptr< T, D >::get().

template<class T, class U>

bool operator!= | ( | const loose_smart_ptr< T > & | lhs,
|  | const smart_ptr< U > & | rhs |
| ) |  |  | `[inline]`

Definition at line 318 of file _smart_ptr.h.

References smart_ptr< T, D >::get(), and loose_smart_ptr< T >::get().

template<class T>

bool operator!= | ( | const smart_ptr< T > & | lhs,
|  | const T * | rhs |
| ) |  |  | `[inline]`

Definition at line 321 of file _smart_ptr.h.

References smart_ptr< T, D >::get().

template<class T>

bool operator!= | ( | const loose_smart_ptr< T > & | lhs,
|  | const T * | rhs |
| ) |  |  | `[inline]`

Definition at line 324 of file _smart_ptr.h.

References loose_smart_ptr< T >::get().

template<class T>

bool operator!= | ( | const T * | lhs,
|  | const smart_ptr< T > & | rhs |
| ) |  |  | `[inline]`

Definition at line 327 of file _smart_ptr.h.

References smart_ptr< T, D >::get().

template<class T>

bool operator!= | ( | const T * | lhs,
|  | const loose_smart_ptr< T > & | rhs |
| ) |  |  | `[inline]`

Definition at line 330 of file _smart_ptr.h.

References loose_smart_ptr< T >::get().

template<class T, class U>

bool operator< | ( | const smart_ptr< T > & | lhs,
|  | const smart_ptr< U > & | rhs |
| ) |  |  | `[inline]`

Definition at line 335 of file _smart_ptr.h.

template<class T, class U>

bool operator< | ( | const loose_smart_ptr< T > & | lhs,
|  | const loose_smart_ptr< U > & | rhs |
| ) |  |  | `[inline]`

Definition at line 338 of file _smart_ptr.h.

template<class T, class U>

bool operator< | ( | const smart_ptr< T > & | lhs,
|  | const loose_smart_ptr< U > & | rhs |
| ) |  |  | `[inline]`

Definition at line 341 of file _smart_ptr.h.

template<class T, class U>

bool operator< | ( | const loose_smart_ptr< T > & | lhs,
|  | const smart_ptr< U > & | rhs |
| ) |  |  | `[inline]`

Definition at line 344 of file _smart_ptr.h.

template<class T>

bool operator< | ( | const smart_ptr< T > & | lhs,
|  | const T * | rhs |
| ) |  |  | `[inline]`

Definition at line 347 of file _smart_ptr.h.

template<class T>

bool operator< | ( | const loose_smart_ptr< T > & | lhs,
|  | const T * | rhs |
| ) |  |  | `[inline]`

Definition at line 350 of file _smart_ptr.h.

template<class T>

bool operator< | ( | const T * | lhs,
|  | const smart_ptr< T > & | rhs |
| ) |  |  | `[inline]`

Definition at line 353 of file _smart_ptr.h.

template<class T>

bool operator< | ( | const T * | lhs,
|  | const loose_smart_ptr< T > & | rhs |
| ) |  |  | `[inline]`

Definition at line 356 of file _smart_ptr.h.