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.
|
This is a variadic component wrapper which provides the least amount of runtime and compilation overhead. More...
#include "timemory/variadic/lightweight_tuple.hpp"
Public Types | |
using | captured_location_t = source_location::captured |
using | this_type = lightweight_tuple< Types... > |
using | type_list_type = type_list< Types... > |
using | data_type = typename bundle_type::data_type |
using | tuple_type = typename bundle_type::tuple_type |
using | sample_type = typename bundle_type::sample_type |
using | reference_type = typename bundle_type::reference_type |
using | user_bundle_types = typename bundle_type::user_bundle_types |
using | size_type = typename bundle_type::size_type |
using | string_t = typename bundle_type::string_t |
template<template< typename > class Op, typename Tuple = impl_type> | |
using | operation_t = typename bundle_type::template generic_operation< Op, Tuple >::type |
template<template< typename > class Op, typename Tuple = impl_type> | |
using | custom_operation_t = typename bundle_type::template custom_operation< Op, Tuple >::type |
using | auto_type = mpl::append_type_t< quirk::auto_start, this_type > |
using | component_type = mpl::remove_type_t< quirk::auto_start, this_type > |
using | type = convert_t< tuple_type, lightweight_tuple<> > |
using | initializer_type = std::function< void(this_type &)> |
using | transient_func_t = utility::transient_function< void(this_type &)> |
template<typename T , typename... U> | |
using | quirk_config = tim::variadic::impl::quirk_config< T, type_list< Types... >, U... > |
Public Member Functions | |
lightweight_tuple ()=default | |
template<typename... T> | |
lightweight_tuple (const string_t &key, quirk::config< T... >={}, transient_func_t=get_initializer()) | |
template<typename... T> | |
lightweight_tuple (const captured_location_t &loc, quirk::config< T... >={}, transient_func_t=get_initializer()) | |
template<typename... T> | |
lightweight_tuple (size_t _hash, quirk::config< T... >={}, transient_func_t=get_initializer()) | |
lightweight_tuple (size_t _hash, scope::config _scope, transient_func_t=get_initializer()) | |
lightweight_tuple (const string_t &key, scope::config _scope, transient_func_t=get_initializer()) | |
lightweight_tuple (const captured_location_t &loc, scope::config _scope, transient_func_t=get_initializer()) | |
~lightweight_tuple () | |
lightweight_tuple (const lightweight_tuple &)=default | |
lightweight_tuple (lightweight_tuple &&)=default | |
lightweight_tuple & | operator= (const lightweight_tuple &rhs)=default |
lightweight_tuple & | operator= (lightweight_tuple &&)=default |
lightweight_tuple | clone (bool store, scope::config _scope=scope::get_default()) |
this_type & | push () |
generic push into storage More... | |
this_type & | pop () |
generic pop out of storage More... | |
template<typename... Tp> | |
this_type & | push (mpl::piecewise_select< Tp... >) |
selective push More... | |
template<typename... Tp> | |
this_type & | push (mpl::piecewise_ignore< Tp... >) |
selective push More... | |
template<typename... Tp> | |
this_type & | pop (mpl::piecewise_select< Tp... >) |
selective pop More... | |
template<typename... Tp> | |
this_type & | pop (mpl::piecewise_ignore< Tp... >) |
selective pop More... | |
template<typename... Args> | |
this_type & | start (Args &&...) |
start all applicable components More... | |
template<typename... Tp, typename... Args> | |
this_type & | start (mpl::piecewise_select< Tp... >, Args &&...) |
selective start More... | |
template<typename... Tp, typename... Args> | |
this_type & | start (mpl::piecewise_ignore< Tp... >, Args &&...) |
selective start More... | |
template<typename... Args> | |
this_type & | stop (Args &&...) |
stop all applicable components More... | |
template<typename... Tp, typename... Args> | |
this_type & | stop (mpl::piecewise_select< Tp... >, Args &&...) |
selective stop More... | |
template<typename... Tp, typename... Args> | |
this_type & | stop (mpl::piecewise_ignore< Tp... >, Args &&...) |
selection stop More... | |
template<typename... Args> | |
this_type & | measure (Args &&...) |
generic More... | |
template<typename... Args> | |
this_type & | sample (Args &&...) |
generic More... | |
template<typename... Args> | |
this_type & | record (Args &&...) |
generic More... | |
template<typename... Args> | |
this_type & | reset (Args &&...) |
generic More... | |
template<typename... Args> | |
auto | get (Args &&...) const |
generic More... | |
template<typename... Args> | |
auto | get_labeled (Args &&...) const |
generic More... | |
data_type & | data () |
get tuple More... | |
const data_type & | data () const |
get tuple More... | |
this_type & | set_scope (scope::config) |
set scope configuration More... | |
template<typename FuncT , typename... Args> | |
decltype(auto) | execute (FuncT &&func, Args &&... args) |
when chaining together operations, this function enables executing a function inside the chain More... | |
template<typename... Args> | |
this_type & | construct (Args &&... _args) |
construct the objects that have constructors with matching arguments More... | |
this_type & | assemble () |
provide preliminary info to the objects with matching arguments. This is typically used to notify a component that it has been bundled alongside another component that it can extract data from. More... | |
template<typename... Args, size_t N = sizeof...(Args), enable_if_t< N !=0, int > = 0> | |
this_type & | assemble (Args &&... _args) |
this_type & | derive () |
provide conclusive info to the objects with matching arguments. This is typically used by components to extract data from another component it has been bundled alongside, e.g. the cpu_util component can extract data from tim::component::wall_clock and tim::component::cpu_clock More... | |
template<typename... Args, size_t N = sizeof...(Args), enable_if_t< N !=0, int > = 0> | |
this_type & | derive (Args &&... _args) |
template<typename... Args> | |
this_type & | mark_begin (Args &&... _args) |
mark a beginning position in the execution (typically used by asynchronous structures) More... | |
template<typename... Args> | |
this_type & | mark_end (Args &&... _args) |
mark a beginning position in the execution (typically used by asynchronous structures) More... | |
template<typename... Args> | |
this_type & | store (Args &&... _args) |
store a value More... | |
template<typename... Args> | |
this_type & | audit (Args &&... _args) |
allow the components to inspect the incoming arguments before start or out-going return value before returning (typically using in GOTCHA components) More... | |
template<typename... Args> | |
this_type & | add_secondary (Args &&... _args) |
perform an add_secondary operation. This operation allows components to add additional entries to storage which are their direct descendant More... | |
template<typename... Args> | |
this_type & | update_statistics (Args &&... _args) |
perform an add_secondary operation. This operation allows components to add additional entries to storage which are their direct descendant More... | |
template<template< typename > class OpT, typename... Args> | |
this_type & | invoke (Args &&... _args) |
apply a user-defined operation to all the components More... | |
template<template< typename > class OpT, typename... Tp, typename... Args> | |
this_type & | invoke (mpl::piecewise_select< Tp... >, Args &&... _args) |
generic member function for invoking user-provided operations on a specific set of component types More... | |
template<template< typename > class OpT, typename... Tp, typename... Args> | |
this_type & | invoke (mpl::piecewise_ignore< Tp... >, Args &&... _args) |
generic member function for invoking user-provided operations on a specific set of component types More... | |
template<typename T , enable_if_t< is_one_of< T, data_type >::value, int > = 0> | |
T * | get () |
get member functions taking either a type More... | |
template<typename T , enable_if_t< is_one_of< T, data_type >::value, int > = 0> | |
const T * | get () const |
template<typename T , enable_if_t<!is_one_of< T, data_type >::value, int > = 0> | |
T * | get () const |
this_type & | get (void *&ptr, size_t _hash) const |
template<typename T , typename FuncT > | |
decltype(auto) | get (FuncT &&_func) |
get member functions finding component and applying lambda More... | |
template<typename T , typename FuncT > | |
decltype(auto) | get (FuncT &&_func) const |
template<typename U , typename T = std::remove_pointer_t<decay_t<U>>, enable_if_t< trait::is_available< T >::value &&is_one_of< T, data_type >::value, int > = 0> | |
auto | get_component () |
this is a simple alternative to get<T>() when used from SFINAE in operation namespace which has a struct get also templated. Usage there can cause error with older compilers More... | |
template<typename T , typename... Args, enable_if_t<!is_one_of< T, reference_type >::value &&has_user_bundle_v, int > = 0> | |
bool | init (Args &&...) |
template<typename T , typename... Args, enable_if_t<!is_one_of< T, reference_type >::value &&!has_user_bundle_v, int > = 0> | |
bool | init (Args &&...) |
template<typename... T, typename... Args> | |
auto | initialize (Args &&... args) |
variadic initialization More... | |
template<typename T , typename Func , typename... Args, enable_if_t< is_one_of< T, data_type >::value, int > = 0> | |
this_type & | type_apply (Func &&_func, Args &&... _args) |
apply a member function to a type that is in variadic list AND is available More... | |
template<typename T , typename Func , typename... Args, enable_if_t<!is_one_of< T, data_type >::value, int > = 0> | |
this_type & | type_apply (Func &&, Args &&...) |
this_type & | operator-= (const this_type &rhs) |
this_type & | operator-= (this_type &rhs) |
this_type & | operator+= (const this_type &rhs) |
this_type & | operator+= (this_type &rhs) |
template<typename Op > | |
this_type & | operator-= (Op &&rhs) |
template<typename Op > | |
this_type & | operator+= (Op &&rhs) |
template<typename Op > | |
this_type & | operator*= (Op &&rhs) |
template<typename Op > | |
this_type & | operator/= (Op &&rhs) |
template<bool PrintPrefix = true, bool PrintLaps = true> | |
this_type & | print (std::ostream &os, bool skip_wo_hash=true) const |
template<typename Archive > | |
void | serialize (Archive &ar, const unsigned int) |
int64_t | laps () const |
std::string | key () const |
uint64_t | hash () const |
bool & | store () |
const bool & | store () const |
auto | prefix () const |
auto | get_prefix () const |
void | rekey (const string_t &_key) |
void | rekey (const captured_location_t &_loc) |
void | rekey (uint64_t _hash) |
data_type & | get_data () |
const data_type & | get_data () const |
template<typename... Tp> | |
lightweight_tuple< Types... > & | push (mpl::piecewise_select< Tp... >) |
template<typename... Tp> | |
lightweight_tuple< Types... > & | push (mpl::piecewise_ignore< Tp... >) |
template<typename... Tp> | |
lightweight_tuple< Types... > & | pop (mpl::piecewise_select< Tp... >) |
template<typename... Tp> | |
lightweight_tuple< Types... > & | pop (mpl::piecewise_ignore< Tp... >) |
template<typename... Args> | |
lightweight_tuple< Types... > & | measure (Args &&... args) |
template<typename... Args> | |
lightweight_tuple< Types... > & | sample (Args &&... args) |
template<typename... Args> | |
lightweight_tuple< Types... > & | start (Args &&... args) |
template<typename... Tp, typename... Args> | |
lightweight_tuple< Types... > & | start (mpl::piecewise_select< Tp... >, Args &&... args) |
template<typename... Tp, typename... Args> | |
lightweight_tuple< Types... > & | start (mpl::piecewise_ignore< Tp... >, Args &&... args) |
template<typename... Args> | |
lightweight_tuple< Types... > & | stop (Args &&... args) |
template<typename... Tp, typename... Args> | |
lightweight_tuple< Types... > & | stop (mpl::piecewise_select< Tp... >, Args &&... args) |
template<typename... Tp, typename... Args> | |
lightweight_tuple< Types... > & | stop (mpl::piecewise_ignore< Tp... >, Args &&... args) |
template<typename... Args> | |
lightweight_tuple< Types... > & | record (Args &&... args) |
template<typename... Args> | |
lightweight_tuple< Types... > & | reset (Args &&... args) |
template<typename... Args> | |
auto | get (Args &&... args) const |
template<typename... Args> | |
auto | get_labeled (Args &&... args) const |
Static Public Member Functions | |
static initializer_type & | get_initializer () |
static constexpr std::size_t | size () |
static void | init_storage () |
requests the component initialize their storage More... | |
Static Public Attributes | |
static constexpr bool | has_gotcha_v = bundle_type::has_gotcha_v |
static constexpr bool | has_user_bundle_v = bundle_type::has_user_bundle_v |
Protected Types | |
using | apply_v = mpl::apply< void > |
using | bundle_type = stack_bundle< mpl::available_t< type_list< Types... > > > |
using | impl_type = typename bundle_type::impl_type |
Protected Member Functions | |
void | set_prefix (const string_t &) const |
void | set_prefix (size_t) const |
Protected Attributes | |
data_type | m_data = data_type{} |
Friends | |
template<typename... Tp> | |
class | impl::base_bundle |
this_type | operator+ (const this_type &lhs, const this_type &rhs) |
this_type | operator- (const this_type &lhs, const this_type &rhs) |
template<typename Op > | |
this_type | operator* (const this_type &lhs, Op &&rhs) |
template<typename Op > | |
this_type | operator/ (const this_type &lhs, Op &&rhs) |
std::ostream & | operator<< (std::ostream &os, const this_type &obj) |
This is a variadic component wrapper which provides the least amount of runtime and compilation overhead.
Types | Specification of the component types to bundle together |
Definition at line 67 of file lightweight_tuple.hpp.
|
protected |
Definition at line 72 of file lightweight_tuple.hpp.
using tim::lightweight_tuple< Types >::auto_type = mpl::append_type_t<quirk::auto_start, this_type> |
Definition at line 101 of file lightweight_tuple.hpp.
|
protected |
Definition at line 73 of file lightweight_tuple.hpp.
using tim::lightweight_tuple< Types >::captured_location_t = source_location::captured |
Definition at line 80 of file lightweight_tuple.hpp.
using tim::lightweight_tuple< Types >::component_type = mpl::remove_type_t<quirk::auto_start, this_type> |
Definition at line 102 of file lightweight_tuple.hpp.
using tim::lightweight_tuple< Types >::custom_operation_t = typename bundle_type::template custom_operation<Op, Tuple>::type |
Definition at line 98 of file lightweight_tuple.hpp.
using tim::lightweight_tuple< Types >::data_type = typename bundle_type::data_type |
Definition at line 85 of file lightweight_tuple.hpp.
|
protected |
Definition at line 74 of file lightweight_tuple.hpp.
using tim::lightweight_tuple< Types >::initializer_type = std::function<void(this_type&)> |
Definition at line 104 of file lightweight_tuple.hpp.
using tim::lightweight_tuple< Types >::operation_t = typename bundle_type::template generic_operation<Op, Tuple>::type |
Definition at line 95 of file lightweight_tuple.hpp.
using tim::lightweight_tuple< Types >::quirk_config = tim::variadic::impl::quirk_config<T, type_list<Types...>, U...> |
Definition at line 118 of file lightweight_tuple.hpp.
using tim::lightweight_tuple< Types >::reference_type = typename bundle_type::reference_type |
Definition at line 88 of file lightweight_tuple.hpp.
using tim::lightweight_tuple< Types >::sample_type = typename bundle_type::sample_type |
Definition at line 87 of file lightweight_tuple.hpp.
using tim::lightweight_tuple< Types >::size_type = typename bundle_type::size_type |
Definition at line 91 of file lightweight_tuple.hpp.
using tim::lightweight_tuple< Types >::string_t = typename bundle_type::string_t |
Definition at line 92 of file lightweight_tuple.hpp.
using tim::lightweight_tuple< Types >::this_type = lightweight_tuple<Types...> |
Definition at line 82 of file lightweight_tuple.hpp.
using tim::lightweight_tuple< Types >::transient_func_t = utility::transient_function<void(this_type&)> |
Definition at line 105 of file lightweight_tuple.hpp.
using tim::lightweight_tuple< Types >::tuple_type = typename bundle_type::tuple_type |
Definition at line 86 of file lightweight_tuple.hpp.
using tim::lightweight_tuple< Types >::type = convert_t<tuple_type, lightweight_tuple<> > |
Definition at line 103 of file lightweight_tuple.hpp.
using tim::lightweight_tuple< Types >::type_list_type = type_list<Types...> |
Definition at line 83 of file lightweight_tuple.hpp.
using tim::lightweight_tuple< Types >::user_bundle_types = typename bundle_type::user_bundle_types |
Definition at line 89 of file lightweight_tuple.hpp.
|
default |
|
explicit |
Definition at line 45 of file lightweight_tuple.cpp.
|
explicit |
Definition at line 58 of file lightweight_tuple.cpp.
|
explicit |
Definition at line 71 of file lightweight_tuple.cpp.
|
explicit |
Definition at line 82 of file lightweight_tuple.cpp.
|
explicit |
Definition at line 93 of file lightweight_tuple.cpp.
References tim::init(), and tim::lightweight_tuple< Types >::m_data.
|
explicit |
Definition at line 103 of file lightweight_tuple.cpp.
tim::lightweight_tuple< Types >::~lightweight_tuple |
Definition at line 112 of file lightweight_tuple.cpp.
References IF_CONSTEXPR, and tim::invoke::stop().
|
default |
|
default |
|
inline |
perform an add_secondary operation. This operation allows components to add additional entries to storage which are their direct descendant
Definition at line 344 of file lightweight_tuple.hpp.
References tim::_args.
|
inline |
provide preliminary info to the objects with matching arguments. This is typically used to notify a component that it has been bundled alongside another component that it can extract data from.
Definition at line 280 of file lightweight_tuple.hpp.
References tim::invoke::assemble(), and tim::lightweight_tuple< Types >::m_data.
|
inline |
Definition at line 283 of file lightweight_tuple.hpp.
References tim::_args, tim::invoke::assemble(), and tim::lightweight_tuple< Types >::m_data.
|
inline |
allow the components to inspect the incoming arguments before start or out-going return value before returning (typically using in GOTCHA components)
Definition at line 335 of file lightweight_tuple.hpp.
References tim::_args, tim::invoke::audit(), and tim::lightweight_tuple< Types >::m_data.
lightweight_tuple< Types... > tim::lightweight_tuple< Types >::clone | ( | bool | store, |
scope::config | _scope = scope::get_default() |
||
) |
Definition at line 125 of file lightweight_tuple.cpp.
|
inline |
construct the objects that have constructors with matching arguments
Definition at line 269 of file lightweight_tuple.hpp.
References tim::_args, and tim::lightweight_tuple< Types >::m_data.
lightweight_tuple< Types... >::data_type & tim::lightweight_tuple< Types >::data |
const lightweight_tuple< Types... >::data_type & tim::lightweight_tuple< Types >::data |
|
inline |
provide conclusive info to the objects with matching arguments. This is typically used by components to extract data from another component it has been bundled alongside, e.g. the cpu_util component can extract data from tim::component::wall_clock and tim::component::cpu_clock
Definition at line 294 of file lightweight_tuple.hpp.
References tim::invoke::derive(), and tim::lightweight_tuple< Types >::m_data.
|
inline |
Definition at line 297 of file lightweight_tuple.hpp.
References tim::_args, tim::invoke::derive(), and tim::lightweight_tuple< Types >::m_data.
|
inline |
when chaining together operations, this function enables executing a function inside the chain
Definition at line 260 of file lightweight_tuple.hpp.
References tim::mpl::execute().
|
inline |
get member functions taking either a type
Definition at line 391 of file lightweight_tuple.hpp.
References tim::lightweight_tuple< Types >::m_data.
Referenced by tim::lightweight_tuple< Types >::get().
|
inline |
Definition at line 397 of file lightweight_tuple.hpp.
References tim::lightweight_tuple< Types >::m_data.
|
inline |
Definition at line 403 of file lightweight_tuple.hpp.
References tim::lightweight_tuple< Types >::get().
auto tim::lightweight_tuple< Types >::get | ( | Args &&... | args | ) | const |
auto tim::lightweight_tuple< Types >::get | ( | Args && | ... | ) | const |
generic
decltype(auto) tim::lightweight_tuple< Types >::get | ( | FuncT && | _func | ) |
get member functions finding component and applying lambda
decltype(auto) tim::lightweight_tuple< Types >::get | ( | FuncT && | _func | ) | const |
|
inline |
Definition at line 410 of file lightweight_tuple.hpp.
References tim::lightweight_tuple< Types >::m_data.
|
inline |
this is a simple alternative to get<T>() when used from SFINAE in operation namespace which has a struct get also templated. Usage there can cause error with older compilers
Definition at line 431 of file lightweight_tuple.hpp.
data_type & tim::lightweight_tuple< Types >::get_data | ( | ) |
const data_type & tim::lightweight_tuple< Types >::get_data | ( | ) | const |
|
inlinestatic |
Definition at line 111 of file lightweight_tuple.hpp.
auto tim::lightweight_tuple< Types >::get_labeled | ( | Args &&... | args | ) | const |
Definition at line 380 of file lightweight_tuple.cpp.
References tim::invoke::get_labeled().
auto tim::lightweight_tuple< Types >::get_labeled | ( | Args && | ... | ) | const |
generic
|
inline |
Definition at line 645 of file lightweight_tuple.hpp.
Referenced by tim::lightweight_tuple< Types >::print().
|
inline |
Definition at line 641 of file lightweight_tuple.hpp.
|
inline |
Definition at line 441 of file lightweight_tuple.hpp.
|
inline |
Definition at line 455 of file lightweight_tuple.hpp.
|
static |
requests the component initialize their storage
Definition at line 483 of file lightweight_tuple.cpp.
References tim::consume_parameters().
|
inline |
variadic initialization
Definition at line 464 of file lightweight_tuple.hpp.
References TIMEMORY_FOLD_EXPANSION.
|
inline |
apply a user-defined operation to all the components
OpT | Operation struct |
Definition at line 360 of file lightweight_tuple.hpp.
References tim::_args, and tim::lightweight_tuple< Types >::m_data.
|
inline |
generic member function for invoking user-provided operations on a specific set of component types
OpT | Operation struct |
Definition at line 381 of file lightweight_tuple.hpp.
References tim::_args.
|
inline |
generic member function for invoking user-provided operations on a specific set of component types
OpT | Operation struct |
Definition at line 370 of file lightweight_tuple.hpp.
References tim::_args.
|
inline |
Definition at line 640 of file lightweight_tuple.hpp.
Referenced by tim::lightweight_tuple< Types >::print().
|
inline |
Definition at line 639 of file lightweight_tuple.hpp.
|
inline |
mark a beginning position in the execution (typically used by asynchronous structures)
Definition at line 307 of file lightweight_tuple.hpp.
References tim::_args, tim::lightweight_tuple< Types >::m_data, and tim::invoke::mark_begin().
|
inline |
mark a beginning position in the execution (typically used by asynchronous structures)
Definition at line 317 of file lightweight_tuple.hpp.
References tim::_args, tim::lightweight_tuple< Types >::m_data, and tim::invoke::mark_end().
lightweight_tuple< Types... > & tim::lightweight_tuple< Types >::measure | ( | Args &&... | args | ) |
Definition at line 235 of file lightweight_tuple.cpp.
References tim::invoke::measure().
this_type & tim::lightweight_tuple< Types >::measure | ( | Args && | ... | ) |
generic
|
inline |
Definition at line 518 of file lightweight_tuple.hpp.
References tim::lightweight_tuple< Types >::m_data.
lightweight_tuple< Types... > & tim::lightweight_tuple< Types >::operator+= | ( | const this_type & | rhs | ) |
Definition at line 412 of file lightweight_tuple.cpp.
References tim::lightweight_tuple< Types >::m_data.
|
inline |
Definition at line 510 of file lightweight_tuple.hpp.
References tim::lightweight_tuple< Types >::m_data.
lightweight_tuple< Types... > & tim::lightweight_tuple< Types >::operator+= | ( | this_type & | rhs | ) |
Definition at line 423 of file lightweight_tuple.cpp.
References tim::lightweight_tuple< Types >::m_data.
lightweight_tuple< Types... > & tim::lightweight_tuple< Types >::operator-= | ( | const this_type & | rhs | ) |
Definition at line 390 of file lightweight_tuple.cpp.
References tim::lightweight_tuple< Types >::m_data.
|
inline |
Definition at line 502 of file lightweight_tuple.hpp.
References tim::lightweight_tuple< Types >::m_data.
lightweight_tuple< Types... > & tim::lightweight_tuple< Types >::operator-= | ( | this_type & | rhs | ) |
Definition at line 401 of file lightweight_tuple.cpp.
References tim::lightweight_tuple< Types >::m_data.
|
inline |
Definition at line 526 of file lightweight_tuple.hpp.
References tim::lightweight_tuple< Types >::m_data.
|
default |
|
default |
lightweight_tuple< Types... > & tim::lightweight_tuple< Types >::pop |
generic pop out of storage
Definition at line 189 of file lightweight_tuple.cpp.
References tim::invoke::pop().
lightweight_tuple< Types... > & tim::lightweight_tuple< Types >::pop | ( | mpl::piecewise_ignore< Tp... > | ) |
Definition at line 220 of file lightweight_tuple.cpp.
this_type & tim::lightweight_tuple< Types >::pop | ( | mpl::piecewise_ignore< Tp... > | ) |
selective pop
lightweight_tuple< Types... > & tim::lightweight_tuple< Types >::pop | ( | mpl::piecewise_select< Tp... > | ) |
Definition at line 206 of file lightweight_tuple.cpp.
this_type & tim::lightweight_tuple< Types >::pop | ( | mpl::piecewise_select< Tp... > | ) |
selective pop
|
inline |
Definition at line 644 of file lightweight_tuple.hpp.
|
inline |
Definition at line 565 of file lightweight_tuple.hpp.
References tim::lightweight_tuple< Types >::get_prefix(), IF_CONSTEXPR, tim::lightweight_tuple< Types >::key(), tim::lightweight_tuple< Types >::m_data, tim::os, and tim::lightweight_tuple< Types >::size().
lightweight_tuple< Types... > & tim::lightweight_tuple< Types >::push |
generic push into storage
Definition at line 138 of file lightweight_tuple.cpp.
References tim::invoke::push(), and tim::invoke::reset().
lightweight_tuple< Types... > & tim::lightweight_tuple< Types >::push | ( | mpl::piecewise_ignore< Tp... > | ) |
Definition at line 173 of file lightweight_tuple.cpp.
this_type & tim::lightweight_tuple< Types >::push | ( | mpl::piecewise_ignore< Tp... > | ) |
selective push
lightweight_tuple< Types... > & tim::lightweight_tuple< Types >::push | ( | mpl::piecewise_select< Tp... > | ) |
Definition at line 157 of file lightweight_tuple.cpp.
this_type & tim::lightweight_tuple< Types >::push | ( | mpl::piecewise_select< Tp... > | ) |
selective push
lightweight_tuple< Types... > & tim::lightweight_tuple< Types >::record | ( | Args &&... | args | ) |
this_type & tim::lightweight_tuple< Types >::record | ( | Args && | ... | ) |
generic
void tim::lightweight_tuple< Types >::rekey | ( | const captured_location_t & | _loc | ) |
Definition at line 700 of file lightweight_tuple.hpp.
References tim::source_location::captured::get_hash(), and tim::invoke::set_prefix().
void tim::lightweight_tuple< Types >::rekey | ( | const string_t & | _key | ) |
Definition at line 690 of file lightweight_tuple.hpp.
References tim::invoke::set_prefix().
void tim::lightweight_tuple< Types >::rekey | ( | uint64_t | _hash | ) |
Definition at line 710 of file lightweight_tuple.hpp.
References tim::invoke::set_prefix().
lightweight_tuple< Types... > & tim::lightweight_tuple< Types >::reset | ( | Args &&... | args | ) |
this_type & tim::lightweight_tuple< Types >::reset | ( | Args && | ... | ) |
generic
lightweight_tuple< Types... > & tim::lightweight_tuple< Types >::sample | ( | Args &&... | args | ) |
Definition at line 247 of file lightweight_tuple.cpp.
this_type & tim::lightweight_tuple< Types >::sample | ( | Args && | ... | ) |
generic
|
inline |
Definition at line 612 of file lightweight_tuple.hpp.
References tim::lightweight_tuple< Types >::m_data, PRINT_HERE, and tim::invoke::serialize().
|
protected |
Definition at line 452 of file lightweight_tuple.cpp.
References tim::invoke::set_prefix().
|
protected |
lightweight_tuple< Types... > & tim::lightweight_tuple< Types >::set_scope | ( | scope::config | val | ) |
set scope configuration
Definition at line 472 of file lightweight_tuple.cpp.
References tim::invoke::set_scope().
|
inlinestaticconstexpr |
Definition at line 161 of file lightweight_tuple.hpp.
Referenced by tim::lightweight_tuple< Types >::print().
lightweight_tuple< Types... > & tim::lightweight_tuple< Types >::start | ( | Args &&... | args | ) |
this_type & tim::lightweight_tuple< Types >::start | ( | Args && | ... | ) |
start all applicable components
lightweight_tuple< Types... > & tim::lightweight_tuple< Types >::start | ( | mpl::piecewise_ignore< Tp... > | , |
Args &&... | args | ||
) |
this_type & tim::lightweight_tuple< Types >::start | ( | mpl::piecewise_ignore< Tp... > | , |
Args && | ... | ||
) |
selective start
lightweight_tuple< Types... > & tim::lightweight_tuple< Types >::start | ( | mpl::piecewise_select< Tp... > | , |
Args &&... | args | ||
) |
Definition at line 272 of file lightweight_tuple.cpp.
References tim::mpl::get_reference_tuple(), and tim::invoke::start().
this_type & tim::lightweight_tuple< Types >::start | ( | mpl::piecewise_select< Tp... > | , |
Args && | ... | ||
) |
selective start
lightweight_tuple< Types... > & tim::lightweight_tuple< Types >::stop | ( | Args &&... | args | ) |
this_type & tim::lightweight_tuple< Types >::stop | ( | Args && | ... | ) |
stop all applicable components
lightweight_tuple< Types... > & tim::lightweight_tuple< Types >::stop | ( | mpl::piecewise_ignore< Tp... > | , |
Args &&... | args | ||
) |
this_type & tim::lightweight_tuple< Types >::stop | ( | mpl::piecewise_ignore< Tp... > | , |
Args && | ... | ||
) |
selection stop
lightweight_tuple< Types... > & tim::lightweight_tuple< Types >::stop | ( | mpl::piecewise_select< Tp... > | , |
Args &&... | args | ||
) |
Definition at line 314 of file lightweight_tuple.cpp.
References tim::mpl::get_reference_tuple(), and tim::invoke::stop().
this_type & tim::lightweight_tuple< Types >::stop | ( | mpl::piecewise_select< Tp... > | , |
Args && | ... | ||
) |
selective stop
|
inline |
|
inline |
|
inline |
store a value
Definition at line 325 of file lightweight_tuple.hpp.
References tim::_args, tim::lightweight_tuple< Types >::m_data, and tim::invoke::store().
|
inline |
Definition at line 485 of file lightweight_tuple.hpp.
|
inline |
apply a member function to a type that is in variadic list AND is available
Definition at line 476 of file lightweight_tuple.hpp.
References tim::_args.
|
inline |
perform an add_secondary operation. This operation allows components to add additional entries to storage which are their direct descendant
Definition at line 352 of file lightweight_tuple.hpp.
References tim::_args.
|
friend |
Definition at line 77 of file lightweight_tuple.hpp.
|
friend |
Definition at line 549 of file lightweight_tuple.hpp.
|
friend |
Definition at line 536 of file lightweight_tuple.hpp.
|
friend |
Definition at line 542 of file lightweight_tuple.hpp.
|
friend |
Definition at line 556 of file lightweight_tuple.hpp.
|
friend |
Definition at line 603 of file lightweight_tuple.hpp.
|
staticconstexpr |
Definition at line 107 of file lightweight_tuple.hpp.
|
staticconstexpr |
Definition at line 108 of file lightweight_tuple.hpp.
|
mutableprotected |
Definition at line 668 of file lightweight_tuple.hpp.
Referenced by tim::lightweight_tuple< Types >::lightweight_tuple(), tim::lightweight_tuple< Types >::assemble(), tim::lightweight_tuple< Types >::audit(), tim::lightweight_tuple< Types >::construct(), tim::lightweight_tuple< Types >::derive(), tim::lightweight_tuple< Types >::get(), tim::lightweight_tuple< Types >::invoke(), tim::lightweight_tuple< Types >::mark_begin(), tim::lightweight_tuple< Types >::mark_end(), tim::lightweight_tuple< Types >::operator*=(), tim::lightweight_tuple< Types >::operator+=(), tim::lightweight_tuple< Types >::operator-=(), tim::lightweight_tuple< Types >::operator/=(), tim::lightweight_tuple< Types >::print(), tim::lightweight_tuple< Types >::serialize(), and tim::lightweight_tuple< Types >::store().