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.
auto_list.hpp File Reference
#include "timemory/variadic/auto_base_bundle.hpp"
#include "timemory/variadic/types.hpp"
#include <cstddef>
#include <tuple>
#include <type_traits>
#include <utility>
+ Include dependency graph for auto_list.hpp:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  tim::auto_list< Types >
 This is a variadic component wrapper where all components are optional at runtime. Accept unlimited number of parameters. The constructor starts the components, the destructor stops the components. The default behavior is to query the TIMEMORY_AUTO_LIST_INIT environment variable once (the first time the bundle is used) and use that list of components (if any) to initialize the components which are part of it's template parameters. This behavior can be modified by assigning a new lambda/functor to the reference which is returned from tim::auto_list<Types...>::get_initializer(). Assignment is not thread-safe since this is relatively unnecessary... if a different set of components are required on a particular thread, just create a different type with those particular components or pass the initialization functor to the constructor. More...
 

Namespaces

namespace  tim
 
namespace  std
 STL namespace.
 

Macros

#define TIMEMORY_VARIADIC_BLANK_AUTO_LIST(tag, ...)
 
#define TIMEMORY_VARIADIC_BASIC_AUTO_LIST(tag, ...)
 
#define TIMEMORY_VARIADIC_AUTO_LIST(tag, ...)
 

Functions

template<typename... Types>
auto tim::get (const auto_list< Types... > &_obj)
 
template<typename... Types>
auto tim::get_labeled (const auto_list< Types... > &_obj)
 
template<std::size_t N, typename... Types>
auto std::get (tim::auto_list< Types... > &obj) -> decltype(get< N >(obj.data()))
 
template<std::size_t N, typename... Types>
auto std::get (const tim::auto_list< Types... > &obj) -> decltype(get< N >(obj.data()))
 
template<std::size_t N, typename... Types>
auto std::get (tim::auto_list< Types... > &&obj) -> decltype(get< N >(std::forward< tim::auto_list< Types... > >(obj).data()))
 

Macro Definition Documentation

◆ TIMEMORY_VARIADIC_AUTO_LIST

#define TIMEMORY_VARIADIC_AUTO_LIST (   tag,
  ... 
)
Value:
using _TIM_TYPEDEF(__LINE__) = ::tim::auto_list<__VA_ARGS__>; \
TIMEMORY_MARKER(_TIM_TYPEDEF(__LINE__), tag);
This is a variadic component wrapper where all components are optional at runtime....
Definition: auto_list.hpp:91

Definition at line 173 of file auto_list.hpp.

◆ TIMEMORY_VARIADIC_BASIC_AUTO_LIST

#define TIMEMORY_VARIADIC_BASIC_AUTO_LIST (   tag,
  ... 
)
Value:
using _TIM_TYPEDEF(__LINE__) = ::tim::auto_list<__VA_ARGS__>; \
TIMEMORY_BASIC_MARKER(_TIM_TYPEDEF(__LINE__), tag);

Definition at line 167 of file auto_list.hpp.

◆ TIMEMORY_VARIADIC_BLANK_AUTO_LIST

#define TIMEMORY_VARIADIC_BLANK_AUTO_LIST (   tag,
  ... 
)
Value:
using _TIM_TYPEDEF(__LINE__) = ::tim::auto_list<__VA_ARGS__>; \
TIMEMORY_BLANK_MARKER(_TIM_TYPEDEF(__LINE__), tag);

Definition at line 161 of file auto_list.hpp.