#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.