Home ⌂Doc Index ◂Up ▴
Intel(R) Threading Building Blocks Doxygen Documentation  version 4.2.3
tbb::concurrent_vector< T, A >::internal_loop_guide Class Reference

Exception-aware helper class for filling a segment by exception-danger operators of user class. More...

Inheritance diagram for tbb::concurrent_vector< T, A >::internal_loop_guide:
Collaboration diagram for tbb::concurrent_vector< T, A >::internal_loop_guide:

Public Member Functions

 internal_loop_guide (size_type ntrials, void *ptr)
 
void init ()
 
void init (const void *src)
 
void copy (const void *src)
 
void assign (const void *src)
 
void move_assign (const void *src)
 
void move_construct (const void *src)
 
template<class I >
void iterate (I &src)
 
 ~internal_loop_guide ()
 

Static Public Member Functions

static const T * as_const_pointer (const void *ptr)
 
static T * as_pointer (const void *src)
 

Public Attributes

const pointer array
 
const size_type n
 
size_type i
 

Additional Inherited Members

- Private Member Functions inherited from tbb::internal::no_copy
 no_copy (const no_copy &)=delete
 
 no_copy ()=default
 

Detailed Description

template<typename T, class A>
class tbb::concurrent_vector< T, A >::internal_loop_guide

Exception-aware helper class for filling a segment by exception-danger operators of user class.

Definition at line 1106 of file concurrent_vector.h.

Constructor & Destructor Documentation

◆ internal_loop_guide()

template<typename T, class A>
tbb::concurrent_vector< T, A >::internal_loop_guide::internal_loop_guide ( size_type  ntrials,
void ptr 
)
inline

◆ ~internal_loop_guide()

template<typename T, class A>
tbb::concurrent_vector< T, A >::internal_loop_guide::~internal_loop_guide ( )
inline

Definition at line 1131 of file concurrent_vector.h.

1131  {
1132  if(i < n) {// if an exception was raised, fill the rest of items with zeros
1134  }
1135  }
void handle_unconstructed_elements(T *array, size_t n_of_elements)
Exception helper function.

References tbb::concurrent_vector< T, A >::internal_loop_guide::array, tbb::internal::handle_unconstructed_elements(), tbb::concurrent_vector< T, A >::internal_loop_guide::i, and tbb::concurrent_vector< T, A >::internal_loop_guide::n.

Here is the call graph for this function:

Member Function Documentation

◆ as_const_pointer()

template<typename T, class A>
static const T* tbb::concurrent_vector< T, A >::internal_loop_guide::as_const_pointer ( const void ptr)
inlinestatic

Definition at line 1112 of file concurrent_vector.h.

1112 { return static_cast<const T *>(ptr); }

Referenced by tbb::concurrent_vector< T, A >::internal_loop_guide::assign(), tbb::concurrent_vector< T, A >::internal_loop_guide::copy(), and tbb::concurrent_vector< T, A >::internal_loop_guide::init().

Here is the caller graph for this function:

◆ as_pointer()

template<typename T, class A>
static T* tbb::concurrent_vector< T, A >::internal_loop_guide::as_pointer ( const void src)
inlinestatic

Definition at line 1113 of file concurrent_vector.h.

1113 { return static_cast<T*>(const_cast<void *>(src)); }

Referenced by tbb::concurrent_vector< T, A >::internal_loop_guide::move_assign(), and tbb::concurrent_vector< T, A >::internal_loop_guide::move_construct().

Here is the caller graph for this function:

◆ assign()

template<typename T, class A>
void tbb::concurrent_vector< T, A >::internal_loop_guide::assign ( const void src)
inline

◆ copy()

template<typename T, class A>
void tbb::concurrent_vector< T, A >::internal_loop_guide::copy ( const void src)
inline

Definition at line 1119 of file concurrent_vector.h.

References tbb::concurrent_vector< T, A >::internal_loop_guide::array, tbb::concurrent_vector< T, A >::internal_loop_guide::as_const_pointer(), tbb::concurrent_vector< T, A >::internal_loop_guide::i, and tbb::concurrent_vector< T, A >::internal_loop_guide::n.

Here is the call graph for this function:

◆ init() [1/2]

◆ init() [2/2]

template<typename T, class A>
void tbb::concurrent_vector< T, A >::internal_loop_guide::init ( const void src)
inline

Definition at line 1118 of file concurrent_vector.h.

References tbb::concurrent_vector< T, A >::internal_loop_guide::array, tbb::concurrent_vector< T, A >::internal_loop_guide::as_const_pointer(), tbb::concurrent_vector< T, A >::internal_loop_guide::i, and tbb::concurrent_vector< T, A >::internal_loop_guide::n.

Here is the call graph for this function:

◆ iterate()

template<typename T, class A>
template<class I >
void tbb::concurrent_vector< T, A >::internal_loop_guide::iterate ( I &  src)
inline

◆ move_assign()

template<typename T, class A>
void tbb::concurrent_vector< T, A >::internal_loop_guide::move_assign ( const void src)
inline

Definition at line 1122 of file concurrent_vector.h.

1122 { for(; i < n; ++i) array[i] = std::move(as_pointer(src)[i]); }
void move(tbb_thread &t1, tbb_thread &t2)
Definition: tbb_thread.h:319

References tbb::concurrent_vector< T, A >::internal_loop_guide::array, tbb::concurrent_vector< T, A >::internal_loop_guide::as_pointer(), tbb::concurrent_vector< T, A >::internal_loop_guide::i, tbb::move(), and tbb::concurrent_vector< T, A >::internal_loop_guide::n.

Here is the call graph for this function:

◆ move_construct()

template<typename T, class A>
void tbb::concurrent_vector< T, A >::internal_loop_guide::move_construct ( const void src)
inline

Definition at line 1123 of file concurrent_vector.h.

1123 { for(; i < n; ++i) new( &array[i] ) T( std::move(as_pointer(src)[i]) ); }
void move(tbb_thread &t1, tbb_thread &t2)
Definition: tbb_thread.h:319

References tbb::concurrent_vector< T, A >::internal_loop_guide::array, tbb::concurrent_vector< T, A >::internal_loop_guide::as_pointer(), tbb::concurrent_vector< T, A >::internal_loop_guide::i, tbb::move(), and tbb::concurrent_vector< T, A >::internal_loop_guide::n.

Here is the call graph for this function:

Member Data Documentation

◆ array

◆ i

◆ n


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

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.