implements the Deleter concept of shared_ptr without deleting anything More...
#include <dune/common/shared_ptr.hh>
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. |
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 (
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);
T | type of the stack-allocated object |
void Dune::null_deleter< T >::operator() | ( | T * | ) | const [inline] |
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.
#include <dune/common/shared_ptr.hh>
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.
#include <dune/common/shared_ptr.hh>
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.