Teuchos_StandardCompositionMacros.hpp File Reference

Macro that adds <<std comp>="">> members as attribute members for any class. More...

#include "Teuchos_RCP.hpp"

Go to the source code of this file.

Defines

#define STANDARD_COMPOSITION_MEMBERS(TYPE, NAME)
 Macro that adds <<std comp>="">> members for a composition association.
#define STANDARD_NONCONST_COMPOSITION_MEMBERS(TYPE, NAME)
#define STANDARD_CONST_COMPOSITION_MEMBERS(TYPE, NAME)
 Macro that adds <<std comp>="">> members for a composition association where the contained object is always constant.


Detailed Description

Macro that adds <<std comp>="">> members as attribute members for any class.

Definition in file Teuchos_StandardCompositionMacros.hpp.


Define Documentation

#define STANDARD_COMPOSITION_MEMBERS ( TYPE,
NAME   ) 

Value:

void set_ ## NAME (const Teuchos::RCP< TYPE >& NAME ) \
  { NAME ## _ = NAME ; } \
  Teuchos::RCP< TYPE > get_ ## NAME() const \
  { return NAME ## _; } \
  TYPE& NAME() \
  { return *NAME ## _; } \
  const TYPE& NAME() const \
  { return *NAME ## _; } \
private: \
  Teuchos::RCP< TYPE > NAME ## _; \
public: \
  typedef Teuchos::RCP< TYPE > NAME ## _ptr_t
Macro that adds <<std comp>="">> members for a composition association.

This form is for when the object being held will have const attributes the same as the this object.

For example, if you want to include a <<std comp>="">> association with an non-const object of type MyClass of the name my_object you would include the macro in the public section of YourClass declaration as follows:

 class YourClass {
 public:
   STANDARD_COMPOSITION_MEMBERS( MyClass, my_object );
 };
 

Note that the macro adds the following data member to the class declaration:

 private:
   Teuchos::RCP< TYPE > NAME_;		
 

Definition at line 64 of file Teuchos_StandardCompositionMacros.hpp.

#define STANDARD_NONCONST_COMPOSITION_MEMBERS ( TYPE,
NAME   ) 

Value:

void set_ ## NAME ( const Teuchos::RCP< TYPE >& NAME ) \
  { NAME ## _ = NAME ; } \
  Teuchos::RCP< TYPE > get_ ## NAME() const \
  { return NAME ## _; } \
  TYPE& NAME() const \
  { return *NAME ## _; } \
private: \
  Teuchos::RCP< TYPE > NAME ## _; \
public: \
  typedef Teuchos::RCP< TYPE > NAME ## _ptr_t
Macro that adds <<std comp>="">> members for a composition association.

This form is for when the object being held will have non-const attributes irrespective of the const of this.

For example, if you want to include a <<std comp>="">> association with an non-const object of type MyClass of the name my_object you would include the macro in the public section of YourClass declaration as follows:

 class YourClass {
 public:
   STANDARD_NONCONST_COMPOSITION_MEMBERS( MyClass, my_object );
 };
 

Note that the macro adds the following data member to the class declaration:

 private:
   Teuchos::RCP< TYPE > NAME_;		
 

Definition at line 104 of file Teuchos_StandardCompositionMacros.hpp.

#define STANDARD_CONST_COMPOSITION_MEMBERS ( TYPE,
NAME   ) 

Value:

public: \
  void set_ ## NAME ( const Teuchos::RCP< const TYPE >& NAME ) \
  { NAME ## _ = NAME ; } \
  Teuchos::RCP< const TYPE > get_ ## NAME() const \
  { return NAME ## _; } \
  const TYPE& NAME() const \
  { return *NAME ## _; } \
private: \
  Teuchos::RCP< const TYPE > NAME ## _; \
public: \
  typedef Teuchos::RCP< const TYPE > NAME ## _ptr_t
Macro that adds <<std comp>="">> members for a composition association where the contained object is always constant.

This form is for when the object being held will have const attributes irrespective of the const of this.

For example, if you want to include a <<std comp>="">> association with a const object of type MyClass of the name my_object you would include the macro in the public section of YourClass declaration as follows:

 class YourClass {
 public:
   STANDARD_CONST_COMPOSITION_MEMBERS( MyClass, my_object );
 };
 

Note that the macro adds the following data member to the class declaration:

 private:
   NAME_ptr_t NAME_;		
 

Definition at line 143 of file Teuchos_StandardCompositionMacros.hpp.


Generated on Wed May 12 21:40:33 2010 for Teuchos - Trilinos Tools Package by  doxygen 1.4.7