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::mpl::apply< Ret > Struct Template Reference

#include "timemory/mpl/apply.hpp"

+ Collaboration diagram for tim::mpl::apply< Ret >:

Public Types

using string_t = std::string
 

Static Public Member Functions

template<typename Fn , typename... Args, size_t N = sizeof...(Args)>
static Ret invoke (Fn &&__f, Args &&... __args) noexcept
 
template<typename Fn , template< typename... > class Tuple, typename... Args, size_t N = sizeof...(Args)>
static Ret invoke (Fn &&__f, Tuple< Args... > &&__t) noexcept
 
template<typename SepT , typename Tuple , size_t... Idx>
static string_t join (SepT &&separator, Tuple &&__tup, index_sequence< Idx... >) noexcept
 

Detailed Description

template<typename Ret>
struct tim::mpl::apply< Ret >

Definition at line 380 of file apply.hpp.

Member Typedef Documentation

◆ string_t

template<typename Ret >
using tim::mpl::apply< Ret >::string_t = std::string

Definition at line 382 of file apply.hpp.

Member Function Documentation

◆ invoke() [1/2]

template<typename Ret >
template<typename Fn , typename... Args, size_t N = sizeof...(Args)>
static Ret tim::mpl::apply< Ret >::invoke ( Fn &&  __f,
Args &&...  __args 
)
inlinestaticnoexcept

Definition at line 388 of file apply.hpp.

389 {
390 return __f(std::forward<Args>(__args)...);
391 }

◆ invoke() [2/2]

template<typename Ret >
template<typename Fn , template< typename... > class Tuple, typename... Args, size_t N = sizeof...(Args)>
static Ret tim::mpl::apply< Ret >::invoke ( Fn &&  __f,
Tuple< Args... > &&  __t 
)
inlinestaticnoexcept

Definition at line 398 of file apply.hpp.

399 {
400 using Tuple_t = Tuple<Args...>;
401 return internal::apply<Ret>::template invoke<Fn, Tuple_t>(
402 std::forward<Fn>(__f), std::forward<Tuple_t>(__t), make_index_sequence<N>{});
403 }

◆ join()

template<typename Ret >
template<typename SepT , typename Tuple , size_t... Idx>
static string_t tim::mpl::apply< Ret >::join ( SepT &&  separator,
Tuple &&  __tup,
index_sequence< Idx... >   
)
inlinestaticnoexcept

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