Intel(R) Threading Building Blocks Doxygen Documentation  version 4.2.3
tbb::concurrent_vector< T, A >::push_back_helper Struct Reference
Inheritance diagram for tbb::concurrent_vector< T, A >::push_back_helper:
Collaboration diagram for tbb::concurrent_vector< T, A >::push_back_helper:

Classes

struct  element_construction_guard
 

Public Member Functions

 push_back_helper (concurrent_vector &vector)
 
pointer internal_push_back_result ()
 
iterator return_iterator_and_dismiss ()
 
- Public Member Functions inherited from tbb::internal::no_copy
 no_copy (const no_copy &)=delete
 
 no_copy ()=default
 

Public Attributes

concurrent_vectorv
 
size_type k
 
element_construction_guard g
 

Detailed Description

template<typename T, class A>
struct tbb::concurrent_vector< T, A >::push_back_helper

Definition at line 1138 of file concurrent_vector.h.

Constructor & Destructor Documentation

◆ push_back_helper()

template<typename T, class A>
tbb::concurrent_vector< T, A >::push_back_helper::push_back_helper ( concurrent_vector vector)
inline

Definition at line 1155 of file concurrent_vector.h.

1155  :
1156  v(vector),
1157  g (static_cast<T*>(v.internal_push_back(sizeof(T),k)))
1158  {}

Member Function Documentation

◆ internal_push_back_result()

template<typename T, class A>
pointer tbb::concurrent_vector< T, A >::push_back_helper::internal_push_back_result ( )
inline

◆ return_iterator_and_dismiss()

template<typename T, class A>
iterator tbb::concurrent_vector< T, A >::push_back_helper::return_iterator_and_dismiss ( )
inline

Definition at line 1161 of file concurrent_vector.h.

1161  {
1162  pointer ptr = g.element;
1163  g.dismiss();
1164  return iterator(v, k, ptr);
1165  }

References tbb::concurrent_vector< T, A >::push_back_helper::element_construction_guard::dismiss(), tbb::concurrent_vector< T, A >::push_back_helper::element_construction_guard::element, tbb::concurrent_vector< T, A >::push_back_helper::g, tbb::concurrent_vector< T, A >::push_back_helper::k, and tbb::concurrent_vector< T, A >::push_back_helper::v.

Here is the call graph for this function:

Member Data Documentation

◆ g

◆ k

template<typename T, class A>
size_type tbb::concurrent_vector< T, A >::push_back_helper::k

◆ v

template<typename T, class A>
concurrent_vector& tbb::concurrent_vector< T, A >::push_back_helper::v

The documentation for this struct was generated from the following file:
tbb::concurrent_vector::push_back_helper::v
concurrent_vector & v
Definition: concurrent_vector.h:1151
tbb::concurrent_vector::push_back_helper::element_construction_guard::element
pointer element
Definition: concurrent_vector.h:1140
tbb::concurrent_vector::push_back_helper::k
size_type k
Definition: concurrent_vector.h:1152
tbb::concurrent_vector::iterator
internal::vector_iterator< concurrent_vector, T > iterator
Definition: concurrent_vector.h:584
tbb::internal::concurrent_vector_base_v3::internal_push_back
void *__TBB_EXPORTED_METHOD internal_push_back(size_type element_size, size_type &index)
Definition: concurrent_vector.cpp:418
tbb::concurrent_vector::pointer
T * pointer
Definition: concurrent_vector.h:581
tbb::concurrent_vector::push_back_helper::element_construction_guard::dismiss
void dismiss()
Definition: concurrent_vector.h:1143
tbb::concurrent_vector::push_back_helper::g
element_construction_guard g
Definition: concurrent_vector.h:1153

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.