12 #ifndef SST_CORE_ELI_SIMPLE_INFO_H 
   13 #define SST_CORE_ELI_SIMPLE_INFO_H 
   15 #include "sst/core/eli/elibase.h" 
   27 template <
int num, 
typename InfoType>
 
   36 template <
class T, 
int index, 
class InfoType>
 
   39     template <
typename F, F>
 
   43     typedef long NotMatch;
 
   48     static Match HasFunction(check<functionsig, &F::ELI_getSimpleInfo>*);
 
   51     static NotMatch HasFunction(...);
 
   54     static bool const value = (
sizeof(HasFunction<T>(0)) == 
sizeof(Match));
 
   59 template <
class T, 
int index, 
class InfoType>
 
   60 typename std::enable_if<checkForELI_getSimpleInfoFunction<T, index, InfoType>::value, 
const InfoType&>::type
 
   61 ELI_templatedGetSimpleInfo()
 
   66 template <
class T, 
int index, 
class InfoType>
 
   67 typename std::enable_if<not checkForELI_getSimpleInfoFunction<T, index, InfoType>::value, 
const InfoType&>::type
 
   68 ELI_templatedGetSimpleInfo()
 
   81 template <
int num, 
typename InfoType>
 
   85     const InfoType& getSimpleInfo()
 const { 
return info_; }
 
   89     ProvidesSimpleInfo(T* UNUSED(t)) : info_(ELI_templatedGetSimpleInfo<T, num, InfoType>())
 
  101 #define SST_ELI_DOCUMENT_SIMPLE_INFO(type, index, ...)                                           \ 
  102     static const type& ELI_getSimpleInfo(SST::ELI::SimpleInfoPlaceHolder<index, type> UNUSED(a)) \ 
  104         static type my_info = { __VA_ARGS__ };                                                   \ 
  108 #endif // SST_CORE_ELI_SIMPLE_INFO_H 
Definition: simpleInfo.h:82
 
Definition: simpleInfo.h:28
 
Definition: simpleInfo.h:37