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_tuple.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_tuple.hpp:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  tim::auto_tuple< Types >
 This is a variadic component wrapper where all components are allocated on the stack and cannot be disabled at runtime. This bundler has the lowest overhead. Accepts unlimited number of template parameters. The constructor starts the components, the destructor stops the components. More...
 

Namespaces

namespace  tim
 
namespace  std
 STL namespace.
 

Macros

#define TIMEMORY_VARIADIC_BLANK_AUTO_TUPLE(tag, ...)
 
#define TIMEMORY_VARIADIC_BASIC_AUTO_TUPLE(tag, ...)
 
#define TIMEMORY_VARIADIC_AUTO_TUPLE(tag, ...)
 

Functions

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

Macro Definition Documentation

◆ TIMEMORY_VARIADIC_AUTO_TUPLE

#define TIMEMORY_VARIADIC_AUTO_TUPLE (   tag,
  ... 
)
Value:
using _TIM_TYPEDEF(__LINE__) = ::tim::auto_tuple<__VA_ARGS__>; \
TIMEMORY_MARKER(_TIM_TYPEDEF(__LINE__), tag);
This is a variadic component wrapper where all components are allocated on the stack and cannot be di...
Definition: auto_tuple.hpp:65

Definition at line 148 of file auto_tuple.hpp.

◆ TIMEMORY_VARIADIC_BASIC_AUTO_TUPLE

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

Definition at line 142 of file auto_tuple.hpp.

◆ TIMEMORY_VARIADIC_BLANK_AUTO_TUPLE

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

Definition at line 136 of file auto_tuple.hpp.