#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. | |
Definition in file Teuchos_StandardCompositionMacros.hpp.
| #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
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_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
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.
| #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
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.
1.5.9