|
Teuchos - Trilinos Tools Package
Version of the Day
|
Macro that adds <<std member="" comp>="">> members as attribute members for any class. More...
#include "Teuchos_ConfigDefs.hpp"Go to the source code of this file.
Defines | |
| #define | STANDARD_MEMBER_COMPOSITION_MEMBERS(TYPE, NAME) |
| Macro that adds <<std member="" comp>="">> attributes to any class. | |
Macro that adds <<std member="" comp>="">> members as attribute members for any class.
Definition in file Teuchos_StandardMemberCompositionMacros.hpp.
| #define STANDARD_MEMBER_COMPOSITION_MEMBERS | ( | TYPE, | |
| NAME | |||
| ) |
void NAME ( const TYPE & NAME ## _in ) { NAME ## _ = NAME ## _in ; }\ const TYPE& NAME() const { return NAME ## _; }\ private:\ TYPE NAME ## _;\ public: \ typedef ::Teuchos::DummyDummyClass NAME ## DummyDummyClass_t
Macro that adds <<std member="" comp>="">> attributes to any class.
For example, if you want to include a <<std member="" comp>="">> attribute as a member object of type MyClass with the name my_attribute you would include the macro in the public section of YourClass declaration as follows:
class YourClass {
public:
STANDARD_MEMBER_COMPOSITION_MEMBERS( MyClass, my_attribute );
};
This macro adds the following data member to the class declaration:
private: MyClass my_attribute_;
and the following methods to your class declaration:
public:
void my_attribute( const My_Class & my_attribute_in )
{ my_attribute_ = my_attribute_in; }
const My_Class& my_attribute() const
{ return my_attribute_; }
The advantage of using this type of declaration is that it saves you a lot of typing and space. Later if you need to override these operations you can just implement the member functions by hand.
Definition at line 84 of file Teuchos_StandardMemberCompositionMacros.hpp.
1.7.6.1