template struct mrpt::non_copiable_ptr

Overview

A wrapper class for pointers that can NOT be copied with “=” operator, raising an exception at runtime if a copy is attempted.

See also:

safe_ptr, non_copiable_ptr, copiable_NULL_ptr

#include <mrpt/core/safe_pointers.h>

template <class T>
struct non_copiable_ptr: public mrpt::non_copiable_ptr_basic
{
    // construction

    non_copiable_ptr();
    non_copiable_ptr(const non_copiable_ptr<T>& o);
    non_copiable_ptr(const T* p);

    // methods

    non_copiable_ptr<T>& operator = (const T* p);
    non_copiable_ptr<T>& operator = (const non_copiable_ptr<T>&);
    T& operator * ();
    const T& operator * () const;
    T& operator [] (size_t i);
    const T& operator [] (size_t i) const;
    void set(const T* p);
};

Inherited Members

public:
    // methods

    non_copiable_ptr_basic<T>& operator = (T* p);
    non_copiable_ptr_basic<T>& operator = (const non_copiable_ptr_basic<T>&);
    bool operator == (const T* o) const;
    bool operator == (const non_copiable_ptr_basic<T>& o) const;
    bool operator != (const T* o) const;
    bool operator != (const non_copiable_ptr_basic<T>& o) const;
    T*& get();
    const T* get() const;
    T** getPtrToPtr();
    T*& operator -> ();
    const T* operator -> () const;

Methods

void set(const T* p)

This method can change the pointer, since the change is made explicitly, not through copy operators transparent to the user.