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::auto_base_bundle< Tag, CompT, BundleT > Class Template Reference

Example: auto_base_bundle<Tag, component_bundle<Tag>, auto_bundle<Tag, Types...>> will use Tag + trait::is_available<Tag> or trait::runtime_available<Tag> to disable this bundle at compile-time or run-time, respectively. It will wrap auto-start/stop around component_bundle<Tag, Types...> and use auto_bundle<Tag, Types...> for function signatures. More...

#include "timemory/variadic/auto_base_bundle.hpp"

+ Collaboration diagram for tim::auto_base_bundle< Tag, CompT, BundleT >:

Public Types

using this_type = BundleT
 
using auto_type = this_type
 
using base_type = convert_t< BundleT, CompT >
 
using component_type = typename base_type::component_type
 
using tuple_type = typename component_type::tuple_type
 
using data_type = typename component_type::data_type
 
using sample_type = typename component_type::sample_type
 
using bundle_type = typename component_type::bundle_type
 
using initializer_type = std::function< void(this_type &)>
 
using transient_func_t = utility::transient_function< void(this_type &)>
 
using captured_location_t = typename component_type::captured_location_t
 
using value_type = component_type
 
template<typename T , typename... U>
using quirk_config = tim::variadic::impl::quirk_config< T, convert_t< BundleT, type_list<> >, U... >
 

Public Member Functions

 auto_base_bundle ()
 
template<typename... T>
 auto_base_bundle (string_view_cref_t, quirk::config< T... >, transient_func_t=get_initializer())
 
template<typename... T>
 auto_base_bundle (const captured_location_t &, quirk::config< T... >, transient_func_t=get_initializer())
 
 auto_base_bundle (string_view_cref_t, scope::config=scope::get_default(), bool report_at_exit=settings::destructor_report(), transient_func_t=get_initializer())
 
 auto_base_bundle (const captured_location_t &, scope::config=scope::get_default(), bool report_at_exit=settings::destructor_report(), transient_func_t=get_initializer())
 
 auto_base_bundle (size_t, scope::config=scope::get_default(), bool report_at_exit=settings::destructor_report(), transient_func_t=get_initializer())
 
 auto_base_bundle (component_type &tmp, scope::config=scope::get_default(), bool report_at_exit=settings::destructor_report())
 
template<typename Arg , typename... Args>
 auto_base_bundle (string_view_cref_t, bool store, scope::config _scope, transient_func_t, Arg &&, Args &&...)
 
template<typename Arg , typename... Args>
 auto_base_bundle (const captured_location_t &, bool store, scope::config _scope, transient_func_t, Arg &&, Args &&...)
 
template<typename Arg , typename... Args>
 auto_base_bundle (size_t, bool store, scope::config _scope, transient_func_t, Arg &&, Args &&...)
 
 ~auto_base_bundle ()
 
 auto_base_bundle (const auto_base_bundle &)=default
 
 auto_base_bundle (auto_base_bundle &&)=default
 
auto_base_bundleoperator= (const auto_base_bundle &)=default
 
auto_base_bundleoperator= (auto_base_bundle &&)=default
 
component_typeget_component ()
 
const component_typeget_component () const
 
 operator component_type & ()
 implicit conversion to underlying component_type More...
 
 operator const component_type & () const
 implicit conversion to const ref of underlying component_type More...
 
auto count ()
 count number of active components in an instance More...
 
template<typename FuncT , typename... Args>
decltype(auto) execute (FuncT &&func, Args &&... args)
 when chaining together operations, this enables executing a function inside the chain More...
 
template<typename... Args>
this_typepush (Args &&... args)
 push components into call-stack storage More...
 
template<typename... Args>
this_typepop (Args &&... args)
 pop components off call-stack storage More...
 
template<typename... Args>
this_typemeasure (Args &&... args)
 execute a measurement More...
 
template<typename... Args>
this_typerecord (Args &&... args)
 record some data More...
 
template<typename... Args>
this_typesample (Args &&... args)
 execute a sample More...
 
template<typename... Args>
this_typestart (Args &&... args)
 invoke start member function on all components More...
 
template<typename... Args>
this_typestop (Args &&... args)
 invoke stop member function on all components More...
 
template<typename... Args>
this_typeassemble (Args &&... args)
 invoke assemble member function on all components to determine if measurements can be derived from other components in a bundle More...
 
template<typename... Args>
this_typederive (Args &&... args)
 invoke derive member function on all components to extract measurements from other components in the bundle More...
 
template<typename... Args>
this_typemark (Args &&... args)
 invoke mark member function on all components More...
 
template<typename... Args>
this_typemark_begin (Args &&... args)
 invoke mark_begin member function on all components More...
 
template<typename... Args>
this_typemark_end (Args &&... args)
 invoke mark_begin member function on all components More...
 
template<typename... Args>
this_typestore (Args &&... args)
 invoke store member function on all components More...
 
template<typename... Args>
this_typeaudit (Args &&... args)
 invoke audit member function on all components More...
 
template<typename... Args>
this_typeadd_secondary (Args &&... args)
 add secondary data More...
 
template<typename... Args>
this_typereset (Args &&... args)
 reset the data More...
 
template<typename... Args>
this_typeset_scope (Args &&... args)
 modify the scope of the push operation More...
 
template<typename... Args>
this_typeset_prefix (Args &&... args)
 set the key More...
 
template<template< typename > class OpT, typename... Args>
this_typeinvoke (Args &&... _args)
 invoke the provided operation on all components More...
 
template<typename... Args>
auto get (Args &&... args) const
 invoke get member function on all components to get their data More...
 
template<typename... Args>
auto get_labeled (Args &&... args) const
 invoke get member function on all components to get data labeled with component name More...
 
bool enabled () const
 check whether enabled More...
 
bool report_at_exit () const
 check whether reporting at exit More...
 
bool store () const
 check whether storing data More...
 
int64_t laps () const
 get the number of laps More...
 
uint64_t hash () const
 get the key hash More...
 
std::string key () const
 get the key More...
 
data_typedata ()
 get tuple data More...
 
const data_typedata () const
 get tuple data More...
 
this_typereport_at_exit (bool val)
 write to stdout during destruction More...
 
this_typerekey (string_view_cref_t _key)
 update key More...
 
this_typerekey (captured_location_t _loc)
 update key More...
 
this_typerekey (uint64_t _hash)
 update key More...
 
scope::transient_destructor get_scope_destructor ()
 returns a stack-object for calling stop More...
 
scope::transient_destructor get_scope_destructor (utility::transient_function< void(this_type &)>)
 returns a stack-object for calling some member functions when the scope is exited. More...
 
template<typename Tp , typename... Args>
auto init (Args &&... args)
 
template<typename... Tp, typename... Args>
auto initialize (Args &&... args)
 
template<typename... Tail>
void disable ()
 
