third-party/tbb/src/doc/html/a00072.html
interface6
Classes | Public Types | Public Member Functions | Friends | List of all members
tbb::interface6::enumerable_thread_specific< T, Allocator, ETS_key_type > Class Template Reference Containers
The enumerable_thread_specific container. More...
#include <enumerable_thread_specific.h>
Inheritance diagram for tbb::interface6::enumerable_thread_specific< T, Allocator, ETS_key_type >:
|
|
| typedef Allocator | allocator_type |
| | Basic types.
|
| |
| typedef T | value_type |
| |
| typedef T & | reference |
| |
| typedef const T & | const_reference |
| |
| typedef T * | pointer |
| |
| typedef const T * | const_pointer |
| |
| typedef
internal_collection_type::size_type | size_type |
| |
| typedef
internal_collection_type::difference_type | difference_type |
| |
| typedef
internal::enumerable_thread_specific_iterator
< internal_collection_type,
value_type > | iterator |
| |
| typedef
internal::enumerable_thread_specific_iterator
< internal_collection_type,
const value_type > | const_iterator |
| |
| typedef generic_range_type
< iterator > | range_type |
| |
| typedef generic_range_type
< const_iterator > | const_range_type |
| |
|
|
| | enumerable_thread_specific () |
| | Default constructor. Each local instance of T is default constructed.
|
| |
| template<typename Finit#if __TBB_ETS_USE_CPP11, typename = typename internal::enable_if<internal::is_callable_no_args<typename internal::strip<Finit>::type>::value>::type #endif> |
| | enumerable_thread_specific (Finit finit) |
| | Constructor with initializer functor. Each local instance of T is constructed by T(finit()).
|
| |
| | enumerable_thread_specific (const T &exemplar) |
| | Constructor with exemplar. Each local instance of T is copy-constructed from the exemplar.
|
| |
| | enumerable_thread_specific (T &&exemplar) |
| |
| template<typename P1 , typename... P, typename = typename internal::enable_if<!internal::is_callable_no_args<typename internal::strip<P1>::type>::value && !internal::is_compatible_ets<T, typename internal::strip<P1>::type>::value && !internal::is_same_type<T, typename internal::strip<P1>::type>::value >::type> |
| | enumerable_thread_specific (P1 &&arg1, P &&...args) |
| | Variadic constructor with initializer arguments. Each local instance of T is constructed by T(args...)
|
| |
| | ~enumerable_thread_specific () |
| | Destructor.
|
| |
| reference | local () |
| | returns reference to local, discarding exists
|
| |
| reference | local (bool &exists) |
| | Returns reference to calling thread's local copy, creating one if necessary.
|
| |
| size_type | size () const |
| | Get the number of local copies.
|
| |
| bool | empty () const |
| | true if there have been no local copies created
|
| |
| iterator | begin () |
| | begin iterator
|
| |
| iterator | end () |
| | end iterator
|
| |
| const_iterator | begin () const |
| | begin const iterator
|
| |
| const_iterator | end () const |
| | end const iterator
|
| |
| range_type | range (size_t grainsize=1) |
| | Get range for parallel algorithms.
|
| |
| const_range_type | range (size_t grainsize=1) const |
| | Get const range for parallel algorithms.
|
| |
| void | clear () |
| | Destroys local copies.
|
| |
| | enumerable_thread_specific (const enumerable_thread_specific &other) |
| |
| template<typename Alloc , ets_key_usage_type Cachetype> |
| | enumerable_thread_specific (const enumerable_thread_specific< T, Alloc, Cachetype > &other) |
| |
| | enumerable_thread_specific (enumerable_thread_specific &&other) |
| |
| template<typename Alloc , ets_key_usage_type Cachetype> |
| | enumerable_thread_specific (enumerable_thread_specific< T, Alloc, Cachetype > &&other) |
| |
| enumerable_thread_specific & | operator= (const enumerable_thread_specific &other) |
| |
| template<typename Alloc , ets_key_usage_type Cachetype> |
| enumerable_thread_specific & | operator= (const enumerable_thread_specific< T, Alloc, Cachetype > &other) |
| |
| enumerable_thread_specific & | operator= (enumerable_thread_specific &&other) |
| |
| template<typename Alloc , ets_key_usage_type Cachetype> |
| enumerable_thread_specific & | operator= (enumerable_thread_specific< T, Alloc, Cachetype > &&other) |
| |
| template<typename combine_func_t > |
| T | combine (combine_func_t f_combine) |
| |
| template<typename combine_func_t > |
| void | combine_each (combine_func_t f_combine) |
| |
|
| | template<typename U , typename A , ets_key_usage_type C> | | class | enumerable_thread_specific | | |
The enumerable_thread_specific container.
enumerable_thread_specific has the following properties:
- thread-local copies are lazily created, with default, exemplar or function initialization.
- thread-local copies do not move (during lifetime, and excepting clear()) so the address of a copy is invariant.
- the contained objects need not have operator=() defined if combine is not used.
- enumerable_thread_specific containers may be copy-constructed or assigned.
- thread-local copies can be managed by hash-table, or can be accessed via TLS storage for speed.
- outside of parallel contexts, the contents of all thread-local copies are accessible by iterator or using combine or combine_each methods
Segmented iteratorWhen the thread-local objects are containers with input_iterators defined, a segmented iterator may be used to iterate over all the elements of all thread-local copies.combine and combine_each
The documentation for this class was generated from the following file:
Copyright © 2005-2018 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.