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::api_bundle< ApiT, type_list< Types... > > Struct Template Reference

#include "timemory/variadic/base_bundle.hpp"

+ Collaboration diagram for tim::api_bundle< ApiT, type_list< Types... > >:

Public Types

using base_bundle_type = conditional_t< trait::is_available< ApiT >::value, impl::base_bundle< ApiT, remove_pointer_t< Types >... >, impl::base_bundle< ApiT, std::tuple<> > >
 
using data_type = conditional_t< trait::is_available< ApiT >::value, mpl::non_placeholder_t< mpl::non_quirk_t< std::tuple< Types... > > >, std::tuple<> >
 
using type_list_type = type_list< Types... >
 
using tuple_type = data_type
 
using impl_type = data_type
 

Public Member Functions

template<typename... Args>
 api_bundle (Args &&... args)
 
api_bundleoperator+= (const api_bundle &rhs)
 
api_bundleoperator-= (const api_bundle &rhs)
 

Detailed Description

template<typename ApiT, typename... Types>
struct tim::api_bundle< ApiT, type_list< Types... > >

Definition at line 710 of file base_bundle.hpp.

Member Typedef Documentation

◆ base_bundle_type

template<typename ApiT , typename... Types>
using tim::api_bundle< ApiT, type_list< Types... > >::base_bundle_type = conditional_t<trait::is_available<ApiT>::value, impl::base_bundle<ApiT, remove_pointer_t<Types>...>, impl::base_bundle<ApiT, std::tuple<> >>

Definition at line 721 of file base_bundle.hpp.

◆ data_type

template<typename ApiT , typename... Types>
using tim::api_bundle< ApiT, type_list< Types... > >::data_type = conditional_t<trait::is_available<ApiT>::value, mpl::non_placeholder_t<mpl::non_quirk_t<std::tuple<Types...> >>, std::tuple<> >

Definition at line 725 of file base_bundle.hpp.

◆ impl_type

template<typename ApiT , typename... Types>
using tim::api_bundle< ApiT, type_list< Types... > >::impl_type = data_type

Definition at line 731 of file base_bundle.hpp.

◆ tuple_type

template<typename ApiT , typename... Types>
using tim::api_bundle< ApiT, type_list< Types... > >::tuple_type = data_type

Definition at line 730 of file base_bundle.hpp.

◆ type_list_type

template<typename ApiT , typename... Types>
using tim::api_bundle< ApiT, type_list< Types... > >::type_list_type = type_list<Types...>

Definition at line 729 of file base_bundle.hpp.

Constructor & Destructor Documentation

◆ api_bundle()

template<typename ApiT , typename... Types>
template<typename... Args>
tim::api_bundle< ApiT, type_list< Types... > >::api_bundle ( Args &&...  args)
inline

Definition at line 734 of file base_bundle.hpp.

735 : base_bundle_type(std::forward<Args>(args)...)
736 {}
conditional_t< trait::is_available< ApiT >::value, impl::base_bundle< ApiT, remove_pointer_t< Types >... >, impl::base_bundle< ApiT, std::tuple<> > > base_bundle_type

Member Function Documentation

◆ operator+=()

template<typename ApiT , typename... Types>
api_bundle & tim::api_bundle< ApiT, type_list< Types... > >::operator+= ( const api_bundle< ApiT, type_list< Types... > > &  rhs)
inline

Definition at line 738 of file base_bundle.hpp.

739 {
741 return *this;
742 }
::tim::statistics< tuple<> > & operator+=(::tim::statistics< tuple<> > &_lhs, const Tp &)
Definition: statistics.hpp:338

References std::operator+=().

◆ operator-=()

template<typename ApiT , typename... Types>
api_bundle & tim::api_bundle< ApiT, type_list< Types... > >::operator-= ( const api_bundle< ApiT, type_list< Types... > > &  rhs)
inline

Definition at line 744 of file base_bundle.hpp.

745 {
747 return *this;
748 }
std::array< Tp, N > & operator-=(std::array< Tp, N > &, const std::array< Tp, N > &)
Definition: stl.hpp:96

The documentation for this struct was generated from the following file: