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::auto_bundle< Tag, Types... > Class Template Reference

#include "timemory/variadic/auto_bundle.hpp"

+ Collaboration diagram for tim::auto_bundle< Tag, Types... >:

Public Types

using this_type = auto_bundle< Tag, Types... >
 
using base_type = component_bundle< Tag, Types... >
 
using auto_type = this_type
 
using component_type = typename base_type::component_type
 
using type = convert_t< typename component_type::type, auto_bundle< Tag > >
 

Public Member Functions

template<typename... Args>
 auto_bundle (Args &&... args)
 
 ~auto_bundle ()=default
 
 auto_bundle (const auto_bundle &)=default
 
 auto_bundle (auto_bundle &&)=default
 
auto_bundleoperator= (const auto_bundle &)=default
 
auto_bundleoperator= (auto_bundle &&)=default
 
this_typeprint (std::ostream &os, bool _endl=false) const
 

Static Public Member Functions

static constexpr std::size_t size ()
 

Friends

std::ostream & operator<< (std::ostream &os, const this_type &obj)
 

Detailed Description

template<typename Tag, typename... Types>
class tim::auto_bundle< Tag, Types... >

Definition at line 97 of file auto_bundle.hpp.

Member Typedef Documentation

◆ auto_type

template<typename Tag , typename... Types>
using tim::auto_bundle< Tag, Types... >::auto_type = this_type

Definition at line 107 of file auto_bundle.hpp.

◆ base_type

template<typename Tag , typename... Types>
using tim::auto_bundle< Tag, Types... >::base_type = component_bundle<Tag, Types...>

Definition at line 106 of file auto_bundle.hpp.

◆ component_type

template<typename Tag , typename... Types>
using tim::auto_bundle< Tag, Types... >::component_type = typename base_type::component_type

Definition at line 108 of file auto_bundle.hpp.

◆ this_type

template<typename Tag , typename... Types>
using tim::auto_bundle< Tag, Types... >::this_type = auto_bundle<Tag, Types...>

Definition at line 105 of file auto_bundle.hpp.

◆ type

template<typename Tag , typename... Types>
using tim::auto_bundle< Tag, Types... >::type = convert_t<typename component_type::type, auto_bundle<Tag> >

Definition at line 109 of file auto_bundle.hpp.

Constructor & Destructor Documentation

◆ auto_bundle() [1/3]

template<typename Tag , typename... Types>
template<typename... Args>
tim::auto_bundle< Tag, Types... >::auto_bundle ( Args &&...  args)
explicit

Definition at line 134 of file auto_bundle.hpp.

135: poly_base{ std::forward<Args>(args)... }
136{}

◆ ~auto_bundle()

template<typename Tag , typename... Types>
tim::auto_bundle< Tag, Types... >::~auto_bundle ( )
default

◆ auto_bundle() [2/3]

template<typename Tag , typename... Types>
tim::auto_bundle< Tag, Types... >::auto_bundle ( const auto_bundle< Tag, Types... > &  )
default

◆ auto_bundle() [3/3]

template<typename Tag , typename... Types>
tim::auto_bundle< Tag, Types... >::auto_bundle ( auto_bundle< Tag, Types... > &&  )
default

Member Function Documentation

◆ operator=() [1/2]

template<typename Tag , typename... Types>
auto_bundle & tim::auto_bundle< Tag, Types... >::operator= ( auto_bundle< Tag, Types... > &&  )
default

◆ operator=() [2/2]

template<typename Tag , typename... Types>
auto_bundle & tim::auto_bundle< Tag, Types... >::operator= ( const auto_bundle< Tag, Types... > &  )
default

◆ print()

template<typename Tag , typename... Types>
auto_bundle< Tag, Types... > & tim::auto_bundle< Tag, Types... >::print ( std::ostream &  os,
bool  _endl = false 
) const

Definition at line 140 of file auto_bundle.hpp.

141{
142 os << poly_base::m_temporary;
143 if(_endl)
144 os << '\n';
145 return const_cast<this_type&>(*this);
146}
auto_bundle< Tag, Types... > this_type
const std::string std::ostream * os

References tim::os.

◆ size()

template<typename Tag , typename... Types>
static constexpr std::size_t tim::auto_bundle< Tag, Types... >::size ( )
inlinestaticconstexpr

Definition at line 121 of file auto_bundle.hpp.

121{ return poly_base::size(); }

Friends And Related Function Documentation

◆ operator<<

template<typename Tag , typename... Types>
std::ostream & operator<< ( std::ostream &  os,
const this_type obj 
)
friend

Definition at line 125 of file auto_bundle.hpp.

126 {
127 obj.print(os, false);
128 return os;
129 }

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