internal::Wrapper< T[N]> Struct Template Reference

`#include <_flow_graph_types_impl.h>`

Inheritance diagram for internal::Wrapper< T[N]>:
Collaboration diagram for internal::Wrapper< T[N]>:

## Classes

struct | _unwind_class

## Public Types

typedef T | value_type
typedef T * | pointer_type
typedef T | ArrayType[N]

## Public Member Functions

const ArrayType & | value () const
| Wrapper (const ArrayType &other)
| Wrapper (const Wrapper &other)
void | CopyTo (void *newSpace) const __TBB_override
| ~Wrapper ()
Public Member Functions inherited from internal::WrapperBase
virtual | ~WrapperBase ()

## Private Member Functions

| Wrapper ()

## Private Attributes

char | value_space [space_size]

## Static Private Attributes

static const size_t | space_size = sizeof(ArrayType) / sizeof(char)

## Detailed Description

### template<typename T, size_t N>
struct internal::Wrapper< T[N]>

Definition at line 474 of file _flow_graph_types_impl.h.

## Member Typedef Documentation

## ArrayType

template<typename T , size_t N>

typedef T internal::Wrapper< T[N]>::ArrayType[N]

Definition at line 478 of file _flow_graph_types_impl.h.

## pointer_type

template<typename T , size_t N>

typedef T* internal::Wrapper< T[N]>::pointer_type

Definition at line 476 of file _flow_graph_types_impl.h.

## value_type

template<typename T , size_t N>

typedef T internal::Wrapper< T[N]>::value_type

Definition at line 475 of file _flow_graph_types_impl.h.

## Constructor & Destructor Documentation

## Wrapper() [1/3]

template<typename T , size_t N>

internal::Wrapper< T[N]>::Wrapper | ( |  | ) |

private

## Wrapper() [2/3]

template<typename T , size_t N>

internal::Wrapper< T[N]>::Wrapper | ( | const ArrayType & | other | ) |

inline explicit

Definition at line 511 of file _flow_graph_types_impl.h.

{
_unwind_class guard((pointer_type)value_space);
pointer_type vp = reinterpret_cast<pointer_type>(&value_space);
for(size_t i = 0; i < N; ++i ) {
(void) new(vp++) value_type(other[i]);
++(guard.already_built);
}
guard.space = NULL;
}
void
void
Definition: ittnotify_static.h:91
internal::Wrapper< T[N]>::pointer_type
T * pointer_type
Definition: _flow_graph_types_impl.h:476
internal::Wrapper< T[N]>::value_space
char value_space[space_size]
Definition: _flow_graph_types_impl.h:485
internal::Wrapper< T[N]>::value_type
T value_type
Definition: _flow_graph_types_impl.h:475

References internal::Wrapper< T >::value_space, and void.

## Wrapper() [3/3]

template<typename T , size_t N>

internal::Wrapper< T[N]>::Wrapper | ( | const Wrapper< T[N]> & | other | ) |

inline explicit

Definition at line 520 of file _flow_graph_types_impl.h.

: WrapperBase() {
// we have to do the heavy lifting to copy contents
_unwind_class guard((pointer_type)value_space);
pointer_type dp = reinterpret_cast<pointer_type>(value_space);
pointer_type sp = reinterpret_cast<pointer_type>(const_cast<char *>(other.value_space));
for(size_t i = 0; i < N; ++i, ++dp, ++sp) {
(void) new(dp) value_type(*sp);
++(guard.already_built);
}
guard.space = NULL;
}

References internal::Wrapper< T >::value_space, and void.

## ~Wrapper()

template<typename T , size_t N>

internal::Wrapper< T[N]>::~Wrapper | ( |  | ) |

inline

Definition at line 536 of file _flow_graph_types_impl.h.

{
// have to destroy explicitly in reverse order
pointer_type vp = reinterpret_cast<pointer_type>(&value_space);
for(size_t i = N; i > 0 ; --i ) vp[i-1].~value_type();
}

References internal::Wrapper< T >::value_space.

## Member Function Documentation

## CopyTo()

template<typename T , size_t N>

void internal::Wrapper< T[N]>::CopyTo | ( | void * | newSpace | ) | const

inline virtual

Reimplemented from internal::WrapperBase.

Definition at line 532 of file _flow_graph_types_impl.h.

{
(void) new(newSpace) Wrapper(*this); // exceptions handled in copy constructor
}
internal::Wrapper< T[N]>::Wrapper
Wrapper()

References void, and internal::Wrapper< T >::Wrapper().

Here is the call graph for this function:

## value()

template<typename T , size_t N>

const ArrayType& internal::Wrapper< T[N]>::value | ( |  | ) | const

inline

Definition at line 502 of file _flow_graph_types_impl.h.

{
char *vp = const_cast<char *>(value_space);
return reinterpret_cast<ArrayType &>(*vp);
}
internal::Wrapper< T[N]>::ArrayType
T ArrayType[N]
Definition: _flow_graph_types_impl.h:478

References internal::Wrapper< T >::value_space.

## Member Data Documentation

## space_size

template<typename T , size_t N>

const size_t internal::Wrapper< T[N]>::space_size = sizeof(ArrayType) / sizeof(char)

static private

Definition at line 484 of file _flow_graph_types_impl.h.

## value_space

template<typename T , size_t N>

char internal::Wrapper< T[N]>::value_space[space_size]

private

Definition at line 485 of file _flow_graph_types_impl.h.

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

- _flow_graph_types_impl.h

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.