timemory 3.3.0
Modular C++ Toolkit for Performance Analysis and Logging. Profiling API and Tools for C, C++, CUDA, Fortran, and Python. The C++ template API is essentially a framework to creating tools: it is designed to provide a unifying interface for recording various performance measurements alongside data logging and interfaces to other tools.
tim::concepts::is_runtime_configurable< Tp > Struct Template Reference

concept that specifies that a type is used to modify behavior at runtime. For example, the tim::component::user_bundle component is runtime configurable bc it allows you insert components at runtime. The timing category (tim::category::timing) is another example of a type that is runtime configurable – setting tim::trait::runtime_enabled<tim::category::timing>::set(false); will disable (at runtime) all the types which are part of the timing API. It should be noted that types which satisfy is_runtime_configurable<Tp>::value == true (e.g. tim::component::user_bundle) are not eligible to be inserted into other runtime configurable components; i.e. you cannot insert/add tim::component::user_trace_bundle into tim::component::user_global_bundle, etc. This restriction is primarily due to the significant increase in compile-time that arises from allowing this behavior. More...

#include "timemory/mpl/concepts.hpp"

+ Collaboration diagram for tim::concepts::is_runtime_configurable< Tp >:

Public Types

using type = typename is_runtime_configurable ::template have< typename std::remove_cv< Tp >::type >::type
 

Static Public Attributes

static constexpr bool value = is_runtime_configurable ::template have<typename std::remove_cv<Tp>::type>::value
 

Detailed Description

template<typename Tp>
struct tim::concepts::is_runtime_configurable< Tp >

concept that specifies that a type is used to modify behavior at runtime. For example, the tim::component::user_bundle component is runtime configurable bc it allows you insert components at runtime. The timing category (tim::category::timing) is another example of a type that is runtime configurable – setting tim::trait::runtime_enabled<tim::category::timing>::set(false); will disable (at runtime) all the types which are part of the timing API. It should be noted that types which satisfy is_runtime_configurable<Tp>::value == true (e.g. tim::component::user_bundle) are not eligible to be inserted into other runtime configurable components; i.e. you cannot insert/add tim::component::user_trace_bundle into tim::component::user_global_bundle, etc. This restriction is primarily due to the significant increase in compile-time that arises from allowing this behavior.

Definition at line 344 of file concepts.hpp.

Member Typedef Documentation

◆ type

template<typename Tp >
using tim::concepts::is_runtime_configurable< Tp >::type = typename is_runtime_configurable ::template have< typename std::remove_cv<Tp>::type>::type

Definition at line 344 of file concepts.hpp.

Member Data Documentation

◆ value

template<typename Tp >
constexpr bool tim::concepts::is_runtime_configurable< Tp >::value = is_runtime_configurable ::template have<typename std::remove_cv<Tp>::type>::value
staticconstexpr

Definition at line 344 of file concepts.hpp.


The documentation for this struct was generated from the following file: