|
||||
File indexing completed on 2024-04-06 12:13:01
0001 #ifndef FWCore_Reflection_interface_reflex_h 0002 #define FWCore_Reflection_interface_reflex_h 0003 0004 /* These macros can be used to annotate the data members of DataFormats classes 0005 * and achieve the same effect of ROOT-style comments or reflex dictionaries: 0006 * 0007 * private: 0008 * int size_; 0009 * float* data_; //[size_] 0010 * float* transient_; //! 0011 * 0012 * can be expressed as 0013 * 0014 * private: 0015 * int size_; 0016 * float* data_ EDM_REFLEX_SIZE(size_); 0017 * float* transient_ EDM_REFLEX_TRANSIENT; 0018 * 0019 * The main advantage is that - unlike comments - these macros can be used inside 0020 * other macros. 0021 * 0022 * To avoid warning about unrecognised attributes, these macros expand to nothing 0023 * unless __CLING__ is defined. 0024 */ 0025 0026 #include "FWCore/Utilities/interface/stringize.h" 0027 0028 #ifdef __CLING__ 0029 0030 // Macros used to annotate class members for the generation of ROOT dictionaries 0031 #define EDM_REFLEX_TRANSIENT [[clang::annotate("!")]] 0032 #define EDM_REFLEX_SIZE(SIZE) [[clang::annotate("[" EDM_STRINGIZE(SIZE) "]")]] 0033 0034 #else 0035 0036 #define EDM_REFLEX_TRANSIENT 0037 #define EDM_REFLEX_SIZE(SIZE) 0038 0039 #endif // __CLING__ 0040 0041 #endif // FWCore_Reflection_interface_reflex_h
[ Source navigation ] | [ Diff markup ] | [ Identifier search ] | [ general search ] |
This page was automatically generated by the 2.2.1 LXR engine. The LXR team |