Intel(R) Threading Building Blocks Doxygen Documentation  version 4.2.3
tbb::flow::interface10::internal::tagged_msg< TagType, T0, T1, T2, T3, T4, T5, T6, T7, T8, T9 >::variant Class Reference
Collaboration diagram for tbb::flow::interface10::internal::tagged_msg< TagType, T0, T1, T2, T3, T4, T5, T6, T7, T8, T9 >::variant:

Public Member Functions

 variant ()
 
template<typename T >
 variant (const T &x)
 
 variant (const variant &other)
 
void operator= (const variant &rhs)
 
template<typename U >
const U & variant_cast_to () const
 
template<typename U >
bool variant_is_a () const
 
bool variant_is_default_constructed () const
 
 ~variant ()
 

Private Types

typedef pick_tuple_max< N, Tuple, alignment_of >::type AlignType
 
typedef pick_tuple_max< N, Tuple, size_of >::type MaxSizeType
 
typedef tbb::aligned_space< AlignType, MaxNElementsSpaceType
 

Private Attributes

SpaceType my_space
 

Static Private Attributes

static const size_t N = tbb::flow::tuple_size<Tuple>::value
 
static const size_t MaxNBytes = (sizeof(Wrapper<MaxSizeType>)+sizeof(AlignType)-1)
 
static const size_t MaxNElements = MaxNBytes/sizeof(AlignType)
 
static const size_t MaxSize = sizeof(SpaceType)
 

Detailed Description

template<typename TagType, typename T0, typename T1 = tagged_null_type, typename T2 = tagged_null_type, typename T3 = tagged_null_type, typename T4 = tagged_null_type, typename T5 = tagged_null_type, typename T6 = tagged_null_type, typename T7 = tagged_null_type, typename T8 = tagged_null_type, typename T9 = tagged_null_type>
class tbb::flow::interface10::internal::tagged_msg< TagType, T0, T1, T2, T3, T4, T5, T6, T7, T8, T9 >::variant

Definition at line 620 of file flow_graph.h.

Member Typedef Documentation

◆ AlignType

template<typename TagType , typename T0 , typename T1 = tagged_null_type, typename T2 = tagged_null_type, typename T3 = tagged_null_type, typename T4 = tagged_null_type, typename T5 = tagged_null_type, typename T6 = tagged_null_type, typename T7 = tagged_null_type, typename T8 = tagged_null_type, typename T9 = tagged_null_type>
typedef pick_tuple_max<N, Tuple, alignment_of>::type tbb::flow::interface10::internal::tagged_msg< TagType, T0, T1, T2, T3, T4, T5, T6, T7, T8, T9 >::variant::AlignType
private

Definition at line 622 of file flow_graph.h.

◆ MaxSizeType

template<typename TagType , typename T0 , typename T1 = tagged_null_type, typename T2 = tagged_null_type, typename T3 = tagged_null_type, typename T4 = tagged_null_type, typename T5 = tagged_null_type, typename T6 = tagged_null_type, typename T7 = tagged_null_type, typename T8 = tagged_null_type, typename T9 = tagged_null_type>
typedef pick_tuple_max<N, Tuple, size_of>::type tbb::flow::interface10::internal::tagged_msg< TagType, T0, T1, T2, T3, T4, T5, T6, T7, T8, T9 >::variant::MaxSizeType
private

Definition at line 623 of file flow_graph.h.

◆ SpaceType

template<typename TagType , typename T0 , typename T1 = tagged_null_type, typename T2 = tagged_null_type, typename T3 = tagged_null_type, typename T4 = tagged_null_type, typename T5 = tagged_null_type, typename T6 = tagged_null_type, typename T7 = tagged_null_type, typename T8 = tagged_null_type, typename T9 = tagged_null_type>
typedef tbb::aligned_space<AlignType, MaxNElements> tbb::flow::interface10::internal::tagged_msg< TagType, T0, T1, T2, T3, T4, T5, T6, T7, T8, T9 >::variant::SpaceType
private

Definition at line 626 of file flow_graph.h.

Constructor & Destructor Documentation

◆ variant() [1/3]

