42#ifndef TEUCHOS_OPAQUE_WRAPPER_HPP
43#define TEUCHOS_OPAQUE_WRAPPER_HPP
51#ifdef TEUCHOS_OPAQUE_WRAPPER_ANNOUNCE_FREE
52# include "Teuchos_VerboseObject.hpp"
239template <
class Opaque>
263 operator Opaque ()
const
311template <
class Opaque,
class OpaqueFree>
325#ifdef TEUCHOS_OPAQUE_WRAPPER_ANNOUNCE_FREE
329 *out <<
"\nOpaqueWrapperWithFree::~OpaqueWrapperWithFree(): Freeing opaque object"
337 OpaqueFree opaqueFree_;
351template <
class Opaque>
353RCP<OpaqueWrapper<Opaque> >
367template <
class Opaque,
class OpaqueFree>
Reference-counted pointer class and non-member templated function implementations.
Subclass for wrapped opaque objects with a free function.
~OpaqueWrapperWithFree()
Destructor: invokes the free function.
OpaqueWrapperWithFree(Opaque opaque, OpaqueFree opaqueFree)
Constructor: takes the opaque handle, and its free function.
Base class for wrapped opaque objects.
Opaque operator()() const
Explicit type conversion from wrapper to raw handle.
OpaqueWrapper(Opaque opaque)
Constructor that accepts and wraps a raw handle.
RCP< OpaqueWrapper< Opaque > > opaqueWrapper(Opaque opaque)
Create a new OpaqueWrapper object without a free function.
Opaque opaque_
The actual handle.
RCP< OpaqueWrapper< Opaque > > opaqueWrapper(Opaque opaque, OpaqueFree opaqueFree)
Create a new OpaqueWrapper object with a free function.
Smart reference counting pointer class for automatic garbage collection.
static std::string name()
static RCP< FancyOStream > getDefaultOStream()
Get the default output stream object.
Tabbing class for helping to create formated, indented output for a basic_FancyOStream object.
The Teuchos namespace contains all of the classes, structs and enums used by Teuchos,...
TEUCHOS_DEPRECATED RCP< T > rcp(T *p, Dealloc_T dealloc, bool owns_mem)
Deprecated.