## Public API Reference

- Main Page
- Modules
- Namespaces
- Classes
- Files
- Related Pages

- Alphabetical List
- Class List
- Class Hierarchy
- Class Members

# csPtr< T > Class Template Reference

A pointer encapsulator. More...

`#include <csutil/ref.h>`

List of all members.

## Public Member Functions

| csPtr (const csPtr< T > &copy)
template<class T2>
| csPtr (csRef< T2 > const &r)
| csPtr (T *p)

## Friends

class | csRef< T >

## Detailed Description

### template<class T>
class csPtr< T >

A pointer encapsulator.

Represents a single, owned, one-time-transferable reference to an object and should be used only as the return value of a function, or when creating a brand new object which is assigned directly to a csRef<>. csPtr<> simply stores the pointer (it never invokes IncRef() or DecRef()). It is very specialized, and exists solely as a mechanism for transferring an existing reference into a csRef<>.

Important: There is only one valid way to use the result of a function which returns a csPtr<>: assign it to a csRef<>.

Remarks:
  An extended explanation on smart pointers - how they work and what type to use in what scenario - is contained in the User's manual, section "Correctly Using Smart Pointers".

Definition at line 85 of file ref.h.

The documentation for this class was generated from the following file:

- csutil/ref.h