template<typename TagType , typename T0 , typename T1 = tagged_null_type, typename T2 = tagged_null_type, typename T3 = tagged_null_type, typename T4 = tagged_null_type, typename T5 = tagged_null_type, typename T6 = tagged_null_type, typename T7 = tagged_null_type, typename T8 = tagged_null_type, typename T9 = tagged_null_type>
tbb::flow::interface10::internal::tagged_msg< TagType, T0, T1, T2, T3, T4, T5, T6, T7, T8, T9 >::variant::variant ( )
inline

Definition at line 631 of file flow_graph.h.

637 :
638  template< typename R, typename B > friend class run_and_put_task;

◆ variant() [2/3]

template<typename TagType , typename T0 , typename T1 = tagged_null_type, typename T2 = tagged_null_type, typename T3 = tagged_null_type, typename T4 = tagged_null_type, typename T5 = tagged_null_type, typename T6 = tagged_null_type, typename T7 = tagged_null_type, typename T8 = tagged_null_type, typename T9 = tagged_null_type>
template<typename T >
tbb::flow::interface10::internal::tagged_msg< TagType, T0, T1, T2, T3, T4, T5, T6, T7, T8, T9 >::variant::variant ( const T &  x)
inline

Definition at line 634 of file flow_graph.h.

637  :
638  template< typename R, typename B > friend class run_and_put_task;

◆ variant() [3/3]

template<typename TagType , typename T0 , typename T1 = tagged_null_type, typename T2 = tagged_null_type, typename T3 = tagged_null_type, typename T4 = tagged_null_type, typename T5 = tagged_null_type, typename T6 = tagged_null_type, typename T7 = tagged_null_type, typename T8 = tagged_null_type, typename T9 = tagged_null_type>
tbb::flow::interface10::internal::tagged_msg< TagType, T0, T1, T2, T3, T4, T5, T6, T7, T8, T9 >::variant::variant ( const variant other)
inline

Definition at line 638 of file flow_graph.h.

