template<typename T>
view_ptr class
a non-owning 'smart' pointer type
A wrapper object that can contain a pointer to either null, or any type. It will not do any operations on the pointer that would imply ownership (such as cleaning up).