Changeset 1460 for XIOS/dev/branch_openmp/src/declare_attribute.hpp
- Timestamp:
- 03/22/18 10:43:20 (6 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
XIOS/dev/branch_openmp/src/declare_attribute.hpp
r778 r1460 3 3 4 4 /// ///////////////////////////// Macros ///////////////////////////// /// 5 #define DECLARE_ATTRIBUTE(type, name )\5 #define DECLARE_ATTRIBUTE(type, name, ...) \ 6 6 class name##_attr : public CAttributeTemplate<type> \ 7 7 { \ 8 8 public : \ 9 name##_attr(void) 9 name##_attr(void) \ 10 10 : CAttributeTemplate<type> \ 11 11 (#name, *CAttributeMap::Current) \ … … 13 13 type operator=(const type & value) \ 14 14 { return (CAttributeTemplate<type>::operator=(value)); } \ 15 virtual ~name##_attr(void) \ 15 virtual bool doSend() const { return helper(__VA_ARGS__); } \ 16 bool helper(bool returnTrue=true) const { return returnTrue; } \ 17 virtual ~name##_attr(void) \ 16 18 { /* Ne rien faire de plus */ } \ 17 19 } name; 18 20 19 #define DECLARE_ATTRIBUTE_PRIVATE(type, name )\20 class name##_attr : public CAttributeTemplate<type> \21 #define DECLARE_ATTRIBUTE_PRIVATE(type, name, ...) \ 22 class name##_attr : public CAttributeTemplate<type> \ 21 23 { \ 22 24 public : \ 23 name##_attr(void) 25 name##_attr(void) \ 24 26 : CAttributeTemplate<type> \ 25 27 (#name, *CAttributeMap::Current) \ … … 29 31 virtual bool isPublic() const \ 30 32 { return false; } \ 33 virtual bool doSend() const { return helper(__VA_ARGS__); } \ 34 bool helper(bool returnTrue=true) const { return returnTrue; } \ 31 35 virtual ~name##_attr(void) \ 32 36 { /* Ne rien faire de plus */ } \ 33 37 } name; 34 38 35 #define DECLARE_ARRAY(T_num, T_rank, name )\39 #define DECLARE_ARRAY(T_num, T_rank, name, ...) \ 36 40 class name##_attr : public CAttributeArray<T_num, T_rank> \ 37 41 { \ … … 39 43 using CAttributeArray<T_num, T_rank>::operator = ; \ 40 44 name##_attr(void) : CAttributeArray<T_num, T_rank> (#name, *CAttributeMap::Current) {} \ 45 virtual bool doSend() const { return helper(__VA_ARGS__); } \ 46 bool helper(bool returnTrue=true) const { return returnTrue; } \ 41 47 virtual ~name##_attr(void) {} \ 42 48 } name; 43 49 44 #define DECLARE_ARRAY_PRIVATE(T_num, T_rank, name )\50 #define DECLARE_ARRAY_PRIVATE(T_num, T_rank, name, ...) \ 45 51 class name##_attr : public CAttributeArray<T_num, T_rank> \ 46 52 { \ … … 50 56 virtual bool isPublic() const \ 51 57 { return false; } \ 58 virtual bool doSend() const { return helper(__VA_ARGS__); } \ 59 bool helper(bool returnTrue=true) const { return returnTrue; } \ 52 60 virtual ~name##_attr(void) {} \ 53 61 } name; 54 62 55 #define DECLARE_CLASS_ENUM(name )\56 class name##_attr : public CAttributeEnum<Enum_##name> 63 #define DECLARE_CLASS_ENUM(name, ...) \ 64 class name##_attr : public CAttributeEnum<Enum_##name> \ 57 65 { \ 58 66 public : \ 59 67 name##_attr(void) : CAttributeEnum<Enum_##name>(#name, *CAttributeMap::Current) { } \ 60 virtual ~name##_attr(void) {} \ 68 virtual bool doSend() const { return helper(__VA_ARGS__); } \ 69 bool helper(bool returnTrue=true) const { return returnTrue; } \ 70 virtual ~name##_attr(void) {} \ 61 71 } name; 62 72 … … 71 81 DECLARE_CLASS_ENUM(name) 72 82 73 #define DECLARE_ENUM3(name,arg1,arg2,arg3) 83 #define DECLARE_ENUM3(name,arg1,arg2,arg3) \ 74 84 class Enum_##name \ 75 85 { \ 76 86 public: \ 77 enum t_enum { arg1=0, arg2, arg3} ; 87 enum t_enum { arg1=0, arg2, arg3} ; \ 78 88 const char** getStr(void) const { static const char * enumStr[] = { #arg1, #arg2, #arg3 } ; return enumStr ; } \ 79 89 int getSize(void) const { return 3 ; } \ … … 81 91 DECLARE_CLASS_ENUM(name) 82 92 83 #define DECLARE_ENUM4(name,arg1,arg2,arg3,arg4) 93 #define DECLARE_ENUM4(name,arg1,arg2,arg3,arg4) \ 84 94 class Enum_##name \ 85 95 { \ 86 96 public: \ 87 enum t_enum { arg1=0, arg2, arg3,arg4} ; 97 enum t_enum { arg1=0, arg2, arg3,arg4} ; \ 88 98 const char** getStr(void) const { static const char * enumStr[] = { #arg1, #arg2, #arg3,#arg4 } ; return enumStr ; } \ 89 99 int getSize(void) const { return 4 ; } \ … … 91 101 DECLARE_CLASS_ENUM(name) 92 102 93 #define DECLARE_ENUM5(name,arg1,arg2,arg3,arg4,arg5) 103 #define DECLARE_ENUM5(name,arg1,arg2,arg3,arg4,arg5) \ 94 104 class Enum_##name \ 95 105 { \ 96 106 public: \ 97 enum t_enum { arg1=0, arg2, arg3,arg4,arg5} ; 107 enum t_enum { arg1=0, arg2, arg3,arg4,arg5} ; \ 98 108 const char** getStr(void) const { static const char * enumStr[] = { #arg1, #arg2, #arg3,#arg4,#arg5 } ; return enumStr ; } \ 99 109 int getSize(void) const { return 5 ; } \ … … 101 111 DECLARE_CLASS_ENUM(name) 102 112 103 #define DECLARE_ENUM6(name,arg1,arg2,arg3,arg4,arg5,arg6) 113 #define DECLARE_ENUM6(name,arg1,arg2,arg3,arg4,arg5,arg6) \ 104 114 class Enum_##name \ 105 115 { \ 106 116 public: \ 107 enum t_enum { arg1=0, arg2, arg3,arg4,arg5,arg6} ; 117 enum t_enum { arg1=0, arg2, arg3,arg4,arg5,arg6} ; \ 108 118 const char** getStr(void) const { static const char * enumStr[] = { #arg1, #arg2, #arg3,#arg4,#arg5,#arg6 } ; return enumStr ; } \ 109 119 int getSize(void) const { return 6 ; } \ … … 111 121 DECLARE_CLASS_ENUM(name) 112 122 113 #define DECLARE_ENUM7(name,arg1,arg2,arg3,arg4,arg5,arg6,arg7) 123 #define DECLARE_ENUM7(name,arg1,arg2,arg3,arg4,arg5,arg6,arg7) \ 114 124 class Enum_##name \ 115 125 { \ 116 126 public: \ 117 enum t_enum { arg1=0, arg2, arg3,arg4,arg5,arg6,arg7} ; 127 enum t_enum { arg1=0, arg2, arg3,arg4,arg5,arg6,arg7} ; \ 118 128 const char** getStr(void) const { static const char * enumStr[] = { #arg1, #arg2, #arg3,#arg4,#arg5,#arg6,#arg7 } ; return enumStr ; } \ 119 129 int getSize(void) const { return 7 ; } \ … … 125 135 { \ 126 136 public: \ 127 enum t_enum { arg1=0, arg2, arg3,arg4,arg5,arg6,arg7,arg8} ; 137 enum t_enum { arg1=0, arg2, arg3,arg4,arg5,arg6,arg7,arg8} ; \ 128 138 const char** getStr(void) const { static const char * enumStr[] = { #arg1, #arg2, #arg3,#arg4,#arg5,#arg6,#arg7,#arg8 } ; return enumStr ; } \ 129 139 int getSize(void) const { return 8 ; } \
Note: See TracChangeset
for help on using the changeset viewer.