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.
|
#include "timemory/api.hpp"
#include "timemory/mpl/concepts.hpp"
#include "timemory/utility/types.hpp"
#include <cstdint>
#include <functional>
#include <iostream>
#include <string>
#include <type_traits>
#include <vector>
Go to the source code of this file.
Classes | |
struct | tim::trait::apply< TraitT, CommonT > |
generic functions for setting/accessing static properties on types More... | |
struct | tim::trait::is_available< T > |
trait that signifies that an implementation for the component is available. When this is set to false, the variadic component bundlers like component_tuple will silently filter out this type from the template parameters, e.g. More... | |
struct | tim::trait::is_available< T * > |
struct | tim::get_index_sequence< Tp > |
struct | tim::get_index_sequence< Tuple< Types... > > |
struct | tim::mpl::get_tuple_size< Tp > |
struct | tim::mpl::push_back< Tuple< Types... >, T > |
struct | tim::mpl::push_back< Hybrid< Lhs< LhsTypes... >, Rhs< RhsTypes... > >, T > |
struct | tim::mpl::union_index_of< T, TupleT< Types... > > |
struct | tim::mpl::union_index_of< T *, TupleT< Types... > > |
struct | tim::mpl::union_index_sequence< LhsT< Lhs... >, RhsT< Rhs... > > |
Namespaces | |
namespace | tim |
namespace | tim::trait |
namespace | tim::policy |
namespace | tim::mpl |
Typedefs | |
template<typename T > | |
using | tim::trait::runtime_configurable = concepts::is_runtime_configurable< T > |
template<typename T > | |
using | tim::trait::input_archive_t = typename input_archive< T, TIMEMORY_API >::type |
template<typename T > | |
using | tim::trait::output_archive_t = typename output_archive< T, TIMEMORY_API >::type |
template<typename T > | |
using | tim::trait::is_available_t = typename is_available< T >::type |
template<typename T > | |
using | tim::policy::input_archive_t = input_archive< trait::input_archive_t< T >, TIMEMORY_API > |
template<typename T > | |
using | tim::policy::output_archive_t = output_archive< trait::output_archive_t< T >, TIMEMORY_API > |
template<typename... Ts> | |
using | tim::tuple_concat_t = typename impl::tuple_concat< Ts... >::type |
template<typename... Ts> | |
using | tim::type_concat_t = typename impl::type_concat< Ts... >::type |
template<typename U > | |
using | tim::remove_pointer_t = typename std::remove_pointer< U >::type |
template<typename U > | |
using | tim::add_pointer_t = conditional_t<(std::is_pointer< U >::value), U, U * > |
template<typename Tp , typename Type > | |
using | tim::index_of = impl::index_of< Tp, Type > |
template<typename Tp , typename Types > | |
using | tim::is_one_of = typename impl::is_one_of< Tp, Types > |
check if type is in expansion More... | |
template<template< typename > class Predicate, typename Types > | |
using | tim::contains_one_of = typename impl::contains_one_of< Predicate, Types > |
check if type is in expansion More... | |
template<template< typename > class Predicate, typename Types > | |
using | tim::contains_one_of_t = typename contains_one_of< Predicate, Types >::type |
template<typename Tp > | |
using | tim::get_index_sequence_t = typename get_index_sequence< decay_t< Tp > >::type |
template<typename T , typename U > | |
using | tim::convert_t = typename impl::convert< T, U >::type |
template<template< typename... > class T, typename... U> | |
using | tim::convert_each_t = typename impl::convert_each< T, U... >::type |
template<typename T > | |
using | tim::unwrap_t = typename impl::unwrapper< T >::type |
template<template< typename > class CheckT, bool CheckV, template< typename > class TransformT, typename T , typename U > | |
using | tim::apply_transform_t = typename impl::apply_transform< CheckT, CheckV, TransformT, T, U >::type |
template<typename... T> | |
using | tim::mpl::union_index_sequence_t = typename union_index_sequence< T... >::type |
template<typename Tuple , typename T > | |
using | tim::push_back_t = typename mpl::push_back< Tuple, T >::type |
Functions | |
template<typename TraitT > | |
std::string | tim::trait::as_string () |
template<typename Tp , typename std::enable_if<(std::is_arithmetic< Tp >::value), int >::type = 0> | |
constexpr auto | tim::mpl::get_size (const Tp &, std::tuple<>) -> size_t |
template<typename Tp > | |
auto | tim::mpl::get_size (const Tp &_val, std::tuple<>) -> decltype(_val.size(), size_t()) |
template<typename Tp , typename std::enable_if<(std::is_arithmetic< Tp >::value), int >::type = 0> | |
constexpr auto | tim::mpl::get_size (const Tp &, type_list<>) -> size_t |
template<typename Tp > | |
auto | tim::mpl::get_size (const Tp &_val, type_list<>) -> decltype(_val.size(), size_t()) |
template<typename Tp , size_t... Idx> | |
constexpr auto | tim::mpl::get_size (const Tp &_val, index_sequence< Idx... >) -> decltype(std::get< 0 >(_val), size_t()) |
template<typename Tp > | |
auto | tim::mpl::get_size (const Tp &_val) -> decltype(get_size(_val, get_index_sequence< decay_t< Tp > >::value)) |
template<typename T > | |
auto | tim::mpl::resize (T &,...) -> void |
template<typename T > | |
auto | tim::mpl::resize (T &_targ, size_t _n) -> decltype(_targ.resize(_n), void()) |
template<typename Tp > | |
void | tim::mpl::assign (Tp &_targ, const Tp &_val,...) |
template<typename Tp , typename Vp , typename ValueType = typename Tp::value_type> | |
auto | tim::mpl::assign (Tp &_targ, const Vp &_val, type_list<>) -> decltype(_targ[0], void()) |
template<typename Tp , size_t... Idx> | |
auto | tim::mpl::assign (Tp &_targ, const Tp &_val, index_sequence< Idx... >) -> decltype(std::get< 0 >(_val), void()) |
template<typename Tp , typename Vp , size_t... Idx, enable_if_t<!std::is_same< Tp, Vp >::value, int > = 0> | |
auto | tim::mpl::assign (Tp &_targ, const Vp &_val, index_sequence< Idx... >) -> decltype(std::get< 0 >(_targ)= *std::begin(_val), void()) |
template<typename Tp , typename Vp > | |
void | tim::mpl::assign (Tp &_targ, const Vp &_val) |
template<typename Rp , typename Tp > | |
decltype(auto) | tim::mpl::get_reference_tuple (Tp &&_tuple) |
This is a declaration of all the operation structs. Care should be taken to make sure that this includes a minimal number of additional headers.
Definition in file types.hpp.
struct tim::mpl::push_back< Tuple< Types... >, T > |
struct tim::mpl::push_back< Hybrid< Lhs< LhsTypes... >, Rhs< RhsTypes... > >, T > |
Class Members | ||
---|---|---|
typedef Hybrid< Lhs< LhsTypes..., T >, Rhs< RhsTypes... > > | type |
struct tim::mpl::union_index_sequence< LhsT< Lhs... >, RhsT< Rhs... > > |
Class Members | ||
---|---|---|
typedef index_sequence< union_index_of< decay_t< Lhs >, RhsT< decay_t< Rhs >... > >::value(0)... > | type |