template<typename Tp , typename... Args>
decltype(auto) get (Args &&... args)
 
template<typename Tp , typename... Args>
decltype(auto) get (Args &&... args) const
 
void get (void *&ptr, size_t hash) const
 
template<typename T >
auto get_component () -> decltype(std::declval< component_type >().template get_component< T >())
 
decltype(auto) get_data () const
 
this_typeoperator+= (const this_type &rhs)
 
this_typeoperator-= (const this_type &rhs)
 
template<typename Arg , typename... Args>
 auto_base_bundle (string_view_cref_t key, bool store, scope::config _scope, transient_func_t init_func, Arg &&arg, Args &&... args)
 
template<typename Arg , typename... Args>
 auto_base_bundle (const captured_location_t &loc, bool store, scope::config _scope, transient_func_t init_func, Arg &&arg, Args &&... args)
 
template<typename Arg , typename... Args>
 auto_base_bundle (size_t hash, bool store, scope::config _scope, transient_func_t init_func, Arg &&arg, Args &&... args)
 
template<typename... Args>
BundleT & push (Args &&... args)
 
template<typename... Args>
BundleT & pop (Args &&... args)
 
template<typename... Args>
BundleT & measure (Args &&... args)
 
template<typename... Args>
BundleT & record (Args &&... args)
 
template<typename... Args>
BundleT & sample (Args &&... args)
 
template<typename... Args>
BundleT & start (Args &&... args)
 
template<typename... Args>
BundleT & stop (Args &&... args)
 
template<typename... Args>
BundleT & assemble (Args &&... args)
 
template<typename... Args>
BundleT & derive (Args &&... args)
 
template<typename... Args>
BundleT & mark (Args &&... args)
 
template<typename... Args>
BundleT & mark_begin (Args &&... args)
 
template<typename... Args>
BundleT & mark_end (Args &&... args)
 
template<typename... Args>
BundleT & store (Args &&... args)
 
template<typename... Args>
BundleT & audit (Args &&... args)
 
template<typename... Args>
BundleT & add_secondary (Args &&... args)
 
template<typename... Args>
BundleT & reset (Args &&... args)
 
template<typename... Args>
BundleT & set_scope (Args &&... args)
 
template<typename... Args>
BundleT & set_prefix (Args &&... args)
 
template<template< typename > class OpT, typename... Args>
BundleT & invoke (Args &&... _args)
 

Static Public Member Functions

static void init_storage ()
 
static initializer_typeget_initializer ()
 
static initializer_typeget_finalizer ()
 
static constexpr std::size_t size ()
 
static constexpr auto fixed_count ()
 query the number of (compile-time) fixed components More...
 
static constexpr auto optional_count ()
 query the number of (run-time) optional components More...
 

Static Public Attributes

static constexpr bool has_gotcha_v = component_type::has_gotcha_v
 
static constexpr bool has_user_bundle_v = component_type::has_user_bundle_v
 

Protected Member Functions

void internal_init (transient_func_t _init)
 
template<typename Arg , typename... Args>
void internal_init (transient_func_t _init, Arg &&_arg, Args &&... _args)
 

Protected Attributes

bool m_enabled = true
 
bool m_report_at_exit = false
 
component_typem_reference_object = nullptr
 
component_type m_temporary
 

Friends

this_type operator+ (const this_type &lhs, const this_type &rhs)
 
this_type operator- (const this_type &lhs, const this_type &rhs)
 

Detailed Description

template<typename Tag, typename CompT, typename BundleT>
class tim::auto_base_bundle< Tag, CompT, BundleT >

Example: auto_base_bundle<Tag, component_bundle<Tag>, auto_bundle<Tag, Types...>> will use Tag + trait::is_available<Tag> or trait::runtime_available<Tag> to disable this bundle at compile-time or run-time, respectively. It will wrap auto-start/stop around component_bundle<Tag, Types...> and use auto_bundle<Tag, Types...> for function signatures.

Template Parameters
TagUnique identifying type for the bundle which when tim::trait::is_available<Tag> is false at compile-time or tim::trait::runtime_enabled<Tag>() is false at runtime, then none of the components will be collected
CompTThe empty or empty + tag non-auto type which will be wrapped
BundleTDerived data type

Definition at line 61 of file auto_base_bundle.hpp.

Member Typedef Documentation

◆ auto_type

template<typename Tag , typename CompT , typename BundleT >
using tim::auto_base_bundle< Tag, CompT, BundleT >::auto_type = this_type

Definition at line 73 of file auto_base_bundle.hpp.

◆ base_type

template<typename Tag , typename CompT , typename BundleT >
using tim::auto_base_bundle< Tag, CompT, BundleT >::base_type = convert_t<BundleT, CompT>

Definition at line 74 of file auto_base_bundle.hpp.

◆ bundle_type

template<typename Tag , typename CompT , typename BundleT >
using tim::auto_base_bundle< Tag, CompT, BundleT >::bundle_type = typename component_type::bundle_type

Definition at line 79 of file auto_base_bundle.hpp.

◆ captured_location_t

template<typename Tag , typename CompT , typename BundleT >
using tim::auto_base_bundle< Tag, CompT, BundleT >::captured_location_t = typename component_type::captured_location_t

Definition at line 82 of file auto_base_bundle.hpp.

◆ component_type

template<typename Tag , typename CompT , typename BundleT >
using tim::auto_base_bundle< Tag, CompT, BundleT >::component_type = typename base_type::component_type

Definition at line 75 of file auto_base_bundle.hpp.

◆ data_type

template<typename Tag , typename CompT , typename BundleT >
using tim::auto_base_bundle< Tag, CompT, BundleT >::data_type = typename component_type::data_type

Definition at line 77 of file auto_base_bundle.hpp.

◆ initializer_type

template<typename Tag , typename CompT , typename BundleT >
using tim::auto_base_bundle< Tag, CompT, BundleT >::initializer_type = std::function<void(this_type&)>

Definition at line 80 of file auto_base_bundle.hpp.

◆ quirk_config

template<typename Tag , typename CompT , typename BundleT >
template<typename T , typename... U>
using tim::auto_base_bundle< Tag, CompT, BundleT >::quirk_config = tim::variadic::impl::quirk_config<T, convert_t<BundleT, type_list<> >, U...>

Definition at line 90 of file auto_base_bundle.hpp.

◆ sample_type

template<typename Tag , typename CompT , typename BundleT >
using tim::auto_base_bundle< Tag, CompT, BundleT >::sample_type = typename component_type::sample_type

Definition at line 78 of file auto_base_bundle.hpp.

◆ this_type

template<typename Tag , typename CompT , typename BundleT >
using tim::auto_base_bundle< Tag, CompT, BundleT >::this_type = BundleT

Definition at line 72 of file auto_base_bundle.hpp.

◆ transient_func_t

