Teuchos Package Browser (Single Doxygen Collection)  Version of the Day
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Teuchos_StandardMemberCompositionMacros.hpp
Go to the documentation of this file.
1 // @HEADER
2 // *****************************************************************************
3 // Teuchos: Common Tools Package
4 //
5 // Copyright 2004 NTESS and the Teuchos contributors.
6 // SPDX-License-Identifier: BSD-3-Clause
7 // *****************************************************************************
8 // @HEADER
9 
10 // ////////////////////////////////////////////////////////////
11 // Teuchos_StandardMemberCompositionMacros.hpp
12 
13 #ifndef TEUCHOS_STANDARD_MEMBER_COMPOSITION_MACROS_H
14 #define TEUCHOS_STANDARD_MEMBER_COMPOSITION_MACROS_H
15 
20 #include "Teuchos_ConfigDefs.hpp"
21 
22 namespace Teuchos { class DummyDummyClass; } // see below
23 
54 #define STANDARD_MEMBER_COMPOSITION_MEMBERS( TYPE, NAME )\
55  void NAME ( const TYPE & NAME ## _in ) { NAME ## _ = NAME ## _in ; }\
56  const TYPE& NAME() const { return NAME ## _; }\
57 private:\
58  TYPE NAME ## _;\
59 public: \
60  typedef ::Teuchos::DummyDummyClass NAME ## DummyDummyClass_t
61 
62 // Note: Above, the 'using Teuchos::DummyDummyClass' statement is just there
63 // to allow (and require) the macro use of the form:
64 //
65 // STANDARD_MEMBER_COMPOSITION_MEMBERS( MyClass, my_attribute );
66 //
67 // which allows a semicolon at the end!
68 //
69 
70 #endif // TEUCHOS_STANDARD_MEMBER_COMPOSITION_MACROS_H
Teuchos header file which uses auto-configuration information to include necessary C++ headers...