Home ⌂Doc Index ◂Up ▴
Intel(R) Threading Building Blocks Doxygen Documentation  version 4.2.3
tbb::internal::stored_pack< T, Types... > Struct Template Reference

#include <_template_helpers.h>

Inheritance diagram for tbb::internal::stored_pack< T, Types... >:
Collaboration diagram for tbb::internal::stored_pack< T, Types... >:

Public Types

typedef stored_pack< T, Types... > pack_type
 
typedef stored_pack< Types... > pack_remainder
 

Public Member Functions

 stored_pack (T &&t, Types &&... types)
 

Public Attributes

strip< T >::type leftmost_value
 

Static Protected Member Functions

template<typename Ret , typename F , typename... Preceding>
static Ret call (F &&f, pack_type &pack, Preceding &&... params)
 
template<typename Ret , typename F , typename... Preceding>
static Ret call (F &&f, const pack_type &pack, Preceding &&... params)
 
template<typename Ret , typename F , typename... Preceding>
static Ret call (F &&f, pack_type &&pack, Preceding &&... params)
 

Friends

template<typename F , typename Pack >
void call (F &&f, Pack &&p)
 Calls the given function with arguments taken from a stored_pack. More...
 
template<typename Ret , typename F , typename Pack >
Ret call_and_return (F &&f, Pack &&p)
 

Detailed Description

template<typename T, typename... Types>
struct tbb::internal::stored_pack< T, Types... >

Definition at line 132 of file _template_helpers.h.

Member Typedef Documentation

◆ pack_remainder

template<typename T , typename... Types>
typedef stored_pack<Types...> tbb::internal::stored_pack< T, Types... >::pack_remainder

Definition at line 135 of file _template_helpers.h.

◆ pack_type

template<typename T , typename... Types>
typedef stored_pack<T, Types...> tbb::internal::stored_pack< T, Types... >::pack_type

Definition at line 134 of file _template_helpers.h.

Constructor & Destructor Documentation

◆ stored_pack()

template<typename T , typename... Types>
tbb::internal::stored_pack< T, Types... >::stored_pack ( T &&  t,
Types &&...  types 
)
inline

Definition at line 142 of file _template_helpers.h.

143  : pack_remainder(std::forward<Types>(types)...), leftmost_value(std::forward<T>(t)) {}

Member Function Documentation

◆ call() [1/3]

template<typename T , typename... Types>
template<typename Ret , typename F , typename... Preceding>
static Ret tbb::internal::stored_pack< T, Types... >::call ( F &&  f,
pack_type pack,
Preceding &&...  params 
)
inlinestaticprotected

Definition at line 151 of file _template_helpers.h.

151  {
152  return pack_remainder::template call<Ret>(
153  std::forward<F>(f), static_cast<pack_remainder&>(pack),
154  std::forward<Preceding>(params)... , pack.leftmost_value
155  );
156  }

References leftmost_value.

◆ call() [2/3]

template<typename T , typename... Types>
template<typename Ret , typename F , typename... Preceding>
static Ret tbb::internal::stored_pack< T, Types... >::call ( F &&  f,
const pack_type pack,
Preceding &&...  params 
)
inlinestaticprotected

Definition at line 158 of file _template_helpers.h.

158  {
159  return pack_remainder::template call<Ret>(
160  std::forward<F>(f), static_cast<const pack_remainder&>(pack),
161  std::forward<Preceding>(params)... , pack.leftmost_value
162  );
163  }

References leftmost_value.

◆ call() [3/3]

template<typename T , typename... Types>
template<typename Ret , typename F , typename... Preceding>
static Ret tbb::internal::stored_pack< T, Types... >::call ( F &&  f,
pack_type &&  pack,
Preceding &&...  params 
)
inlinestaticprotected

Definition at line 165 of file _template_helpers.h.

165  {
166  return pack_remainder::template call<Ret>(
167  std::forward<F>(f), static_cast<pack_remainder&&>(pack),
168  std::forward<Preceding>(params)... , std::move(pack.leftmost_value)
169  );
170  }
void move(tbb_thread &t1, tbb_thread &t2)
Definition: tbb_thread.h:319

References tbb::move().

Here is the call graph for this function:

Friends And Related Function Documentation

◆ call

template<typename T , typename... Types>
template<typename F , typename Pack >
void call ( F &&  f,
Pack &&  p 
)
friend

Calls the given function with arguments taken from a stored_pack.

Definition at line 175 of file _template_helpers.h.

175  {
176  strip<Pack>::type::template call<void>( std::forward<F>(f), std::forward<Pack>(p) );
177 }
void const char const char int ITT_FORMAT __itt_group_sync p

◆ call_and_return

template<typename T , typename... Types>
template<typename Ret , typename F , typename Pack >
Ret call_and_return ( F &&  f,
Pack &&  p 
)
friend

Definition at line 180 of file _template_helpers.h.

180  {
181  return strip<Pack>::type::template call<Ret>( std::forward<F>(f), std::forward<Pack>(p) );
182 }
void const char const char int ITT_FORMAT __itt_group_sync p

Member Data Documentation

◆ leftmost_value

template<typename T , typename... Types>
strip<T>::type tbb::internal::stored_pack< T, Types... >::leftmost_value

Definition at line 138 of file _template_helpers.h.

Referenced by call().


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

Copyright © 2005-2020 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its subsidiaries in the United States and other countries.

* Other names and brands may be claimed as the property of others.