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 115 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 118 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 117 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 125 of file _template_helpers.h.

126  : 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 134 of file _template_helpers.h.

134  {
135  return pack_remainder::template call<Ret>(
136  std::forward<F>(f), static_cast<pack_remainder&>(pack),
137  std::forward<Preceding>(params)... , pack.leftmost_value
138  );
139  }

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

141  {
142  return pack_remainder::template call<Ret>(
143  std::forward<F>(f), static_cast<const pack_remainder&>(pack),
144  std::forward<Preceding>(params)... , pack.leftmost_value
145  );
146  }

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

148  {
149  return pack_remainder::template call<Ret>(
150  std::forward<F>(f), static_cast<pack_remainder&&>(pack),
151  std::forward<Preceding>(params)... , std::move(pack.leftmost_value)
152  );
153  }
void move(tbb_thread &t1, tbb_thread &t2)
Definition: tbb_thread.h:305

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

158  {
159  strip<Pack>::type::template call<void>( std::forward<F>(f), std::forward<Pack>(p) );
160 }
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 163 of file _template_helpers.h.

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

Referenced by call().


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

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