Dune::null_deleter< T > Struct Template Reference

implements the Deleter concept of shared_ptr without deleting anything More...

#include <dune/common/shared_ptr.hh>

List of all members.

Public Member Functions

void operator() (T *) const

Related Functions

(Note that these are not member functions.)



template<typename T >
shared_ptr< T > stackobject_to_shared_ptr (T &t)
 Create a shared_ptr for a stack-allocated object.

Detailed Description

template<class T>
struct Dune::null_deleter< T >

implements the Deleter concept of shared_ptr without deleting anything

If you allocate an object on the stack, but want to pass it to a class or function as a shared_ptr, you can use this deleter to avoid accidental deletion of the stack-allocated object.

For convenience we provide two free functions to create a shared_ptr from a stack-allocated object (

See also:
stackobject_to_shared_ptr):

1) Convert a stack-allocated object to a shared_ptr:

          int i = 10;
          shared_ptr<int> pi = stackobject_to_shared_ptr(i);

2) Convert a stack-allocated object to a shared_ptr of a base class

          class A {};
          class B : public A {};

          ...

          B b;
          shared_ptr<A> pa = stackobject_to_shared_ptr<A>(b);
Template Parameters:
T type of the stack-allocated object

Member Function Documentation

template<class T >
void Dune::null_deleter< T >::operator() ( T *   )  const [inline]

Friends And Related Function Documentation

template<typename T >
shared_ptr< T2 > stackobject_to_shared_ptr ( T &  t  )  [related]

Create a shared_ptr for a stack-allocated object.

Create a shared_ptr to a base class for a stack-allocated object.

Usage:

          int i = 10;
          shared_ptr<int> pi = stackobject_to_shared_ptr(i);

The shared_ptr points to the object on the stack, but its deleter is set to an instance of null_deleter so that nothing happens when the shared_ptr is destroyed.

See also:
shared_ptr, null_deleter

Usage:

          class A {};
          class B : public A {};

          ...

          B b;
          shared_ptr<A> pa = stackobject_to_shared_ptr<A>(b);

The shared_ptr points to the object on the stack, but its deleter is set to an instance of null_deleter so that nothing happens when the shared_ptr is destroyed.

See also:
shared_ptr, null_deleter

The documentation for this struct was generated from the following file:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines

Generated on 25 Mar 2018 for dune-common by  doxygen 1.6.1