template<typename Tag , typename CompT , typename BundleT >
using tim::auto_base_bundle< Tag, CompT, BundleT >::transient_func_t = utility::transient_function<void(this_type&)>

Definition at line 81 of file auto_base_bundle.hpp.

◆ tuple_type

template<typename Tag , typename CompT , typename BundleT >
using tim::auto_base_bundle< Tag, CompT, BundleT >::tuple_type = typename component_type::tuple_type

Definition at line 76 of file auto_base_bundle.hpp.

◆ value_type

template<typename Tag , typename CompT , typename BundleT >
using tim::auto_base_bundle< Tag, CompT, BundleT >::value_type = component_type

Definition at line 83 of file auto_base_bundle.hpp.

Constructor & Destructor Documentation

◆ auto_base_bundle() [1/15]

template<typename Tag , typename CompT , typename BundleT >
tim::auto_base_bundle< Tag, CompT, BundleT >::auto_base_bundle

Definition at line 36 of file auto_base_bundle.cpp.

38, m_report_at_exit{ false }
39, m_reference_object{ nullptr }
41{
42 if(m_enabled)
43 {
45 IF_CONSTEXPR(!quirk_config<quirk::explicit_start>::value) { m_temporary.start(); }
46 }
47}
#define IF_CONSTEXPR(...)
Definition: language.hpp:72

References IF_CONSTEXPR.

◆ auto_base_bundle() [2/15]

template<typename Tag , typename CompT , typename BundleT >
template<typename... T>
tim::auto_base_bundle< Tag, CompT, BundleT >::auto_base_bundle ( string_view_cref_t  key,
quirk::config< T... >  _config,
transient_func_t  init_func = get_initializer() 
)

Definition at line 53 of file auto_base_bundle.cpp.

57, m_report_at_exit(quirk_config<quirk::exit_report, T...>::value)
58, m_reference_object(nullptr)
59, m_temporary(key, m_enabled, _config)
60{
61 if(m_enabled)
62 {
63 internal_init(init_func);
64 IF_CONSTEXPR(!quirk_config<quirk::explicit_start, T...>::value)
65 {
66 m_temporary.start();
67 }
68 }
69}

References IF_CONSTEXPR.

◆ auto_base_bundle() [3/15]

template<typename Tag , typename CompT , typename BundleT >
template<typename... T>
tim::auto_base_bundle< Tag, CompT, BundleT >::auto_base_bundle ( const captured_location_t loc,
quirk::config< T... >  _config,
transient_func_t  init_func = get_initializer() 
)

Definition at line 75 of file auto_base_bundle.cpp.

79, m_report_at_exit(quirk_config<quirk::exit_report, T...>::value)
80, m_reference_object(nullptr)
81, m_temporary(loc, m_enabled, _config)
82{
83 if(m_enabled)
84 {
85 internal_init(init_func);
86 IF_CONSTEXPR(!quirk_config<quirk::explicit_start, T...>::value)
87 {
88 m_temporary.start();
89 }
90 }
91}

References IF_CONSTEXPR.

◆ auto_base_bundle() [4/15]

template<typename Tag , typename CompT , typename BundleT >
tim::auto_base_bundle< Tag, CompT, BundleT >::auto_base_bundle ( string_view_cref_t  key,
scope::config  _scope = scope::get_default(),
bool  report_at_exit = settings::destructor_report(),
transient_func_t  init_func = get_initializer() 
)
explicit

Definition at line 96 of file auto_base_bundle.cpp.

101, m_report_at_exit(report_at_exit || quirk_config<quirk::exit_report>::value)
102, m_reference_object(nullptr)
103, m_temporary(key, m_enabled, _scope)
104{
105 if(m_enabled)
106 {
107 internal_init(init_func);
108 IF_CONSTEXPR(!quirk_config<quirk::explicit_start>::value) { m_temporary.start(); }
109 }
110}
bool report_at_exit() const
check whether reporting at exit

References IF_CONSTEXPR.

◆ auto_base_bundle() [5/15]

template<typename Tag , typename CompT , typename BundleT >
tim::auto_base_bundle< Tag, CompT, BundleT >::auto_base_bundle ( const captured_location_t loc,
scope::config  _scope = scope::get_default(),
bool  report_at_exit = settings::destructor_report(),
transient_func_t  init_func = get_initializer() 
)
explicit

Definition at line 115 of file auto_base_bundle.cpp.

120, m_report_at_exit(report_at_exit || quirk_config<quirk::exit_report>::value)
121, m_reference_object(nullptr)
122, m_temporary(loc, m_enabled, _scope)
123{
124 if(m_enabled)
125 {
126 internal_init(init_func);
127 IF_CONSTEXPR(!quirk_config<quirk::explicit_start>::value) { m_temporary.start(); }
128 }
129}

References IF_CONSTEXPR.

◆ auto_base_bundle() [6/15]

template<typename Tag , typename CompT , typename BundleT >
tim::auto_base_bundle< Tag, CompT, BundleT >::auto_base_bundle ( size_t  hash,
scope::config  _scope = scope::get_default(),
bool  report_at_exit = settings::destructor_report(),
transient_func_t  init_func = get_initializer() 
)
explicit

Definition at line 134 of file auto_base_bundle.cpp.

138, m_report_at_exit(report_at_exit || quirk_config<quirk::exit_report>::value)
139, m_reference_object(nullptr)
140, m_temporary(hash, m_enabled, _scope)
141{
142 if(m_enabled)
143 {
144 internal_init(init_func);
145 IF_CONSTEXPR(!quirk_config<quirk::explicit_start>::value) { m_temporary.start(); }
146 }
147}

References IF_CONSTEXPR.

◆ auto_base_bundle() [7/15]

template<typename Tag , typename CompT , typename BundleT >
tim::auto_base_bundle< Tag, CompT, BundleT >::auto_base_bundle ( component_type tmp,
scope::config  _scope = scope::get_default(),
bool  report_at_exit = settings::destructor_report() 
)
explicit

Definition at line 152 of file auto_base_bundle.cpp.

155: m_report_at_exit(report_at_exit || quirk_config<quirk::exit_report>::value)
156, m_reference_object(&tmp)
157, m_temporary(component_type(tmp.clone(true, _scope)))
158{
159 if(m_enabled)
160 {
161 IF_CONSTEXPR(!quirk_config<quirk::explicit_start>::value) { m_temporary.start(); }
162 }
163}
typename base_type::component_type component_type

References IF_CONSTEXPR.

◆ auto_base_bundle() [8/15]

template<typename Tag , typename CompT , typename BundleT >
template<typename Arg , typename... Args>
tim::auto_base_bundle< Tag, CompT, BundleT >::auto_base_bundle ( string_view_cref_t  ,
bool  store,
scope::config  _scope,
transient_func_t  ,
Arg &&  ,
Args &&  ... 
)

