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 98 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 101 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 100 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 108 of file _template_helpers.h.

109  : 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 117 of file _template_helpers.h.

117  {
118  return pack_remainder::template call<Ret>(
119  std::forward<F>(f), static_cast<pack_remainder&>(pack),
120  std::forward<Preceding>(params)... , pack.leftmost_value
121  );
122  }

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 124 of file _template_helpers.h.

124  {
125  return pack_remainder::template call<Ret>(
126  std::forward<F>(f), static_cast<const pack_remainder&>(pack),
127  std::forward<Preceding>(params)... , pack.leftmost_value
128  );
129  }

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 131 of file _template_helpers.h.

131  {
132  return pack_remainder::template call<Ret>(
133  std::forward<F>(f), static_cast<pack_remainder&&>(pack),
134  std::forward<Preceding>(params)... , std::move(pack.leftmost_value)
135  );
136  }
void move(tbb_thread &t1, tbb_thread &t2)
Definition: tbb_thread.h:309

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 141 of file _template_helpers.h.

141  {
142  strip<Pack>::type::template call<void>( std::forward<F>(f), std::forward<Pack>(p) );
143 }
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 146 of file _template_helpers.h.

146  {
147  return strip<Pack>::type::template call<Ret>( std::forward<F>(f), std::forward<Pack>(p) );
148 }
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 104 of file _template_helpers.h.

Referenced by call().


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

Copyright © 2005-2018 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.