12#ifndef SST_CORE_ELI_SIMPLE_INFO_H
13#define SST_CORE_ELI_SIMPLE_INFO_H
15#include "sst/core/eli/elibase.h"
27template <
int num,
typename InfoType>
36template <
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));
59template <
class T,
int index,
class InfoType>
60typename std::enable_if<checkForELI_getSimpleInfoFunction<T, index, InfoType>::value,
const InfoType&>::type
61ELI_templatedGetSimpleInfo()
66template <
class T,
int index,
class InfoType>
67typename std::enable_if<not checkForELI_getSimpleInfoFunction<T, index, InfoType>::value,
const InfoType&>::type
68ELI_templatedGetSimpleInfo()
81template <
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__ }; \
Definition: simpleInfo.h:83
Definition: simpleInfo.h:38
Definition: simpleInfo.h:29