◆ auto_base_bundle() [9/15]

template<typename Tag , typename CompT , typename BundleT >
template<typename Arg , typename... Args>
tim::auto_base_bundle< Tag, CompT, BundleT >::auto_base_bundle ( const captured_location_t ,
bool  store,
scope::config  _scope,
transient_func_t  ,
Arg &&  ,
Args &&  ... 
)

◆ auto_base_bundle() [10/15]

template<typename Tag , typename CompT , typename BundleT >
template<typename Arg , typename... Args>
tim::auto_base_bundle< Tag, CompT, BundleT >::auto_base_bundle ( size_t  ,
bool  store,
scope::config  _scope,
transient_func_t  ,
Arg &&  ,
Args &&  ... 
)

◆ ~auto_base_bundle()

template<typename Tag , typename CompT , typename BundleT >
tim::auto_base_bundle< Tag, CompT, BundleT >::~auto_base_bundle

Definition at line 231 of file auto_base_bundle.cpp.

232{
233 IF_CONSTEXPR(!quirk_config<quirk::explicit_stop>::value)
234 {
235 if(m_enabled)
236 {
237 // stop the timer
238 m_temporary.stop();
239
240 // report timer at exit
242 {
243 std::stringstream ss;
244 ss << m_temporary;
245 if(ss.str().length() > 0)
246 std::cout << ss.str() << std::endl;
247 }
248
250 {
252 }
253 }
254 }
255}

References IF_CONSTEXPR.

◆ auto_base_bundle() [11/15]

template<typename Tag , typename CompT , typename BundleT >
tim::auto_base_bundle< Tag, CompT, BundleT >::auto_base_bundle ( const auto_base_bundle< Tag, CompT, BundleT > &  )
default

◆ auto_base_bundle() [12/15]

template<typename Tag , typename CompT , typename BundleT >
tim::auto_base_bundle< Tag, CompT, BundleT >::auto_base_bundle ( auto_base_bundle< Tag, CompT, BundleT > &&  )
default

◆ auto_base_bundle() [13/15]

template<typename Tag , typename CompT , typename BundleT >
template<typename Arg , typename... Args>
tim::auto_base_bundle< Tag, CompT, BundleT >::auto_base_bundle ( string_view_cref_t  key,
bool  store,
scope::config  _scope,
transient_func_t  init_func,
Arg &&  arg,
Args &&...  args 
)

Definition at line 169 of file auto_base_bundle.cpp.

175 quirk_config<quirk::exit_report>::value)
176, m_reference_object(nullptr)
177, m_temporary(key, m_enabled, _scope)
178{
179 if(m_enabled)
180 {
181 internal_init(init_func, std::forward<Arg>(arg), std::forward<Args>(args)...);
182 IF_CONSTEXPR(!quirk_config<quirk::explicit_start>::value) { m_temporary.start(); }
183 }
184}
bool store() const
check whether storing data
destructor_report
Definition: settings.cpp:1781

References IF_CONSTEXPR.

◆ auto_base_bundle() [14/15]

template<typename Tag , typename CompT , typename BundleT >
template<typename Arg , typename... Args>
tim::auto_base_bundle< Tag, CompT, BundleT >::auto_base_bundle ( const captured_location_t loc,
bool  store,
scope::config  _scope,
transient_func_t  init_func,
Arg &&  arg,
Args &&...  args 
)

Definition at line 190 of file auto_base_bundle.cpp.

196 quirk_config<quirk::exit_report>::value)
197, m_reference_object(nullptr)
198, m_temporary(loc, m_enabled, _scope)
199{
200 if(m_enabled)
201 {
202 internal_init(init_func, std::forward<Arg>(arg), std::forward<Args>(args)...);
203 IF_CONSTEXPR(!quirk_config<quirk::explicit_start>::value) { m_temporary.start(); }
204 }
205}

References IF_CONSTEXPR.

◆ auto_base_bundle() [15/15]

template<typename Tag , typename CompT , typename BundleT >
template<typename Arg , typename... Args>
tim::auto_base_bundle< Tag, CompT, BundleT >::auto_base_bundle ( size_t  hash,
bool  store,
scope::config  _scope,
transient_func_t  init_func,
Arg &&  arg,
Args &&...  args 
)

Definition at line 211 of file auto_base_bundle.cpp.

217 quirk_config<quirk::exit_report>::value)
218, m_reference_object(nullptr)
219, m_temporary(hash, m_enabled, _scope)
220{
221 if(m_enabled)
222 {
223 internal_init(init_func, std::forward<Arg>(arg), std::forward<Args>(args)...);
224 IF_CONSTEXPR(!quirk_config<quirk::explicit_start>::value) { m_temporary.start(); }
225 }
226}

References IF_CONSTEXPR.

Member Function Documentation

◆ add_secondary() [1/2]

template<typename Tag , typename CompT , typename BundleT >
template<typename... Args>
BundleT & tim::auto_base_bundle< Tag, CompT, BundleT >::add_secondary ( Args &&...  args)

Definition at line 387 of file auto_base_bundle.cpp.

388{
389 m_temporary.add_secondary(std::forward<Args>(args)...);
390 return get_this_type();
391}

◆ add_secondary() [2/2]

template<typename Tag , typename CompT , typename BundleT >
template<typename... Args>
this_type & tim::auto_base_bundle< Tag, CompT, BundleT >::add_secondary ( Args &&...  args)

add secondary data

◆ assemble() [1/2]

template<typename Tag , typename CompT , typename BundleT >
template<typename... Args>
BundleT & tim::auto_base_bundle< Tag, CompT, BundleT >::assemble ( Args &&...  args)

Definition at line 324 of file auto_base_bundle.cpp.

325{
326 m_temporary.assemble(std::forward<Args>(args)...);
327 return get_this_type();
328}

◆ assemble() [2/2]

template<typename Tag , typename CompT , typename BundleT >
template<typename... Args>
this_type & tim::auto_base_bundle< Tag, CompT, BundleT >::assemble ( Args &&...  args)

invoke assemble member function on all components to determine if measurements can be derived from other components in a bundle

◆ audit() [1/2]

template<typename Tag , typename CompT , typename BundleT >
template<typename... Args>
BundleT & tim::auto_base_bundle< Tag, CompT, BundleT >::audit ( Args &&...  args)

Definition at line 378 of file auto_base_bundle.cpp.

379{
380 m_temporary.audit(std::forward<Args>(args)...);
381 return get_this_type();
382}

◆ audit() [2/2]

template<typename Tag , typename CompT , typename BundleT >
template<typename... Args>
this_type & tim::auto_base_bundle< Tag, CompT, BundleT >::audit ( Args &&...  args)

invoke audit member function on all components

◆ count()

template<typename Tag , typename CompT , typename BundleT >
auto tim::auto_base_bundle< Tag, CompT, BundleT >::count ( )
inline

