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::operation::start< Tp > Struct Template Reference

#include "timemory/operations/types/start.hpp"

+ Collaboration diagram for tim::operation::start< Tp >:

Public Types

using type = Tp
 
template<typename U >
using base_t = typename U::base_type
 

Public Member Functions

 start (type &obj)
 
 start (type &obj, quirk::unsafe &&)
 
template<typename Arg , typename... Args>
 start (type &obj, Arg &&arg, Args &&... args)
 
template<typename... Args>
auto operator() (type &obj, Args &&... args) const
 
template<typename... Args>
auto operator() (type &obj, quirk::unsafe &&, Args &&... args) const
 

Detailed Description

template<typename Tp>
struct tim::operation::start< Tp >

Definition at line 47 of file start.hpp.

Member Typedef Documentation

◆ base_t

template<typename Tp >
template<typename U >
using tim::operation::start< Tp >::base_t = typename U::base_type

Definition at line 52 of file start.hpp.

◆ type

template<typename Tp >
using tim::operation::start< Tp >::type = Tp

Definition at line 49 of file start.hpp.

Constructor & Destructor Documentation

◆ start() [1/3]

template<typename Tp >
tim::operation::start< Tp >::start ( type obj)
inlineexplicit

Definition at line 56 of file start.hpp.

56{ impl(obj); }

◆ start() [2/3]

template<typename Tp >
tim::operation::start< Tp >::start ( type obj,
quirk::unsafe &&   
)
inlineexplicit

Definition at line 57 of file start.hpp.

58 {
59 impl(obj, quirk::unsafe{});
60 }

◆ start() [3/3]

template<typename Tp >
template<typename Arg , typename... Args>
tim::operation::start< Tp >::start ( type obj,
Arg &&  arg,
Args &&...  args 
)
inline

Definition at line 63 of file start.hpp.

64 {
65 impl(obj, std::forward<Arg>(arg), std::forward<Args>(args)...);
66 }

Member Function Documentation

◆ operator()() [1/2]

template<typename Tp >
template<typename... Args>
auto tim::operation::start< Tp >::operator() ( type obj,
Args &&...  args 
) const
inline

Definition at line 69 of file start.hpp.

70 {
71 using RetT = decltype(do_sfinae(obj, 0, 0, std::forward<Args>(args)...));
72 if(!is_running<Tp, false>{}(obj))
73 {
74 return do_sfinae(obj, 0, 0, std::forward<Args>(args)...);
75 }
76 return get_return<RetT>();
77 }

◆ operator()() [2/2]

template<typename Tp >
template<typename... Args>
auto tim::operation::start< Tp >::operator() ( type obj,
quirk::unsafe &&  ,
Args &&...  args 
) const
inline

Definition at line 80 of file start.hpp.

81 {
82 return do_sfinae(obj, 0, 0, std::forward<Args>(args)...);
83 }

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