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.

: 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,
|  | const pack_type & | pack,
|  | Preceding &&... | params
| ) |  |

inline static protected

Definition at line 158 of file _template_helpers.h.

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

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,
|  | pack_type && | pack,
|  | Preceding &&... | params
| ) |  |

inline static protected

Definition at line 165 of file _template_helpers.h.

{
return pack_remainder::template call<Ret>(
std::forward<F>(f), static_cast<pack_remainder&&>(pack),
std::forward<Preceding>(params)... , std::move(pack.leftmost_value)
);
}

References tbb::move().

Here is the call graph for this function:

## 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
| ) |  |

inline static protected

Definition at line 151 of file _template_helpers.h.

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

References leftmost_value.

## 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.

{
strip<Pack>::type::template call<void>( std::forward<F>(f), std::forward<Pack>(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.

{
return strip<Pack>::type::template call<Ret>( std::forward<F>(f), std::forward<Pack>(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:

- _template_helpers.h

tbb::move
void move(tbb_thread &t1, tbb_thread &t2)
Definition: tbb_thread.h:319
tbb::internal::stored_pack< T, Types... >::pack_remainder
stored_pack< Types... > pack_remainder
Definition: _template_helpers.h:135
tbb::internal::stored_pack< T, Types... >::leftmost_value
strip< T >::type leftmost_value
Definition: _template_helpers.h:138
p
void const char const char int ITT_FORMAT __itt_group_sync p
Definition: ittnotify_static.h:91

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.