count number of active components in an instance

Definition at line 173 of file auto_base_bundle.hpp.

173{ return (m_enabled) ? m_temporary.count() : 0; }

◆ data() [1/2]

template<typename Tag , typename CompT , typename BundleT >
auto_base_bundle< Tag, CompT, BundleT >::data_type & tim::auto_base_bundle< Tag, CompT, BundleT >::data

get tuple data

Definition at line 473 of file auto_base_bundle.cpp.

474{
475 return m_temporary.data();
476}

◆ data() [2/2]

template<typename Tag , typename CompT , typename BundleT >
const auto_base_bundle< Tag, CompT, BundleT >::data_type & tim::auto_base_bundle< Tag, CompT, BundleT >::data

get tuple data

Definition at line 480 of file auto_base_bundle.cpp.

481{
482 return m_temporary.data();
483}

◆ derive() [1/2]

template<typename Tag , typename CompT , typename BundleT >
template<typename... Args>
BundleT & tim::auto_base_bundle< Tag, CompT, BundleT >::derive ( Args &&...  args)

Definition at line 333 of file auto_base_bundle.cpp.

334{
335 m_temporary.derive(std::forward<Args>(args)...);
336 return get_this_type();
337}

◆ derive() [2/2]

template<typename Tag , typename CompT , typename BundleT >
template<typename... Args>
this_type & tim::auto_base_bundle< Tag, CompT, BundleT >::derive ( Args &&...  args)

invoke derive member function on all components to extract measurements from other components in the bundle

◆ disable()

template<typename Tag , typename CompT , typename BundleT >
template<typename... Tail>
void tim::auto_base_bundle< Tag, CompT, BundleT >::disable

Definition at line 538 of file auto_base_bundle.cpp.

539{
540 m_temporary.template disable<Tail...>();
541}

◆ enabled()

template<typename Tag , typename CompT , typename BundleT >
bool tim::auto_base_bundle< Tag, CompT, BundleT >::enabled

check whether enabled

Definition at line 431 of file auto_base_bundle.cpp.

432{
433 return m_enabled;
434}

◆ execute()

template<typename Tag , typename CompT , typename BundleT >
template<typename FuncT , typename... Args>
decltype(auto) tim::auto_base_bundle< Tag, CompT, BundleT >::execute ( FuncT &&  func,
Args &&...  args 
)
inline

when chaining together operations, this enables executing a function inside the chain

Definition at line 177 of file auto_base_bundle.hpp.

178 {
179 return mpl::execute(static_cast<this_type&>(*this),
180 std::forward<FuncT>(func)(std::forward<Args>(args)...));
181 }
auto execute(BundleT &&_bundle, FuncT &&_func, Args &&... _args, enable_if_t< is_invocable< FuncT, Args... >::value &&!std::is_void< std::result_of_t< FuncT(Args...)> >::value, int >)

References tim::mpl::execute().

◆ fixed_count()

template<typename Tag , typename CompT , typename BundleT >
static constexpr auto tim::auto_base_bundle< Tag, CompT, BundleT >::fixed_count ( )
inlinestaticconstexpr

query the number of (compile-time) fixed components

Definition at line 169 of file auto_base_bundle.hpp.

169{ return component_type::fixed_count(); }

◆ get() [1/4]

template<typename Tag , typename CompT , typename BundleT >
template<typename Tp , typename... Args>
decltype(auto) tim::auto_base_bundle< Tag, CompT, BundleT >::get ( Args &&...  args)
inline

Definition at line 336 of file auto_base_bundle.hpp.

337 {
338 return m_temporary.template get<Tp>(std::forward<Args>(args)...);
339 }

◆ get() [2/4]

template<typename Tag , typename CompT , typename BundleT >
template<typename... Args>
auto tim::auto_base_bundle< Tag, CompT, BundleT >::get ( Args &&...  args) const
inline

invoke get member function on all components to get their data

Definition at line 263 of file auto_base_bundle.hpp.

264 {
265 return m_temporary.get(std::forward<Args>(args)...);
266 }

◆ get() [3/4]

template<typename Tag , typename CompT , typename BundleT >
template<typename Tp , typename... Args>
decltype(auto) tim::auto_base_bundle< Tag, CompT, BundleT >::get ( Args &&...  args) const
inline

Definition at line 342 of file auto_base_bundle.hpp.

343 {
344 return m_temporary.template get<Tp>(std::forward<Args>(args)...);
345 }

◆ get() [4/4]

template<typename Tag , typename CompT , typename BundleT >
void tim::auto_base_bundle< Tag, CompT, BundleT >::get ( void *&  ptr,
size_t  hash 
) const
inline

Definition at line 347 of file auto_base_bundle.hpp.

347{ m_temporary.get(ptr, hash); }

◆ get_component() [1/3]

template<typename Tag , typename CompT , typename BundleT >
component_type & tim::auto_base_bundle< Tag, CompT, BundleT >::get_component ( )
inline

Definition at line 160 of file auto_base_bundle.hpp.

160{ return m_temporary; }

◆ get_component() [2/3]

template<typename Tag , typename CompT , typename BundleT >
template<typename T >
auto tim::auto_base_bundle< Tag, CompT, BundleT >::get_component ( ) -> decltype(std::declval<component_type>().template get_component<T>())
inline

Definition at line 350 of file auto_base_bundle.hpp.

352 {
353 return m_temporary.template get_component<T>();
354 }

◆ get_component() [3/3]

template<typename Tag , typename CompT , typename BundleT >
const component_type & tim::auto_base_bundle< Tag, CompT, BundleT >::get_component ( ) const
inline

Definition at line 161 of file auto_base_bundle.hpp.

161{ return m_temporary; }

◆ get_data()

template<typename Tag , typename CompT , typename BundleT >
decltype(auto) tim::auto_base_bundle< Tag, CompT, BundleT >::get_data ( ) const
inline

Definition at line 356 of file auto_base_bundle.hpp.

356{ return m_temporary.get_data(); }

◆ get_finalizer()

template<typename Tag , typename CompT , typename BundleT >
static initializer_type & tim::auto_base_bundle< Tag, CompT, BundleT >::get_finalizer ( )
inlinestatic

Definition at line 103 of file auto_base_bundle.hpp.

104 {
105 static initializer_type _instance = [](this_type&) {};
106 return _instance;
107 }
std::function< void(this_type &)> initializer_type

◆ get_initializer()

template<typename Tag , typename CompT , typename BundleT >
static initializer_type & tim::auto_base_bundle< Tag, CompT, BundleT >::get_initializer ( )
inlinestatic

Definition at line 97 of file auto_base_bundle.hpp.

98 {
99 static initializer_type _instance = [](this_type&) {};
100 return _instance;
101 }

◆ get_labeled()

