Teuchos Package Browser (Single Doxygen Collection)  Version of the Day
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Classes | Namespaces | Macros
Teuchos_Handle.hpp File Reference
#include "Teuchos_ConfigDefs.hpp"
#include "Teuchos_RCP.hpp"
#include "Teuchos_Describable.hpp"
#include "Teuchos_Handleable.hpp"
Include dependency graph for Teuchos_Handle.hpp:

Go to the source code of this file.

Classes

class  Teuchos::ConstHandle< PointerType >
 Templated handle class with strong const protection. More...
 
class  Teuchos::Handle< PointerType >
 Generic templated handle class. More...
 

Namespaces

 Teuchos
 

Macros

#define TEUCHOS_HANDLE_CTORS(handle, contents)
 This helper macro defines boilerplate constructors for classes deriving from Handle. More...
 
#define TEUCHOS_CONST_HANDLE_CTORS(handle, contents)
 . This helper macro defines boilerplate constructors for classes deriving from ConstHandle. More...
 

Macro Definition Documentation

#define TEUCHOS_HANDLE_CTORS (   handle,
  contents 
)
Value:
handle() : Teuchos::Handle<contents >() {;} \
handle(Teuchos::Handleable<contents >* rawPtr) : Teuchos::Handle<contents >(rawPtr) {;} \
handle(const Teuchos::RCP<contents >& smartPtr) : Teuchos::Handle<contents >(smartPtr){;}
Class Handleable provides an abstract interface for polymorphic conversion from raw pointers to smart...
Smart reference counting pointer class for automatic garbage collection.

This helper macro defines boilerplate constructors for classes deriving from Handle.

If class MyHandle is a handle to a type MyType, simply put

TEUCHOS_HANDLE_CTORS(MyHandle, MyType);

in the class declaration of MyHandle and the macro will create an empty ctor, a ctor from a smart ptr, and a ctor from a raw pointer. The macro will also create appropriate doxygen for the handle ctors

Definition at line 147 of file Teuchos_Handle.hpp.

#define TEUCHOS_CONST_HANDLE_CTORS (   handle,
  contents 
)
Value:
handle( Teuchos::ENull _null = Teuchos::null ) : Teuchos::ConstHandle<contents >() {;} \
handle(const Teuchos::ConstHandleable<contents >* rawPtr) : Teuchos::ConstHandle<contents >(rawPtr) {;} \
handle(const Teuchos::RCP<const contents >& smartPtr) : Teuchos::ConstHandle<contents >(smartPtr){;}
ENull
Used to initialize a RCP object to NULL using an implicit conversion!
Class ConstHandleable provides an abstract interface for polymorphic conversion from raw pointers to ...
Smart reference counting pointer class for automatic garbage collection.

. This helper macro defines boilerplate constructors for classes deriving from ConstHandle.

If class MyHandle is a const handle to a type MyType, simply put

TEUCHOS_CONST_HANDLE_CTORS(MyHandle, MyType);

in the class declaration of MyHandle and the macro will create an empty ctor, a ctor from a smart ptr, and a ctor from a raw pointer. The macro will also create appropriate doxygen for the handle ctors

Definition at line 163 of file Teuchos_Handle.hpp.