#include "timemory/compat/macros.h"
#include <cassert>
Go to the source code of this file.
|
#define | TIMEMORY_SETTINGS_HEADER_MODE |
|
#define | TIMEMORY_SETTINGS_INLINE inline |
|
#define | TIMEMORY_SETTINGS_LINKAGE(...) inline __VA_ARGS__ |
|
#define | TIMEMORY_SETTINGS_PREFIX "TIMEMORY_" |
|
#define | TIMEMORY_SETTINGS_KEY(...) TIMEMORY_SETTINGS_PREFIX __VA_ARGS__ |
|
#define | TIMEMORY_SETTINGS_MEMBER_DECL(TYPE, FUNC) |
|
#define | TIMEMORY_SETTINGS_REFERENCE_DECL(TYPE, FUNC) |
|
#define | TIMEMORY_SETTINGS_MEMBER_DEF(TYPE, FUNC, ENV_VAR) |
|
#define | TIMEMORY_SETTINGS_REFERENCE_DEF(TYPE, FUNC, ENV_VAR) |
|
#define | TIMEMORY_SETTINGS_MEMBER_IMPL(TYPE, FUNC, ENV_VAR, DESC, INIT) |
|
#define | TIMEMORY_SETTINGS_HIDDEN_MEMBER_IMPL(TYPE, ENV_VAR, DESC, INIT) |
|
#define | TIMEMORY_SETTINGS_MEMBER_ARG_IMPL(TYPE, FUNC, ENV_VAR, DESC, INIT, ...) |
|
#define | TIMEMORY_SETTINGS_HIDDEN_MEMBER_ARG_IMPL(TYPE, ENV_VAR, DESC, INIT, ...) |
|
#define | TIMEMORY_SETTINGS_REFERENCE_IMPL(TYPE, FUNC, ENV_VAR, DESC, INIT) |
|
#define | TIMEMORY_SETTINGS_REFERENCE_ARG_IMPL(TYPE, FUNC, ENV_VAR, DESC, INIT, ...) |
|
#define | TIMEMORY_ERROR_FUNCTION_MACRO __FUNCTION__ |
|
#define | TIMEMORY_SETTINGS_TRY_CATCH_NVP(ENV_VAR, FUNC) |
|
#define | TIMEMORY_SETTINGS_EXTERN_TEMPLATE(...) |
|
◆ TIMEMORY_ERROR_FUNCTION_MACRO
#define TIMEMORY_ERROR_FUNCTION_MACRO __FUNCTION__ |
◆ TIMEMORY_SETTINGS_EXTERN_TEMPLATE
#define TIMEMORY_SETTINGS_EXTERN_TEMPLATE |
( |
|
... | ) |
|
◆ TIMEMORY_SETTINGS_HEADER_MODE
#define TIMEMORY_SETTINGS_HEADER_MODE |
◆ TIMEMORY_SETTINGS_HIDDEN_MEMBER_ARG_IMPL
#define TIMEMORY_SETTINGS_HIDDEN_MEMBER_ARG_IMPL |
( |
|
TYPE, |
|
|
|
ENV_VAR, |
|
|
|
DESC, |
|
|
|
INIT, |
|
|
|
... |
|
) |
| |
Value: \
if(m_data \
.
insert({ ENV_VAR, std::make_shared<tsettings<TYPE>>( \
.second) \
m_order.push_back(ENV_VAR);
_reported insert(_hash_id)
tim::mpl::apply< std::string > string
Definition at line 187 of file macros.hpp.
◆ TIMEMORY_SETTINGS_HIDDEN_MEMBER_IMPL
#define TIMEMORY_SETTINGS_HIDDEN_MEMBER_IMPL |
( |
|
TYPE, |
|
|
|
ENV_VAR, |
|
|
|
DESC, |
|
|
|
INIT |
|
) |
| |
Value: \
if(m_data \
.
insert({ ENV_VAR, std::make_shared<tsettings<TYPE>>( \
.second) \
m_order.push_back(ENV_VAR);
Definition at line 160 of file macros.hpp.
◆ TIMEMORY_SETTINGS_INLINE
#define TIMEMORY_SETTINGS_INLINE inline |
◆ TIMEMORY_SETTINGS_KEY
◆ TIMEMORY_SETTINGS_LINKAGE
#define TIMEMORY_SETTINGS_LINKAGE |
( |
|
... | ) |
inline __VA_ARGS__ |
◆ TIMEMORY_SETTINGS_MEMBER_ARG_IMPL
#define TIMEMORY_SETTINGS_MEMBER_ARG_IMPL |
( |
|
TYPE, |
|
|
|
FUNC, |
|
|
|
ENV_VAR, |
|
|
|
DESC, |
|
|
|
INIT, |
|
|
|
... |
|
) |
| |
Value: \
if(m_data \
{ ENV_VAR, std::make_shared<tsettings<TYPE>>( \
.second) \
m_order.push_back(ENV_VAR);
Definition at line 173 of file macros.hpp.
◆ TIMEMORY_SETTINGS_MEMBER_DECL
#define TIMEMORY_SETTINGS_MEMBER_DECL |
( |
|
TYPE, |
|
|
|
FUNC |
|
) |
| |
Value: public: \
TYPE& get_##FUNC() TIMEMORY_NEVER_INSTRUMENT TIMEMORY_VISIBILITY("default"); \
TYPE get_##FUNC() \
const TIMEMORY_NEVER_INSTRUMENT TIMEMORY_VISIBILITY("default"); \
static TYPE& FUNC() TIMEMORY_NEVER_INSTRUMENT TIMEMORY_VISIBILITY("default");
Definition at line 68 of file macros.hpp.
◆ TIMEMORY_SETTINGS_MEMBER_DEF
#define TIMEMORY_SETTINGS_MEMBER_DEF |
( |
|
TYPE, |
|
|
|
FUNC, |
|
|
|
ENV_VAR |
|
) |
| |
Value:
{ \
return
static_cast<tsettings<TYPE>*
>(m_data.at(ENV_VAR).get())->
get(); \
} \
\
TIMEMORY_SETTINGS_INLINE TYPE settings::get_##FUNC() const \
{ \
auto ret = m_data.find(ENV_VAR); \
if(ret == m_data.end()) \
return TYPE{}; \
if(!ret->second) \
return TYPE{}; \
return
static_cast<tsettings<TYPE>*
>(ret->second.get())->
get(); \
} \
\
TIMEMORY_SETTINGS_INLINE TYPE& settings::FUNC() \
{ \
return shared_instance()->get_##FUNC(); \
}
auto get(const auto_bundle< Tag, Types... > &_obj)
#define TIMEMORY_SETTINGS_INLINE
Definition at line 94 of file macros.hpp.
◆ TIMEMORY_SETTINGS_MEMBER_IMPL
#define TIMEMORY_SETTINGS_MEMBER_IMPL |
( |
|
TYPE, |
|
|
|
FUNC, |
|
|
|
ENV_VAR, |
|
|
|
DESC, |
|
|
|
INIT |
|
) |
| |
Value: \
if(m_data \
.
insert({ ENV_VAR, std::make_shared<tsettings<TYPE>>( \
.second) \
m_order.push_back(ENV_VAR);
Definition at line 147 of file macros.hpp.
◆ TIMEMORY_SETTINGS_PREFIX
#define TIMEMORY_SETTINGS_PREFIX "TIMEMORY_" |
◆ TIMEMORY_SETTINGS_REFERENCE_ARG_IMPL
#define TIMEMORY_SETTINGS_REFERENCE_ARG_IMPL |
( |
|
TYPE, |
|
|
|
FUNC, |
|
|
|
ENV_VAR, |
|
|
|
DESC, |
|
|
|
INIT, |
|
|
|
... |
|
) |
| |
Value: if(m_data \
{ ENV_VAR, std::make_shared<tsettings<TYPE, TYPE&>>( \
.second) \
m_order.push_back(ENV_VAR);
Definition at line 213 of file macros.hpp.
◆ TIMEMORY_SETTINGS_REFERENCE_DECL
#define TIMEMORY_SETTINGS_REFERENCE_DECL |
( |
|
TYPE, |
|
|
|
FUNC |
|
) |
| |
Value: public: \
TYPE& get_##FUNC() TIMEMORY_NEVER_INSTRUMENT TIMEMORY_VISIBILITY("default"); \
TYPE get_##FUNC() \
const TIMEMORY_NEVER_INSTRUMENT TIMEMORY_VISIBILITY("default"); \
static TYPE& FUNC() TIMEMORY_NEVER_INSTRUMENT TIMEMORY_VISIBILITY("default");
Definition at line 81 of file macros.hpp.
◆ TIMEMORY_SETTINGS_REFERENCE_DEF
#define TIMEMORY_SETTINGS_REFERENCE_DEF |
( |
|
TYPE, |
|
|
|
FUNC, |
|
|
|
ENV_VAR |
|
) |
| |
Value:
{ \
return static_cast<tsettings<TYPE, TYPE&>*>(m_data.at(ENV_VAR).get()) \
} \
\
TIMEMORY_SETTINGS_INLINE TYPE settings::get_##FUNC() const \
{ \
auto ret = m_data.find(ENV_VAR); \
if(ret == m_data.end()) \
return TYPE{}; \
if(!ret->second) \
return TYPE{}; \
return
static_cast<tsettings<TYPE, TYPE&>*
>(ret->second.get())->
get(); \
} \
\
TIMEMORY_SETTINGS_INLINE TYPE& settings::FUNC() \
{ \
return shared_instance()->get_##FUNC(); \
}
Definition at line 121 of file macros.hpp.
◆ TIMEMORY_SETTINGS_REFERENCE_IMPL
#define TIMEMORY_SETTINGS_REFERENCE_IMPL |
( |
|
TYPE, |
|
|
|
FUNC, |
|
|
|
ENV_VAR, |
|
|
|
DESC, |
|
|
|
INIT |
|
) |
| |
Value: \
if(m_data \
.
insert({ ENV_VAR, std::make_shared<tsettings<TYPE, TYPE&>>( \
.second) \
m_order.push_back(ENV_VAR);
Definition at line 200 of file macros.hpp.
◆ TIMEMORY_SETTINGS_TRY_CATCH_NVP
#define TIMEMORY_SETTINGS_TRY_CATCH_NVP |
( |
|
ENV_VAR, |
|
|
|
FUNC |
|
) |
| |
Value: try \
{ \
ar(cereal::make_nvp(ENV_VAR, FUNC())); \
} catch(...) \
{}
Definition at line 236 of file macros.hpp.