template<typename Tag , typename CompT , typename BundleT >
template<typename... Args>
auto tim::auto_base_bundle< Tag, CompT, BundleT >::get_labeled ( Args &&...  args) const
inline

invoke get member function on all components to get data labeled with component name

Definition at line 271 of file auto_base_bundle.hpp.

272 {
273 return m_temporary.get_labeled(std::forward<Args>(args)...);
274 }

◆ get_scope_destructor() [1/2]

template<typename Tag , typename CompT , typename BundleT >
scope::transient_destructor tim::auto_base_bundle< Tag, CompT, BundleT >::get_scope_destructor

returns a stack-object for calling stop

Definition at line 519 of file auto_base_bundle.cpp.

520{
521 return scope::transient_destructor{ [&]() { this->stop(); } };
522}
this_type & stop(Args &&... args)
invoke stop member function on all components

References tim::invoke::stop().

◆ get_scope_destructor() [2/2]

template<typename Tag , typename CompT , typename BundleT >
scope::transient_destructor tim::auto_base_bundle< Tag, CompT, BundleT >::get_scope_destructor ( utility::transient_function< void(this_type &)>  _func)

returns a stack-object for calling some member functions when the scope is exited.

Definition at line 526 of file auto_base_bundle.cpp.

528{
529 return scope::transient_destructor{ [&, _func]() {
530 _func(static_cast<this_type&>(*this));
531 } };
532}

◆ hash()

template<typename Tag , typename CompT , typename BundleT >
uint64_t tim::auto_base_bundle< Tag, CompT, BundleT >::hash

get the key hash

Definition at line 459 of file auto_base_bundle.cpp.

460{
461 return m_temporary.hash();
462}

◆ init()

template<typename Tag , typename CompT , typename BundleT >
template<typename Tp , typename... Args>
auto tim::auto_base_bundle< Tag, CompT, BundleT >::init ( Args &&...  args)
inline

Definition at line 321 of file auto_base_bundle.hpp.

322 {
323 m_temporary.template init<Tp>(std::forward<Args>(args)...);
324 }

◆ init_storage()

template<typename Tag , typename CompT , typename BundleT >
static void tim::auto_base_bundle< Tag, CompT, BundleT >::init_storage ( )
inlinestatic

Definition at line 95 of file auto_base_bundle.hpp.

95{ component_type::init_storage(); }

◆ initialize()

template<typename Tag , typename CompT , typename BundleT >
template<typename... Tp, typename... Args>
auto tim::auto_base_bundle< Tag, CompT, BundleT >::initialize ( Args &&...  args)
inline

Definition at line 327 of file auto_base_bundle.hpp.

328 {
329 m_temporary.template initialize<Tp...>(std::forward<Args>(args)...);
330 }

References tim::initialize().

◆ internal_init() [1/2]

template<typename Tag , typename CompT , typename BundleT >
void tim::auto_base_bundle< Tag, CompT, BundleT >::internal_init ( transient_func_t  _init)
protected

Definition at line 545 of file auto_base_bundle.cpp.

546{
547 if(m_enabled)
548 _init(static_cast<this_type&>(*this));
549}

◆ internal_init() [2/2]

template<typename Tag , typename CompT , typename BundleT >
template<typename Arg , typename... Args>
void tim::auto_base_bundle< Tag, CompT, BundleT >::internal_init ( transient_func_t  _init,
Arg &&  _arg,
Args &&...  _args 
)
protected

Definition at line 554 of file auto_base_bundle.cpp.

556{
557 if(m_enabled)
558 {
559 _init(static_cast<this_type&>(*this));
560 m_temporary.construct(std::forward<Arg>(_arg), std::forward<Args>(_args)...);
561 }
562}
std::array< char *, 4 > _args

References tim::_args.

◆ invoke() [1/2]

template<typename Tag , typename CompT , typename BundleT >
template<template< typename > class OpT, typename... Args>
BundleT & tim::auto_base_bundle< Tag, CompT, BundleT >::invoke ( Args &&...  _args)

Definition at line 423 of file auto_base_bundle.cpp.

424{
425 m_temporary.template invoke<OpT>(std::forward<Args>(_args)...);
426 return get_this_type();
427}

References tim::_args.

◆ invoke() [2/2]

template<typename Tag , typename CompT , typename BundleT >
template<template< typename > class OpT, typename... Args>
this_type & tim::auto_base_bundle< Tag, CompT, BundleT >::invoke ( Args &&...  _args)

invoke the provided operation on all components

◆ key()

template<typename Tag , typename CompT , typename BundleT >
std::string tim::auto_base_bundle< Tag, CompT, BundleT >::key

get the key

Definition at line 466 of file auto_base_bundle.cpp.

467{
468 return m_temporary.key();
469}

◆ laps()

template<typename Tag , typename CompT , typename BundleT >
int64_t tim::auto_base_bundle< Tag, CompT, BundleT >::laps

get the number of laps

Definition at line 452 of file auto_base_bundle.cpp.

453{
454 return m_temporary.laps();
455}

◆ mark() [1/2]

template<typename Tag , typename CompT , typename BundleT >
template<typename... Args>
BundleT & tim::auto_base_bundle< Tag, CompT, BundleT >::mark ( Args &&...  args)

Definition at line 342 of file auto_base_bundle.cpp.

343{
344 m_temporary.mark(std::forward<Args>(args)...);
345 return get_this_type();
346}

◆ mark() [2/2]

template<typename Tag , typename CompT , typename BundleT >
template<typename... Args>
this_type & tim::auto_base_bundle< Tag, CompT, BundleT >::mark ( Args &&...  args)

invoke mark member function on all components

◆ mark_begin() [1/2]

template<typename Tag , typename CompT , typename BundleT >
template<typename... Args>
BundleT & tim::auto_base_bundle< Tag, CompT, BundleT >::mark_begin ( Args &&...  args)

Definition at line 351 of file auto_base_bundle.cpp.

352{
353 m_temporary.mark_begin(std::forward<Args>(args)...);
354 return get_this_type();
355}

◆ mark_begin() [2/2]

template<typename Tag , typename CompT , typename BundleT >
template<typename... Args>
this_type & tim::auto_base_bundle< Tag, CompT, BundleT >::mark_begin ( Args &&...  args)

invoke mark_begin member function on all components

◆ mark_end() [1/2]

template<typename Tag , typename CompT , typename BundleT >
template<typename... Args>
BundleT & tim::auto_base_bundle< Tag, CompT, BundleT >::mark_end ( Args &&...  args)

Definition at line 360 of file auto_base_bundle.cpp.

361{
362 m_temporary.mark_end(std::forward<Args>(args)...);
363 return get_this_type();
364}

◆ mark_end() [2/2]

template<typename Tag , typename CompT , typename BundleT >
template<typename... Args>
this_type & tim::auto_base_bundle< Tag, CompT, BundleT >::mark_end ( Args &&...  args)

