Teuchos_StandardCompositionMacros.hpp
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029 #ifndef TEUCHOS_STANDARD_COMPOSITION_MACROS_HPP
00030 #define TEUCHOS_STANDARD_COMPOSITION_MACROS_HPP
00031
00036 #include "Teuchos_RCP.hpp"
00037
00064 #define STANDARD_COMPOSITION_MEMBERS( TYPE, NAME ) \
00065 void set_ ## NAME (const Teuchos::RCP< TYPE >& NAME ) \
00066 { NAME ## _ = NAME ; } \
00067 Teuchos::RCP< TYPE > get_ ## NAME() const \
00068 { return NAME ## _; } \
00069 TYPE& NAME() \
00070 { return *NAME ## _; } \
00071 const TYPE& NAME() const \
00072 { return *NAME ## _; } \
00073 private: \
00074 Teuchos::RCP< TYPE > NAME ## _; \
00075 public: \
00076 typedef Teuchos::RCP< TYPE > NAME ## _ptr_t
00077
00104 #define STANDARD_NONCONST_COMPOSITION_MEMBERS( TYPE, NAME ) \
00105 void set_ ## NAME ( const Teuchos::RCP< TYPE >& NAME ) \
00106 { NAME ## _ = NAME ; } \
00107 Teuchos::RCP< TYPE > get_ ## NAME() const \
00108 { return NAME ## _; } \
00109 TYPE& NAME() const \
00110 { return *NAME ## _; } \
00111 private: \
00112 Teuchos::RCP< TYPE > NAME ## _; \
00113 public: \
00114 typedef Teuchos::RCP< TYPE > NAME ## _ptr_t
00115
00143 #define STANDARD_CONST_COMPOSITION_MEMBERS( TYPE, NAME ) \
00144 public: \
00145 void set_ ## NAME ( const Teuchos::RCP< const TYPE >& NAME ) \
00146 { NAME ## _ = NAME ; } \
00147 Teuchos::RCP< const TYPE > get_ ## NAME() const \
00148 { return NAME ## _; } \
00149 const TYPE& NAME() const \
00150 { return *NAME ## _; } \
00151 private: \
00152 Teuchos::RCP< const TYPE > NAME ## _; \
00153 public: \
00154 typedef Teuchos::RCP< const TYPE > NAME ## _ptr_t
00155
00156 #endif // TEUCHOS_STANDARD_COMPOSITION_MACROS_HPP