642  {

◆ ~variant()

template<typename TagType , typename T0 , typename T1 = tagged_null_type, typename T2 = tagged_null_type, typename T3 = tagged_null_type, typename T4 = tagged_null_type, typename T5 = tagged_null_type, typename T6 = tagged_null_type, typename T7 = tagged_null_type, typename T8 = tagged_null_type, typename T9 = tagged_null_type>
tbb::flow::interface10::internal::tagged_msg< TagType, T0, T1, T2, T3, T4, T5, T6, T7, T8, T9 >::variant::~variant ( )
inline

Definition at line 667 of file flow_graph.h.

668  {
669  my_current_count = 0;
670  if (f & rf_clear_edges) {

Member Function Documentation

◆ operator=()

template<typename TagType , typename T0 , typename T1 = tagged_null_type, typename T2 = tagged_null_type, typename T3 = tagged_null_type, typename T4 = tagged_null_type, typename T5 = tagged_null_type, typename T6 = tagged_null_type, typename T7 = tagged_null_type, typename T8 = tagged_null_type, typename T9 = tagged_null_type>
void tbb::flow::interface10::internal::tagged_msg< TagType, T0, T1, T2, T3, T4, T5, T6, T7, T8, T9 >::variant::operator= ( const variant rhs)
inline

Definition at line 645 of file flow_graph.h.

652  }
static tbb::task *const SUCCESSFULLY_ENQUEUED

◆ variant_cast_to()

template<typename TagType , typename T0 , typename T1 = tagged_null_type, typename T2 = tagged_null_type, typename T3 = tagged_null_type, typename T4 = tagged_null_type, typename T5 = tagged_null_type, typename T6 = tagged_null_type, typename T7 = tagged_null_type, typename T8 = tagged_null_type, typename T9 = tagged_null_type>
template<typename U >
const U& tbb::flow::interface10::internal::tagged_msg< TagType, T0, T1, T2, T3, T4, T5, T6, T7, T8, T9 >::variant::variant_cast_to ( ) const
inline

Definition at line 655 of file flow_graph.h.

668  {

◆ variant_is_a()

template<typename TagType , typename T0 , typename T1 = tagged_null_type, typename T2 = tagged_null_type, typename T3 = tagged_null_type, typename T4 = tagged_null_type, typename T5 = tagged_null_type, typename T6 = tagged_null_type, typename T7 = tagged_null_type, typename T8 = tagged_null_type, typename T9 = tagged_null_type>
template<typename U >
bool tbb::flow::interface10::internal::tagged_msg< TagType, T0, T1, T2, T3, T4, T5, T6, T7, T8, T9 >::variant::variant_is_a ( ) const
inline

Definition at line 663 of file flow_graph.h.

668 {

◆ variant_is_default_constructed()

template<typename TagType , typename T0 , typename T1 = tagged_null_type, typename T2 = tagged_null_type, typename T3 = tagged_null_type, typename T4 = tagged_null_type, typename T5 = tagged_null_type, typename T6 = tagged_null_type, typename T7 = tagged_null_type, typename T8 = tagged_null_type, typename T9 = tagged_null_type>
bool tbb::flow::interface10::internal::tagged_msg< TagType, T0, T1, T2, T3, T4, T5, T6, T7, T8, T9 >::variant::variant_is_default_constructed ( ) const
inline

Definition at line 665 of file flow_graph.h.

668 {

Member Data Documentation

◆ MaxNBytes

template<typename TagType , typename T0 , typename T1 = tagged_null_type, typename T2 = tagged_null_type, typename T3 = tagged_null_type, typename T4 = tagged_null_type, typename T5 = tagged_null_type, typename T6 = tagged_null_type, typename T7 = tagged_null_type, typename T8 = tagged_null_type, typename T9 = tagged_null_type>
const size_t tbb::flow::interface10::internal::tagged_msg< TagType, T0, T1, T2, T3, T4, T5, T6, T7, T8, T9 >::variant::MaxNBytes = (sizeof(Wrapper<MaxSizeType>)+sizeof(AlignType)-1)
staticprivate

Definition at line 624 of file flow_graph.h.

◆ MaxNElements

template<typename TagType , typename T0 , typename T1 = tagged_null_type, typename T2 = tagged_null_type, typename T3 = tagged_null_type, typename T4 = tagged_null_type, typename T5 = tagged_null_type, typename T6 = tagged_null_type, typename T7 = tagged_null_type, typename T8 = tagged_null_type, typename T9 = tagged_null_type>
const size_t tbb::flow::interface10::internal::tagged_msg< TagType, T0, T1, T2, T3, T4, T5, T6, T7, T8, T9 >::variant::MaxNElements = MaxNBytes/sizeof(AlignType)
staticprivate

Definition at line 625 of file flow_graph.h.

◆ MaxSize

template<typename TagType , typename T0 , typename T1 = tagged_null_type, typename T2 = tagged_null_type, typename T3 = tagged_null_type, typename T4 = tagged_null_type, typename T5 = tagged_null_type, typename T6 = tagged_null_type, typename T7 = tagged_null_type, typename T8 = tagged_null_type, typename T9 = tagged_null_type>
const size_t tbb::flow::interface10::internal::tagged_msg< TagType, T0, T1, T2, T3, T4, T5, T6, T7, T8, T9 >::variant::MaxSize = sizeof(SpaceType)
staticprivate

Definition at line 628 of file flow_graph.h.

◆ my_space

template<typename TagType , typename T0 , typename T1 = tagged_null_type, typename T2 = tagged_null_type, typename T3 = tagged_null_type, typename T4 = tagged_null_type, typename T5 = tagged_null_type, typename T6 = tagged_null_type, typename T7 = tagged_null_type, typename T8 = tagged_null_type, typename T9 = tagged_null_type>
SpaceType tbb::flow::interface10::internal::tagged_msg< TagType, T0, T1, T2, T3, T4, T5, T6, T7, T8, T9 >::variant::my_space
private

Definition at line 627 of file flow_graph.h.

◆ N

template<typename TagType , typename T0 , typename T1 = tagged_null_type, typename T2 = tagged_null_type, typename T3 = tagged_null_type, typename T4 = tagged_null_type, typename T5 = tagged_null_type, typename T6 = tagged_null_type, typename T7 = tagged_null_type, typename T8 = tagged_null_type, typename T9 = tagged_null_type>
const size_t tbb::flow::interface10::internal::tagged_msg< TagType, T0, T1, T2, T3, T4, T5, T6, T7, T8, T9 >::variant::N = tbb::flow::tuple_size<Tuple>::value
staticprivate

Definition at line 621 of file flow_graph.h.


The documentation for this class 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.