invoke mark_begin member function on all components

◆ measure() [1/2]

template<typename Tag , typename CompT , typename BundleT >
template<typename... Args>
BundleT & tim::auto_base_bundle< Tag, CompT, BundleT >::measure ( Args &&...  args)

Definition at line 279 of file auto_base_bundle.cpp.

280{
281 m_temporary.measure(std::forward<Args>(args)...);
282 return get_this_type();
283}

◆ measure() [2/2]

template<typename Tag , typename CompT , typename BundleT >
template<typename... Args>
this_type & tim::auto_base_bundle< Tag, CompT, BundleT >::measure ( Args &&...  args)

execute a measurement

◆ operator component_type &()

template<typename Tag , typename CompT , typename BundleT >
tim::auto_base_bundle< Tag, CompT, BundleT >::operator component_type & ( )
inline

implicit conversion to underlying component_type

Definition at line 164 of file auto_base_bundle.hpp.

164{ return m_temporary; }

◆ operator const component_type &()

template<typename Tag , typename CompT , typename BundleT >
tim::auto_base_bundle< Tag, CompT, BundleT >::operator const component_type & ( ) const
inline

implicit conversion to const ref of underlying component_type

Definition at line 166 of file auto_base_bundle.hpp.

166{ return m_temporary; }

◆ operator+=()

template<typename Tag , typename CompT , typename BundleT >
this_type & tim::auto_base_bundle< Tag, CompT, BundleT >::operator+= ( const this_type rhs)
inline

Definition at line 358 of file auto_base_bundle.hpp.

359 {
360 m_temporary += rhs.m_temporary;
361 return static_cast<this_type&>(*this);
362 }

◆ operator-=()

template<typename Tag , typename CompT , typename BundleT >
this_type & tim::auto_base_bundle< Tag, CompT, BundleT >::operator-= ( const this_type rhs)
inline

Definition at line 364 of file auto_base_bundle.hpp.

365 {
366 m_temporary -= rhs.m_temporary;
367 return static_cast<this_type&>(*this);
368 }

◆ operator=() [1/2]

template<typename Tag , typename CompT , typename BundleT >
auto_base_bundle & tim::auto_base_bundle< Tag, CompT, BundleT >::operator= ( auto_base_bundle< Tag, CompT, BundleT > &&  )
default

◆ operator=() [2/2]

template<typename Tag , typename CompT , typename BundleT >
auto_base_bundle & tim::auto_base_bundle< Tag, CompT, BundleT >::operator= ( const auto_base_bundle< Tag, CompT, BundleT > &  )
default

◆ optional_count()

template<typename Tag , typename CompT , typename BundleT >
static constexpr auto tim::auto_base_bundle< Tag, CompT, BundleT >::optional_count ( )
inlinestaticconstexpr

query the number of (run-time) optional components

Definition at line 171 of file auto_base_bundle.hpp.

171{ return component_type::optional_count(); }

◆ pop() [1/2]

template<typename Tag , typename CompT , typename BundleT >
template<typename... Args>
BundleT & tim::auto_base_bundle< Tag, CompT, BundleT >::pop ( Args &&...  args)

Definition at line 270 of file auto_base_bundle.cpp.

271{
272 m_temporary.pop(std::forward<Args>(args)...);
273 return get_this_type();
274}

◆ pop() [2/2]

template<typename Tag , typename CompT , typename BundleT >
template<typename... Args>
this_type & tim::auto_base_bundle< Tag, CompT, BundleT >::pop ( Args &&...  args)

pop components off call-stack storage

◆ push() [1/2]

template<typename Tag , typename CompT , typename BundleT >
template<typename... Args>
BundleT & tim::auto_base_bundle< Tag, CompT, BundleT >::push ( Args &&...  args)

Definition at line 261 of file auto_base_bundle.cpp.

262{
263 m_temporary.push(std::forward<Args>(args)...);
264 return get_this_type();
265}

◆ push() [2/2]

template<typename Tag , typename CompT , typename BundleT >
template<typename... Args>
this_type & tim::auto_base_bundle< Tag, CompT, BundleT >::push ( Args &&...  args)

push components into call-stack storage

◆ record() [1/2]

template<typename Tag , typename CompT , typename BundleT >
template<typename... Args>
BundleT & tim::auto_base_bundle< Tag, CompT, BundleT >::record ( Args &&...  args)

Definition at line 288 of file auto_base_bundle.cpp.

289{
290 m_temporary.record(std::forward<Args>(args)...);
291 return get_this_type();
292}

◆ record() [2/2]

template<typename Tag , typename CompT , typename BundleT >
template<typename... Args>
this_type & tim::auto_base_bundle< Tag, CompT, BundleT >::record ( Args &&...  args)

record some data

◆ rekey() [1/3]

template<typename Tag , typename CompT , typename BundleT >
BundleT & tim::auto_base_bundle< Tag, CompT, BundleT >::rekey ( captured_location_t  _loc)

update key

Definition at line 503 of file auto_base_bundle.cpp.

504{
505 m_temporary.rekey(_loc);
506 return get_this_type();
507}

◆ rekey() [2/3]

template<typename Tag , typename CompT , typename BundleT >
BundleT & tim::auto_base_bundle< Tag, CompT, BundleT >::rekey ( string_view_cref_t  _key)

update key

Definition at line 495 of file auto_base_bundle.cpp.

496{
497 m_temporary.rekey(_key);
498 return get_this_type();
499}

◆ rekey() [3/3]

template<typename Tag , typename CompT , typename BundleT >
BundleT & tim::auto_base_bundle< Tag, CompT, BundleT >::rekey ( uint64_t  _hash)

update key

Definition at line 511 of file auto_base_bundle.cpp.

512{
513 m_temporary.rekey(_hash);
514 return get_this_type();
515}

◆ report_at_exit() [1/2]

template<typename Tag , typename CompT , typename BundleT >
bool tim::auto_base_bundle< Tag, CompT, BundleT >::report_at_exit

check whether reporting at exit

Definition at line 438 of file auto_base_bundle.cpp.

439{
440 return m_report_at_exit;
441}

◆ report_at_exit() [2/2]

template<typename Tag , typename CompT , typename BundleT >
BundleT & tim::auto_base_bundle< Tag, CompT, BundleT >::report_at_exit ( bool  val)

write to stdout during destruction

Definition at line 487 of file auto_base_bundle.cpp.

488{
489 m_report_at_exit = val;
490 return get_this_type();
491}

◆ reset() [1/2]

template<typename Tag , typename CompT , typename BundleT >
template<typename... Args>
BundleT & tim::auto_base_bundle< Tag, CompT, BundleT >::reset ( Args &&...  args)

Definition at line 396 of file auto_base_bundle.cpp.

397{
398 m_temporary.reset(std::forward<Args>(args)...);
399 return get_this_type();
400}

◆ reset() [2/2]

template<typename Tag , typename CompT , typename BundleT >
template<typename... Args>
this_type & tim::auto_base_bundle< Tag, CompT, BundleT >::reset ( Args &&...  args)

reset the data

◆ sample() [1/2]

template<typename Tag , typename CompT , typename BundleT >
template<typename... Args>
BundleT & tim::auto_base_bundle< Tag, CompT, BundleT >::sample ( Args &&...  args)

Definition at line 297 of file auto_base_bundle.cpp.

298{
299 m_temporary.sample(std::forward<Args>(args)...);
300 return get_this_type();
301}

◆ sample() [2/2]

template<typename Tag , typename CompT , typename BundleT >
template<typename... Args>
this_type & tim::auto_base_bundle< Tag, CompT, BundleT >::sample ( Args &&...  args)

execute a sample

◆ set_prefix() [1/2]

template<typename Tag , typename CompT , typename BundleT >
template<typename... Args>
BundleT & tim::auto_base_bundle< Tag, CompT, BundleT >::set_prefix ( Args &&...  args)

Definition at line 414 of file auto_base_bundle.cpp.

415{
416 m_temporary.set_prefix(std::forward<Args>(args)...);
417 return get_this_type();
418}

◆ set_prefix() [2/2]

template<typename Tag , typename CompT , typename BundleT >
template<typename... Args>
this_type & tim::auto_base_bundle< Tag, CompT, BundleT >::set_prefix ( Args &&...  args)

set the key

◆ set_scope() [1/2]

template<typename Tag , typename CompT , typename BundleT >
template<typename... Args>
BundleT & tim::auto_base_bundle< Tag, CompT, BundleT >::set_scope ( Args &&...  args)

Definition at line 405 of file auto_base_bundle.cpp.

406{
407 m_temporary.set_scope(std::forward<Args>(args)...);
408 return get_this_type();
409}

◆ set_scope() [2/2]

template<typename Tag , typename CompT , typename BundleT >
template<typename... Args>
this_type & tim::auto_base_bundle< Tag, CompT, BundleT >::set_scope ( Args &&...  args)

modify the scope of the push operation

◆ size()

template<typename Tag , typename CompT , typename BundleT >
static constexpr std::size_t tim::auto_base_bundle< Tag, CompT, BundleT >::size ( )
inlinestaticconstexpr

Definition at line 156 of file auto_base_bundle.hpp.

156{ return component_type::size(); }

◆ start() [1/2]

template<typename Tag , typename CompT , typename BundleT >
template<typename... Args>
BundleT & tim::auto_base_bundle< Tag, CompT, BundleT >::start ( Args &&...  args)

Definition at line 306 of file auto_base_bundle.cpp.

307{
308 m_temporary.start(std::forward<Args>(args)...);
309 return get_this_type();
310}

◆ start() [2/2]

template<typename Tag , typename CompT , typename BundleT >
template<typename... Args>
this_type & tim::auto_base_bundle< Tag, CompT, BundleT >::start ( Args &&...  args)

invoke start member function on all components

◆ stop() [1/2]

template<typename Tag , typename CompT , typename BundleT >
template<typename... Args>
BundleT & tim::auto_base_bundle< Tag, CompT, BundleT >::stop ( Args &&...  args)

Definition at line 315 of file auto_base_bundle.cpp.

316{
317 m_temporary.stop(std::forward<Args>(args)...);
318 return get_this_type();
319}

◆ stop() [2/2]

template<typename Tag , typename CompT , typename BundleT >
template<typename... Args>
this_type & tim::auto_base_bundle< Tag, CompT, BundleT >::stop ( Args &&...  args)

invoke stop member function on all components

◆ store() [1/3]

template<typename Tag , typename CompT , typename BundleT >
bool tim::auto_base_bundle< Tag, CompT, BundleT >::store

check whether storing data

Definition at line 445 of file auto_base_bundle.cpp.

446{
447 return m_temporary.store();
448}

◆ store() [2/3]

template<typename Tag , typename CompT , typename BundleT >
template<typename... Args>
BundleT & tim::auto_base_bundle< Tag, CompT, BundleT >::store ( Args &&...  args)

Definition at line 369 of file auto_base_bundle.cpp.

370{
371 m_temporary.store(std::forward<Args>(args)...);
372 return get_this_type();
373}

◆ store() [3/3]

template<typename Tag , typename CompT , typename BundleT >
template<typename... Args>
this_type & tim::auto_base_bundle< Tag, CompT, BundleT >::store ( Args &&...  args)

invoke store member function on all components

Friends And Related Function Documentation

◆ operator+

template<typename Tag , typename CompT , typename BundleT >
this_type operator+ ( const this_type lhs,
const this_type rhs 
)
friend

Definition at line 370 of file auto_base_bundle.hpp.

371 {
372 return this_type{ lhs } += rhs;
373 }

◆ operator-

template<typename Tag , typename CompT , typename BundleT >
this_type operator- ( const this_type lhs,
const this_type rhs 
)
friend

Definition at line 375 of file auto_base_bundle.hpp.

376 {
377 return this_type{ lhs } -= rhs;
378 }

Member Data Documentation

◆ has_gotcha_v

template<typename Tag , typename CompT , typename BundleT >
constexpr bool tim::auto_base_bundle< Tag, CompT, BundleT >::has_gotcha_v = component_type::has_gotcha_v
staticconstexpr

Definition at line 85 of file auto_base_bundle.hpp.

◆ has_user_bundle_v

template<typename Tag , typename CompT , typename BundleT >
constexpr bool tim::auto_base_bundle< Tag, CompT, BundleT >::has_user_bundle_v = component_type::has_user_bundle_v
staticconstexpr

Definition at line 86 of file auto_base_bundle.hpp.

◆ m_enabled

template<typename Tag , typename CompT , typename BundleT >
bool tim::auto_base_bundle< Tag, CompT, BundleT >::m_enabled = true
protected

Definition at line 387 of file auto_base_bundle.hpp.

◆ m_reference_object

template<typename Tag , typename CompT , typename BundleT >
component_type* tim::auto_base_bundle< Tag, CompT, BundleT >::m_reference_object = nullptr
protected

Definition at line 389 of file auto_base_bundle.hpp.

◆ m_report_at_exit

template<typename Tag , typename CompT , typename BundleT >
bool tim::auto_base_bundle< Tag, CompT, BundleT >::m_report_at_exit = false
protected

Definition at line 388 of file auto_base_bundle.hpp.

◆ m_temporary

template<typename Tag , typename CompT , typename BundleT >
component_type tim::auto_base_bundle< Tag, CompT, BundleT >::m_temporary
protected

Definition at line 390 of file auto_base_bundle.hpp.


The documentation for this class was generated from the following files: