Compare commits

..
1037 changed files with 25136 additions and 83396 deletions
-149
View File
@@ -2,155 +2,6 @@
The list of most significant changes made over time in
Intel(R) Threading Building Blocks (Intel(R) TBB).
Intel TBB 2018 Update 2
TBB_INTERFACE_VERSION == 10002
Changes (w.r.t. Intel TBB 2018 Update 1):
- Added support for Android* NDK r16, macOS* 10.13, Fedora* 26.
- Binaries for Universal Windows Driver (vc14_uwd) now link with static
Microsoft* runtime libraries, and are only available in commercial
releases.
- Extended flow graph documentation with more code samples.
Preview Features:
- Added a Python* module for multi-processing computations in numeric
Python* libraries.
Bugs fixed:
- Fixed constructors of concurrent_hash_map to be exception-safe.
- Fixed auto-initialization in the main thread to be cleaned up at
shutdown.
- Fixed a crash when tbbmalloc_proxy is used together with dbghelp.
- Fixed static_partitioner to assign tasks properly in case of nested
parallelism.
------------------------------------------------------------------------
Intel TBB 2018 Update 1
TBB_INTERFACE_VERSION == 10001
Changes (w.r.t. Intel TBB 2018):
- Added lambda-friendly overloads for parallel_scan.
- Added support of static and simple partitioners in
parallel_deterministic_reduce.
Preview Features:
- Added initial support for Flow Graph Analyzer to parallel_for.
- Added reservation support in overwrite_node and write_once_node.
Bugs fixed:
- Fixed a potential deadlock scenario in the flow graph that affected
Intel TBB 2018.
------------------------------------------------------------------------
Intel TBB 2018
TBB_INTERFACE_VERSION == 10000
Changes (w.r.t. Intel TBB 2017 Update 7):
- Introduced Parallel STL, an implementation of the C++ standard
library algorithms with support for execution policies. For more
information, see Getting Started with Parallel STL
(https://software.intel.com/en-us/get-started-with-pstl).
- this_task_arena::isolate() function is now a fully supported feature.
- this_task_arena::isolate() function and task_arena::execute() method
were extended to pass on the value returned by the executed functor
(requires C++11).
- task_arena::enqueue() and task_group::run() methods extended to accept
move-only functors.
- A flow graph now spawns all tasks into the same task arena,
and waiting for graph completion also happens in that arena.
- Improved support for Flow Graph Analyzer in async_node, opencl_node,
and composite_node.
- Added support for Android* NDK r15, r15b.
- Added support for Universal Windows Platform.
- Increased minimally supported version of macOS*
(MACOSX_DEPLOYMENT_TARGET) to 10.11.
Changes affecting backward compatibility:
- Internal layout changes in some flow graph classes;
- Several undocumented methods are removed from class graph,
including set_active() and is_active().
- Due to incompatible changes, the namespace version is updated
for the flow graph; recompilation is recommended for all
binaries that use the flow graph classes.
Preview Features:
- opencl_node can be used with any graph object; class opencl_graph
is removed.
- graph::wait_for_all() now automatically waits for all not yet consumed
async_msg objects.
- Improved concurrent_lru_cache::handle_object to support C++11 move
semantics, default construction, and conversion to bool.
Bugs fixed:
- Fixed a bug preventing use of streaming_node and opencl_node with
Clang; inspired by a contribution from Francisco Facioni.
- Fixed this_task_arena::isolate() function to work correctly with
parallel_invoke and parallel_do algorithms.
- Fixed a memory leak in composite_node.
- Fixed an assertion failure in debug tbbmalloc binaries when
TBBMALLOC_CLEAN_ALL_BUFFERS is used.
------------------------------------------------------------------------
Intel TBB 2017 Update 8
TBB_INTERFACE_VERSION == 9108
Changes (w.r.t. Intel TBB 2017 Update 7):
Bugs fixed:
- Fixed an assertion failure in debug tbbmalloc binaries when
TBBMALLOC_CLEAN_ALL_BUFFERS is used.
------------------------------------------------------------------------
Intel TBB 2017 Update 7
TBB_INTERFACE_VERSION == 9107
Changes (w.r.t. Intel TBB 2017 Update 6):
- In the huge pages mode, the memory allocator now is also able to use
transparent huge pages.
Preview Features:
- Added support for Intel TBB integration into CMake-aware
projects, with valuable guidance and feedback provided by Brad King
(Kitware).
Bugs fixed:
- Fixed scalable_allocation_command(TBBMALLOC_CLEAN_ALL_BUFFERS, 0)
to process memory left after exited threads.
------------------------------------------------------------------------
Intel TBB 2017 Update 6
TBB_INTERFACE_VERSION == 9106
Changes (w.r.t. Intel TBB 2017 Update 5):
- Added support for Android* NDK r14.
Preview Features:
- Added a blocking terminate extension to the task_scheduler_init class
that allows an object to wait for termination of worker threads.
Bugs fixed:
- Fixed compilation and testing issues with MinGW (GCC 6).
- Fixed compilation with /std:c++latest option of VS 2017
(https://github.com/01org/tbb/issues/13).
------------------------------------------------------------------------
Intel TBB 2017 Update 5
TBB_INTERFACE_VERSION == 9105
+4 -2
View File
@@ -50,11 +50,13 @@ rml: mkdir
$(MAKE) -C "$(work_dir)_debug" -r -f $(tbb_root)/build/Makefile.rml cfg=debug
$(MAKE) -C "$(work_dir)_release" -r -f $(tbb_root)/build/Makefile.rml cfg=release
examples: tbb tbbmalloc
$(MAKE) -C examples -r -f Makefile tbb_root=.. release test
python: tbb
$(MAKE) -C "$(work_dir)_release" -rf $(tbb_root)/python/Makefile install
python: mkdir
$(MAKE) -C "$(work_dir)_release" -r -f $(tbb_root)/build/Makefile.tbb cfg=release
bash -c ". $(work_dir)_release$(SLASH)tbbvars.sh && $(MAKE) -rC '$(full_tbb_root)/python' CXX=$(compiler) install test-install"
.PHONY: clean clean_examples mkdir info
+2 -17
View File
@@ -1,5 +1,5 @@
# Intel(R) Threading Building Blocks 2018 Update 2
[![Stable release](https://img.shields.io/badge/version-2018_U2-green.svg)](https://github.com/01org/tbb/releases/tag/2018_U2)
# Intel(R) Threading Building Blocks 2017 Update 5
[![Stable release](https://img.shields.io/badge/version-2017_U5-green.svg)](https://github.com/01org/tbb/releases/tag/2017_U5)
[![Apache License Version 2.0](https://img.shields.io/badge/license-Apache_2.0-green.svg)](LICENSE)
Intel(R) Threading Building Blocks (Intel(R) TBB) lets you easily write parallel C++ programs that take
@@ -8,21 +8,6 @@ full advantage of multicore performance, that are portable, composable and have
## Release Information
Here are the latest [Changes](CHANGES) and [Release Notes](doc/Release_Notes.txt) (contains system requirements and known issues).
## tbb_tutorials branch information
This release provides additional TBB examples for workshops, conferences, etc.
Head revision contains tutorials for all events and code base for the latest event. To get tutorials with original code base, please use specific tags.
* [PPoPP 2018](https://ppopp18.sigplan.org/) - code base: TBB 2018 U2 - tag: [tutorials_ppopp18](https://github.com/01org/tbb/tree/tutorials_ppopp18)
* [examples/ppopp18](examples/ppopp18): exercises 3, 4 and 5 depend on OpenCL\* (lab2)
* [SC 17](https://sc17.supercomputing.org/) - code base: TBB 2018 U1 - tag: [tutorials_sc17](https://github.com/01org/tbb/tree/tutorials_sc17)
* [doc/sc17_slides](doc/sc17_slides)
* [examples/sc17_hands_on](examples/sc17_hands_on): exercises depend on OpenCV 3.1.0, exercise 2 requires a video file (sc17_hands_on/input/input.avi) that is not part of this branch
* [examples/sc17_hetero](examples/sc17_hetero): exercises 3, 4 and 5 depend on OpenCL\*
* [EURO-PAR 2017](https://europar2017.usc.es/) - code base: TBB 2017 U3 - tag: [tutorials_europar17](https://github.com/01org/tbb/tree/tutorials_europar17)
* [examples/europar17](examples/europar17)
* [PPoPP 2017](https://ppopp18.sigplan.org/) - code base: TBB 2017 U3 - tag: [tutorials_ppopp17](https://github.com/01org/tbb/tree/tutorials_ppopp17)
* [examples/ppopp17](examples/ppopp17)
## Documentation
* Intel(R) TBB [tutorial](https://software.intel.com/en-us/tbb-tutorial)
* Intel(R) TBB general documentation: [stable](https://software.intel.com/en-us/tbb-documentation)
+5 -9
View File
@@ -83,7 +83,7 @@ $(MALLOC.DLL): tbbmalloc.def
endif
$(MALLOC.DLL) $(MALLOCPROXY.DLL): CPLUS_FLAGS += $(SDL_FLAGS)
$(MALLOC.DLL) $(MALLOCPROXY.DLL): M_CPLUS_FLAGS += $(SDL_FLAGS)
$(MALLOC.DLL) $(MALLOCPROXY.DLL): M_CPLUS_FLAGS += $(SLD_FLAGS)
$(MALLOC.DLL): BUILDING_LIBRARY = $(MALLOC.DLL)
$(MALLOC.DLL): $(MALLOC.OBJ) $(MALLOC.RES) $(MALLOC_NO_VERSION.DLL)
$(subst $(CPLUS),$(CONLY),$(LIB_LINK_CMD)) $(LIB_OUTPUT_KEY)$(MALLOC.DLL) $(MALLOC.OBJ) $(MALLOC.RES) $(LIB_LINK_LIBS) $(MALLOC_LINK_FLAGS)
@@ -147,12 +147,6 @@ endif
# -----------------------------------------------------
# ------------ Set test specific variables ------------
# TODO: implement accurate warning suppression for tests to unify with Makefile.test.
$(MALLOC_TESTS): CPLUS_FLAGS += $(TEST_WARNING_KEY) $(if $(no_exceptions),$(DEFINE_KEY)__TBB_TEST_NO_EXCEPTIONS=1)
$(MALLOC_TESTS): M_CPLUS_FLAGS += $(TEST_WARNING_KEY) $(if $(no_exceptions),$(DEFINE_KEY)__TBB_TEST_NO_EXCEPTIONS=1)
$(MALLOC_TESTS): INCLUDES += $(INCLUDE_TEST_HEADERS)
$(MALLOC_TESTS): M_INCLUDES += $(INCLUDE_TEST_HEADERS)
ifeq (windows.gcc,$(tbb_os).$(compiler))
test_malloc_overload.$(TEST_EXT): LIBS += $(MALLOCPROXY.LIB)
endif
@@ -165,6 +159,8 @@ MALLOC_LINK_PROXY_TESTS = test_malloc_overload_proxy.$(TEST_EXT)
MALLOC_ADD_DLL_TESTS = test_malloc_lib_unload.$(TEST_EXT) test_malloc_used_by_lib.$(TEST_EXT) \
test_malloc_atexit.$(TEST_EXT)
# TODO: implement accurate warning suppression for tests to unify with Makefile.test.
$(MALLOC_M_CPLUS_TESTS): CPLUS_FLAGS=$(M_CPLUS_FLAGS)
$(MALLOC_M_CPLUS_TESTS): INCLUDES=$(M_INCLUDES)
$(MALLOC_NO_LIB_TESTS): LINK_MALLOC.LIB=
@@ -202,8 +198,8 @@ test_malloc_whitebox.$(TEST_EXT): LINK_FILES+=$(MALLOC_ASM.OBJ)
# Some _dll targets need to restore variables since they are changed by parent
# target-specific rule of its .exe targets
test_malloc_lib_unload_dll.$(DLL): CPLUS_FLAGS=$(ORIG_CPLUS_FLAGS) $(if $(no_exceptions),$(DEFINE_KEY)__TBB_TEST_NO_EXCEPTIONS=1)
test_malloc_lib_unload_dll.$(DLL): INCLUDES=$(ORIG_INCLUDES) $(INCLUDE_TEST_HEADERS)
test_malloc_lib_unload_dll.$(DLL): CPLUS_FLAGS=$(ORIG_CPLUS_FLAGS)
test_malloc_lib_unload_dll.$(DLL): INCLUDES=$(ORIG_INCLUDES)
test_malloc_used_by_lib_dll.$(DLL): CPLUS_FLAGS=$(subst /MT,/LD,$(M_CPLUS_FLAGS))
test_malloc_used_by_lib_dll.$(DLL): LINK_FILES+=$(ORIG_LINK_MALLOC.LIB)
+9 -22
View File
@@ -35,9 +35,7 @@ DEBUG_SUFFIX=$(findstring _debug,$(call cross_cfg,_$(cfg)))
#------------------------------------------------------------
VPATH = $(tbb_root)/src/tbb/$(ASSEMBLY_SOURCE) $(tbb_root)/src/tbb $(tbb_root)/src/rml/client $(tbb_root)/src/old $(tbb_root)/src/test $(tbb_root)/src/perf
CPLUS_FLAGS += $(if $(crosstest),$(DEFINE_KEY)__TBB_NO_IMPLICIT_LINKAGE=1) \
$(if $(no_exceptions),$(DEFINE_KEY)__TBB_TEST_NO_EXCEPTIONS=1) \
$(if $(LINK_TBB.LIB),$(DEFINE_KEY)TEST_USES_TBB=1)
CPLUS_FLAGS += $(if $(crosstest),$(DEFINE_KEY)__TBB_NO_IMPLICIT_LINKAGE=1) $(if $(LINK_TBB.LIB),$(DEFINE_KEY)TEST_USES_TBB=1)
TEST_PREREQUISITE+=$(TBB.LIB)
LINK_FILES+=$(LINK_TBB.LIB)
@@ -65,15 +63,14 @@ SCHEDULER_DEPENDENCIES = $(TBB_ASM.OBJ) tbb_misc.$(OBJ)
# These executables don't depend on the TBB library, but include core .cpp files directly
SCHEDULER_DIRECTLY_INCLUDED = test_task_leaks.$(TEST_EXT) \
test_task_assertions.$(TEST_EXT) \
test_fast_random.$(TEST_EXT) \
test_global_control_whitebox.$(TEST_EXT) \
test_concurrent_queue_whitebox.$(TEST_EXT)
test_task_assertions.$(TEST_EXT) \
test_fast_random.$(TEST_EXT) \
test_global_control_whitebox.$(TEST_EXT) \
test_concurrent_queue_whitebox.$(TEST_EXT)
# Necessary to locate version_string.ver referenced from directly included tbb_misc.cpp
INCLUDES += $(INCLUDE_KEY). $(INCLUDE_TEST_HEADERS)
$(SCHEDULER_DIRECTLY_INCLUDED): CPLUS_FLAGS += $(DSE_KEY)
$(SCHEDULER_DIRECTLY_INCLUDED): WARNING_KEY += $(WARNING_SUPPRESS)
$(SCHEDULER_DIRECTLY_INCLUDED): LIBS += $(LIBDL)
#tbb.lib must not be linked to scheduler white box tests in order to not violate ODR
@@ -106,12 +103,10 @@ test_dynamic_link.$(TEST_EXT): LIBS += $(LIBDL)
# Resolving issue with the number of sections that an object file can contain
ifneq (,$(BIGOBJ_KEY))
TEST_BIGOBJ = test_opencl_node.$(TEST_EXT) \
test_join_node.$(TEST_EXT) \
test_atomic.$(TEST_EXT) \
test_concurrent_unordered_set.$(TEST_EXT) \
test_concurrent_unordered_map.$(TEST_EXT) \
test_join_node_key_matching.$(TEST_EXT) \
test_join_node_msg_key_matching.$(TEST_EXT) \
test_join_node.$(TEST_EXT)
test_concurrent_unordered_map.$(TEST_EXT)
$(TEST_BIGOBJ): override CXXFLAGS += $(BIGOBJ_KEY)
endif
@@ -190,8 +185,6 @@ TEST_TBB_PLAIN.EXE = test_assembly.$(TEST_EXT) \
test_function_node.$(TEST_EXT) \
test_limiter_node.$(TEST_EXT) \
test_join_node.$(TEST_EXT) \
test_join_node_key_matching.$(TEST_EXT) \
test_join_node_msg_key_matching.$(TEST_EXT) \
test_buffer_node.$(TEST_EXT) \
test_queue_node.$(TEST_EXT) \
test_priority_queue_node.$(TEST_EXT) \
@@ -216,12 +209,6 @@ TEST_TBB_PLAIN.EXE = test_assembly.$(TEST_EXT) \
test_async_msg.$(TEST_EXT) \
test_tbb_version.$(TEST_EXT) # insert new files right above
# These tests depend on other technologies
TEST_TBB_SPECIAL.EXE = test_openmp.$(TEST_EXT) \
test_cilk_interop.$(TEST_EXT) \
test_gfx_factory.$(TEST_EXT) \
test_opencl_node.$(TEST_EXT)
# skip mode_plugin for now
skip_tests += test_model_plugin
@@ -251,7 +238,7 @@ endif
test_opencl_node.$(TEST_EXT): LIBS += $(OPENCL.LIB)
$(TEST_TBB_PLAIN.EXE) $(TEST_TBB_SPECIAL.EXE): WARNING_KEY += $(TEST_WARNING_KEY)
$(TEST_TBB_PLAIN.EXE): WARNING_KEY += $(TEST_WARNING_KEY)
# Run tests that are in SCHEDULER_DIRECTLY_INCLUDED and TEST_TBB_PLAIN.EXE but not in skip_tests (which is specified by user)
TESTS_TO_RUN := $(filter-out $(addsuffix .$(TEST_EXT),$(skip_tests)),$(TEST_TBB_PLAIN.EXE) $(SCHEDULER_DIRECTLY_INCLUDED))
@@ -271,7 +258,7 @@ test_tbb_plain: $(TEST_PREREQUISITE) $(TESTS_TO_RUN)
# For deprecated files, we don't mind warnings etc., thus compilation rules are most relaxed
CPLUS_FLAGS_DEPRECATED = $(DEFINE_KEY)__TBB_TEST_DEPRECATED=1 $(subst $(WARNING_KEY),,$(CPLUS_FLAGS)) $(WARNING_SUPPRESS) $(INCLUDE_KEY)$(tbb_root)/src/test
CPLUS_FLAGS_DEPRECATED = $(DEFINE_KEY)TBB_DEPRECATED=1 $(subst $(WARNING_KEY),,$(CPLUS_FLAGS)) $(WARNING_SUPPRESS) $(INCLUDE_KEY)$(tbb_root)/src/test
TEST_TBB_OLD.OBJ = test_concurrent_vector_v2.$(OBJ) test_concurrent_queue_v2.$(OBJ) test_mutex_v2.$(OBJ) test_task_scheduler_observer_v3.$(OBJ)
$(TEST_TBB_OLD.OBJ): CPLUS_FLAGS := $(CPLUS_FLAGS_DEPRECATED)
+2 -14
View File
@@ -68,22 +68,10 @@ ifeq (0, $(dynamic_load))
endif
# Paths to the NDK prebuilt tools and libraries
ifneq (,$(findstring $(ndk_version),r16 r16b))
# Since Android* NDK r16 another sysroot and isystem paths have to be specified
CPLUS_FLAGS += --sysroot=$(NDK_ROOT)/sysroot -isystem $(NDK_ROOT)/sysroot/usr/include/$(TRIPLE)
# Android* version flag required since r16
CPLUS_FLAGS += -D__ANDROID_API__=$(API_LEVEL)
else
CPLUS_FLAGS += --sysroot=$(SYSROOT)
endif
# Library sysroot flag
CPLUS_FLAGS += --sysroot=$(SYSROOT)
LIB_LINK_FLAGS += --sysroot=$(SYSROOT)
# Flag for test executables
LINK_FLAGS += --sysroot=$(SYSROOT)
LIBS = -L$(CPLUS_LIB_PATH) -lc++_shared
ifeq (,$(findstring $(ndk_version),$(foreach v, 7 8 9 10 11,r$(v) r$(v)b r$(v)c r$(v)d r$(v)e)))
ifneq (,$(findstring $(ndk_version),r12 r12b r13 r13b))
LIBS += -lc++abi
ifeq (arm,$(arch))
LIBS += -lunwind
+2 -3
View File
@@ -30,6 +30,8 @@ ifeq (64,$(findstring 64,$(arch)))
endif
ifdef ndk_version
ndk_version:= $(firstword $(subst /, ,$(ndk_version)))
ndk_version:= $(firstword $(subst \, ,$(ndk_version)))
$(warning "NDK version $(ndk_version)")
else
$(warning "NDK version not set in environment, using \'unknown\' instead.")
@@ -73,6 +75,3 @@ DLL = so
TEST_LAUNCHER=
run_cmd ?= -sh $(tbb_root)/build/android.linux.launcher.sh $(largs)
export UNIXMODE = 1
# Clang for Android* uses the INCLUDE variable (instead of CPATH)
export USE_INCLUDE_ENV = 1
-177
View File
@@ -1,177 +0,0 @@
#!/usr/bin/env python
#
# Copyright (c) 2017 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
#
#
#
# Provides unified tool for preparing TBB for packaging
from __future__ import print_function
import os
import re
import sys
import shutil
import platform
import argparse
from glob import glob
from collections import OrderedDict
jp = os.path.join
is_win = (platform.system() == 'Windows')
is_lin = (platform.system() == 'Linux')
is_mac = (platform.system() == 'Darwin')
default_prefix = os.getenv('PREFIX', 'install_prefix')
if is_win:
default_prefix = jp(default_prefix, 'Library') # conda-specific by default on Windows
parser = argparse.ArgumentParser()
parser.add_argument('--tbbroot', default='.', help='Take Intel TBB from here')
parser.add_argument('--prefix', default=default_prefix, help='Prefix')
parser.add_argument('--no-rebuild', default=False, action='store_true', help='do not rebuild')
parser.add_argument('--install', default=False, action='store_true', help='install all')
parser.add_argument('--install-libs', default=False, action='store_true', help='install libs')
parser.add_argument('--install-devel', default=False, action='store_true', help='install devel')
parser.add_argument('--install-docs', default=False, action='store_true', help='install docs')
parser.add_argument('--install-python',default=False, action='store_true', help='install python module')
parser.add_argument('--make-tool', default='make', help='Use different make command instead')
parser.add_argument('--copy-tool', default=None, help='Use this command for copying ($ tool file dest-dir)')
parser.add_argument('--build-args', default="", help='specify extra build args')
parser.add_argument('--build-prefix', default='local', help='build dir prefix')
if is_win:
parser.add_argument('--msbuild', default=False, action='store_true', help='Use msbuild')
parser.add_argument('--vs', default="2012", help='select VS version for build')
parser.add_argument('--vs-platform', default="x64", help='select VS platform for build')
parser.add_argument('ignore', nargs='?', help="workaround conda-build issue #2512")
args = parser.parse_args()
if args.install:
args.install_libs = True
args.install_devel = True
args.install_docs = True
args.install_python= True
def custom_cp(src, dst):
assert os.system(' '.join([args.copy_tool, src, dst])) == 0
if args.copy_tool:
install_cp = custom_cp # e.g. to use install -p -D -m 755 on Linux
else:
install_cp = shutil.copy
bin_dir = jp(args.prefix, "bin")
lib_dir = jp(args.prefix, "lib")
inc_dir = jp(args.prefix, 'include')
doc_dir = jp(args.prefix, 'share', 'doc', 'tbb')
if is_win:
os.environ["OS"] = "Windows_NT" # make sure TBB will interpret it corretly
libext = '.dll'
libpref = ''
dll_dir = bin_dir
else:
libext = '.dylib' if is_mac else '.so.2'
libpref = 'lib'
dll_dir = lib_dir
tbb_names = ["tbb", "tbbmalloc", "tbbmalloc_proxy"]
##############################################################
os.chdir(args.tbbroot)
if is_win and args.msbuild:
preview_release_dir = release_dir = jp(args.tbbroot, 'build', 'vs'+args.vs, args.vs_platform, 'Release')
if not args.no_rebuild or not os.path.isdir(release_dir):
assert os.system('msbuild /m /p:Platform=%s /p:Configuration=Release %s build/vs%s/makefile.sln'% \
(args.vs_platform, args.build_args, args.vs)) == 0
preview_debug_dir = debug_dir = jp(args.tbbroot, 'build', 'vs'+args.vs, args.vs_platform, 'Debug')
if not args.no_rebuild or not os.path.isdir(debug_dir):
assert os.system('msbuild /m /p:Platform=%s /p:Configuration=Debug %s build/vs%s/makefile.sln'% \
(args.vs_platform, args.build_args, args.vs)) == 0
else:
release_dir = jp(args.tbbroot, 'build', args.build_prefix+'_release')
debug_dir = jp(args.tbbroot, 'build', args.build_prefix+'_debug')
if not args.no_rebuild or not (os.path.isdir(release_dir) and os.path.isdir(debug_dir)):
assert os.system('%s -j tbb_build_prefix=%s %s'% \
(args.make_tool, args.build_prefix, args.build_args)) == 0
preview_release_dir = jp(args.tbbroot, 'build', args.build_prefix+'_preview_release')
preview_debug_dir = jp(args.tbbroot, 'build', args.build_prefix+'_preview_debug')
if not args.no_rebuild or not (os.path.isdir(preview_release_dir) and os.path.isdir(preview_debug_dir)):
assert os.system('%s -j tbb_build_prefix=%s_preview %s tbb_cpf=1 tbb'% \
(args.make_tool, args.build_prefix, args.build_args)) == 0
filemap = OrderedDict()
def append_files(files, dst):
global filemap
filemap.update(dict(zip(files, [dst]*len(files))))
if args.install_libs:
files = [jp(release_dir, libpref+f+libext) for f in tbb_names]
append_files(files, dll_dir)
if args.install_devel:
dll_files = [jp(debug_dir, libpref+f+'_debug'+libext) for f in tbb_names] # adding debug libraries
if not is_win or not args.msbuild:
dll_files += [jp(preview_release_dir, libpref+"tbb_preview"+libext),
jp(preview_debug_dir, libpref+"tbb_preview_debug"+libext)]
if is_win:
dll_files += sum( [glob(jp(d, 'tbb*.pdb')) for d in # copying debug info
(release_dir, debug_dir, preview_release_dir, preview_debug_dir)], [])
if is_lin:
dll_files += sum( [glob(jp(d, 'libtbb*.so')) for d in # copying linker scripts
(release_dir, debug_dir, preview_release_dir, preview_debug_dir)], [])
# symlinks .so -> .so.2 should not be created instead
# since linking with -ltbb when using links can result in
# incorrect dependence upon unversioned .so files
append_files(dll_files, dll_dir)
if is_win:
lib_files = sum([glob(jp(d,e)) for d in (release_dir, debug_dir) for e in ('*.lib', '*.def')], [])
append_files(lib_files, lib_dir) # copying linker libs and defs
for rootdir, dirnames, filenames in os.walk(jp(args.tbbroot,'include')):
files = [jp(rootdir, f) for f in filenames if not '.html' in f]
append_files(files, jp(inc_dir, rootdir.split('include')[1][1:]))
if args.install_python:
assert os.system('%s -j tbb_build_prefix=%s %s python'% \
(args.make_tool, args.build_prefix, args.build_args)) == 0
if is_lin:
append_files([jp(release_dir, 'libirml.so.1')], dll_dir)
if args.install_docs:
files = [jp(args.tbbroot, *f) for f in (
('CHANGES',),
('LICENSE',),
('README',),
('README.md',),
('doc','Release_Notes.txt'),
)]
append_files(files, doc_dir)
for f in filemap.keys():
assert os.path.exists(f)
assert os.path.isfile(f)
if filemap:
print("Copying to prefix =", args.prefix)
for f, dest in filemap.items():
if not os.path.isdir(dest):
os.makedirs(dest)
print("+ %s to $prefix%s"%(f,dest.replace(args.prefix, '')))
install_cp(f, dest)
print("done")
+3 -7
View File
@@ -39,15 +39,10 @@ ifndef tbb_os
endif # !tbb_os
ifeq (1,$(tbb_cpf))
ifeq ($(tbb_cpf),1)
export CPF_SUFFIX ?=_preview
endif
ifeq (0,$(exceptions))
# Inverse the value, for simplicity of use
export no_exceptions=1
endif
ifdef cpp0x
$(warning "Warning: deprecated cpp0x=$(cpp0x) is used, stdver must be used instead. Building in stdver=c++0x mode.")
export stdver?=c++0x
@@ -58,7 +53,8 @@ ifneq (,$(stdver))
ifeq (,$(findstring ++, $(stdver)))
$(warning "Warning: unexpected stdver=$(stdver) is used.")
endif
CXX_STD_FLAGS=-std=$(stdver)
CXX_STD_FLAGS=-std=$(stdver) -D_TBB_CPP0X
endif
# The requested option is added unconditionally.
+1 -11
View File
@@ -46,12 +46,9 @@ endif
INCLUDES += $(INCLUDE_KEY)$(tbb_root)/src $(INCLUDE_KEY)$(tbb_root)/src/rml/include $(INCLUDE_KEY)$(tbb_root)/include
CPLUS_FLAGS += $(WARNING_KEY) $(CXXFLAGS)
ifeq (1,$(tbb_cpf))
ifeq ($(tbb_cpf),1)
CPLUS_FLAGS += $(DEFINE_KEY)__TBB_CPF_BUILD=1
endif
ifeq (0,$(exceptions))
CPLUS_FLAGS += $(DEFINE_KEY)TBB_USE_EXCEPTIONS=0
endif
LINK_FLAGS += $(LDFLAGS)
LIB_LINK_FLAGS += $(LDFLAGS)
@@ -63,14 +60,7 @@ ifeq ($(origin LIB_LINK_LIBS), undefined)
LIB_LINK_LIBS = $(LIBDL) $(LIBS)
endif
# Define C & C++ compilers according to platform defaults or CXX & CC environment variables
ifneq (,$(findstring environment, $(origin CXX)))
CPLUS = $(CXX)
endif
CONLY ?= $(CPLUS)
ifneq (,$(findstring environment, $(origin CC)))
CONLY = $(CC)
endif
# The most generic rules
#$(1) - is the target pattern
+4 -15
View File
@@ -123,10 +123,7 @@ function doWork() {
} else if (mapContext.match(vc120)) {
WScript.Echo("vc12");
} else if (mapContext.match(vc140)) {
if (WshShell.ExpandEnvironmentStrings("%VisualStudioVersion%") == "15.0")
WScript.Echo("vc14.1");
else
WScript.Echo("vc14");
WScript.Echo("vc14");
} else {
WScript.Echo("unknown");
}
@@ -135,7 +132,6 @@ function doWork() {
if (WScript.Arguments(0) == "/minversion") {
var compilerVersion;
var compilerUpdate;
if (WScript.Arguments(1) == "cl") {
compilerVersion = clVersion.match(/Compiler Version ([0-9.]+)\s/mi)[1];
// compilerVersion is in xx.xx.xxxxx.xx format, i.e. a string.
@@ -147,20 +143,13 @@ function doWork() {
var defs = readAllFromFile("detect.map");
// In #define __INTEL_COMPILER XXYY, XX is the major ICL version, YY is minor
compilerVersion = defs.match(/__INTEL_COMPILER[ \t]*([0-9]+).*$/mi)[1] / 100;
compilerUpdate = defs.match(/__INTEL_COMPILER_UPDATE[ \t]*([0-9]+).*$/mi)[1];
// compiler version is a number; it compares well with another major.minor
// version number, where major has one, two, and perhaps more digits (9.1, 11, etc).
}
var requestedVersion = WScript.Arguments(2);
var requestedUpdate = 0;
if (WScript.Arguments.Count() > 3)
requestedUpdate = WScript.Arguments(3);
if (compilerVersion < requestedVersion) {
WScript.Echo("fail");
} else if (compilerVersion == requestedVersion && compilerUpdate < requestedUpdate) {
WScript.Echo("fail");
} else {
if (compilerVersion >= WScript.Arguments(2)) {
WScript.Echo("ok");
} else {
WScript.Echo("fail");
}
return;
}
-1
View File
@@ -25,7 +25,6 @@ set bin_dir=%CD%
set fslash_bin_dir=%bin_dir:\=/%
set _INCLUDE=INCLUDE& set _LIB=LIB
if not x%UNIXMODE%==x set _INCLUDE=CPATH& set _LIB=LIBRARY_PATH
if not x%USE_INCLUDE_ENV%==x set _INCLUDE=INCLUDE
echo Generating local tbbvars.bat
echo @echo off>tbbvars.bat
+7 -7
View File
@@ -41,7 +41,7 @@ To port Intel TBB to a new platform, operating system or architecture, see the <
<H3>Software prerequisites:</H3>
<OL>
<LI>C++ compiler for the platform, operating system and architecture of interest.
Either the native compiler for your system, or, optionally, the appropriate Intel&reg; C++ Compiler, may be used.
Either the native compiler for your system, or, optionally, the appropriate Intel&reg; C++ compiler, may be used.
<LI>GNU make utility. On Windows OS, if a UNIX* emulator is used to run GNU make,
it should be able to run Windows OS utilities and commands. On Linux OS, macOS, etc.,
shell commands issued by GNU make should execute in a Bourne or BASH compatible shell.
@@ -57,7 +57,7 @@ On systems that support both 64-bit and 32-bit libraries, these steps build the
</P>
<OL>
<LI>Change to the <A HREF="../index.html">top-level directory</A> of the installed software.
<LI>If using the Intel&reg; C++ Compiler, make sure the appropriate compiler is available in your PATH
<LI>If using the Intel&reg; C++ compiler, make sure the appropriate compiler is available in your PATH
(e.g., by sourcing the appropriate iccvars script for the compiler to be used).
<LI>Invoke GNU make using no arguments, for example, <TT>make</TT>.
</OL>
@@ -68,7 +68,7 @@ or related systems that support both 64-bit and 32-bit libraries), perform the f
</P>
<OL>
<LI>Change to the <A HREF="../index.html">top-level directory</A> of the installed software.
<LI>If using the Intel&reg; C++ Compiler, make sure the appropriate compiler is available in your PATH
<LI>If using the Intel&reg; C++ compiler, make sure the appropriate compiler is available in your PATH
(e.g., by sourcing the appropriate iccvars script for the compiler to be used).
<LI>Explicitly specify the architecture when invoking GNU make, e.g. <TT>make arch=ia32</TT>.
</OL>
@@ -98,7 +98,7 @@ To perform different build and/or test operations, use the following steps.
</P>
<OL>
<LI>Change to the <A HREF="../index.html">top-level directory</A> of the installed software.
<LI>If using the Intel&reg; C++ Compiler, make sure the appropriate compiler is available in your PATH
<LI>If using the Intel&reg; C++ compiler, make sure the appropriate compiler is available in your PATH
(e.g., by sourcing the appropriate iccvars script for the compiler to be used).
<LI>Invoke GNU make by using one or more of the following commands.
<DL>
@@ -134,9 +134,9 @@ To perform different build and/or test operations, use the following steps.
<DD>Build and run as above, but additionally specify the version of the C++ standard or dialect to be used by
the compiler. The specified value of <TT>stdver</TT> will be used as a parameter to the appropriate
compiler option (such as <TT>-std</TT>); the behavior in case of unsupported value is compiler-specific.
<DT><TT>make target_app=<B>{</B>win8ui, uwp<B>}</B> [target_mode=store] <B>[</B>(above options or targets)<B>]</B></TT>
<DD>Build and run as above, but use API that is compliant with Universal Windows* applications. Use <TT>win8ui</TT> option, if you want to use Intel TBB in Windows* 8 Universal application and <TT>uwp</TT> in case of Windows* 10 Universal Windows application.
<TT>target_mode=store</TT> is used to produce binaries that are compliant with Windows Store* application container. In later case they won't work with Intel TBB unit tests but work only with Windows Store* applications.
<DT><TT>make target_ui=win8ui [target_ui_mode=production] <B>[</B>(above options or targets)<B>]</B></TT>
<DD>Build and run as above, but use API that is compliant with Windows Store* applications.
<TT>target_ui_mode=production</TT> is used to produce binaries that are compliant with Windows Store* application container. In later case they won't with Intel TBB unit tests but work only with Windows Store* applications.
<DT><TT>ndk-build target=android <B>[</B>(above options or targets)<B>]</B></TT>
<DD>Build and run as above, but build libraries for Android* OS by Android NDK that should be installed. Makefiles were tested with revision 8.
<DT><TT>make arch=<B>{</B>ia32, intel64, ia64<B>}</B> <B>[</B>(above options or targets)<B>]</B></TT>
+1 -1
View File
@@ -81,7 +81,7 @@ endif
ifneq (,$(codecov))
# no tool support for code coverage, need profile data generation
ITT_NOTIFY = -prof-gen=srcpos
ITT_NOTIFY = -prof-genx
endif
#------------------------------------------------------------------------------
+1 -3
View File
@@ -44,7 +44,7 @@ else
CPLUS_FLAGS = -g -O0 -DTBB_USE_DEBUG
endif
CPLUS_FLAGS += -DUSE_PTHREAD $(ITT_NOTIFY)
CPLUS_FLAGS += -DUSE_PTHREAD
# For Clang, we add the option to support RTM intrinsics *iff* xtest is found in <immintrin.h>
ifneq (,$(shell grep xtest `echo "\#include<immintrin.h>" | clang -E -M - 2>&1 | grep immintrin.h` 2>/dev/null))
@@ -57,14 +57,12 @@ ifneq (,$(stdlib))
endif
ifeq (intel64,$(arch))
ITT_NOTIFY = -DDO_ITT_NOTIFY
CPLUS_FLAGS += -m64 $(RTM_KEY)
LINK_FLAGS += -m64
LIB_LINK_FLAGS += -m64
endif
ifeq (ia32,$(arch))
ITT_NOTIFY = -DDO_ITT_NOTIFY
CPLUS_FLAGS += -m32 $(RTM_KEY)
LINK_FLAGS += -m32
LIB_LINK_FLAGS += -m32
+1 -3
View File
@@ -44,17 +44,15 @@ else
CPLUS_FLAGS = -g -O0 -DTBB_USE_DEBUG
endif
CPLUS_FLAGS += -DUSE_PTHREAD $(ITT_NOTIFY)
CPLUS_FLAGS += -DUSE_PTHREAD
ifeq (intel64,$(arch))
ITT_NOTIFY = -DDO_ITT_NOTIFY
CPLUS_FLAGS += -m64
LINK_FLAGS += -m64
LIB_LINK_FLAGS += -m64
endif
ifeq (ia32,$(arch))
ITT_NOTIFY = -DDO_ITT_NOTIFY
CPLUS_FLAGS += -m32
LINK_FLAGS += -m32
LIB_LINK_FLAGS += -m32
+6 -6
View File
@@ -58,19 +58,19 @@ else
CPLUS_FLAGS = -g -O0 -DTBB_USE_DEBUG
endif
ITT_NOTIFY = -DDO_ITT_NOTIFY
CPLUS_FLAGS += -DUSE_PTHREAD $(ITT_NOTIFY)
CPLUS_FLAGS += -DUSE_PTHREAD
ifneq (,$(codecov))
CPLUS_FLAGS += -prof-gen=srcpos
CPLUS_FLAGS += -prof-genx
endif
# ICC 14.0 and higher support usage of libc++, clang standard library
MACOSX_DEPLOYMENT_TARGET ?= 10.11
# Extending minimal deployment version of official binaries to unsupported 10.8
# per customer requests. TODO: make a dedicated variable for this
ifneq (,$(shell icc -dumpversion | egrep "^1[4-9]\."))
ifneq (,$(stdlib))
CPLUS_FLAGS += -stdlib=$(stdlib) -mmacosx-version-min=$(MACOSX_DEPLOYMENT_TARGET)
LIB_LINK_FLAGS += -stdlib=$(stdlib) -mmacosx-version-min=$(MACOSX_DEPLOYMENT_TARGET)
CPLUS_FLAGS += -stdlib=$(stdlib) -mmacosx-version-min=10.8
LIB_LINK_FLAGS += -stdlib=$(stdlib) -mmacosx-version-min=10.8
endif
endif
+1 -1
View File
@@ -41,7 +41,7 @@ else
endif
ifneq (,$(codecov))
CPLUS_FLAGS += -prof-gen=srcpos
CPLUS_FLAGS += -prof-genx
endif
ifneq (,$(shell icc -dumpversion | egrep "^1[6-9]\."))
@@ -2,7 +2,7 @@
<BODY>
<H2>Overview</H2>
This directory contains the Visual Studio* 2013 solution to build Intel&reg; Threading Building Blocks.
This directory contains the Visual Studio* 2012 solution to build Intel&reg; Threading Building Blocks.
<H2>Files</H2>
@@ -22,8 +22,8 @@ This directory contains the Visual Studio* 2013 solution to build Intel&reg; Thr
<P></P>
Copyright &copy; 2017 Intel Corporation. All Rights Reserved.
<P></P>
Intel and the Intel logo are trademarks of Intel Corporation
or its subsidiaries in the U.S. and/or other countries.
Intel is a registered trademark or trademark of Intel Corporation
or its subsidiaries in the United States and other countries.
<p></p>
* Other names and brands may be claimed as the property of others.
</BODY>
@@ -1,7 +1,5 @@
Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 2013
VisualStudioVersion = 12.0.40629.0
MinimumVisualStudioVersion = 10.0.40219.1
# Visual Studio 2012
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{8898CE0B-0BFB-45AE-AA71-83735ED2510D}"
ProjectSection(SolutionItems) = preProject
index.html = index.html
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="Debug-MT|Win32">
<Configuration>Debug-MT</Configuration>
@@ -44,45 +44,45 @@
<ConfigurationType>DynamicLibrary</ConfigurationType>
<CharacterSet>NotSet</CharacterSet>
<WholeProgramOptimization>true</WholeProgramOptimization>
<PlatformToolset>v120</PlatformToolset>
<PlatformToolset>v110</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug-MT|Win32'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<CharacterSet>NotSet</CharacterSet>
<PlatformToolset>v120</PlatformToolset>
<PlatformToolset>v110</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<CharacterSet>NotSet</CharacterSet>
<WholeProgramOptimization>true</WholeProgramOptimization>
<PlatformToolset>v120</PlatformToolset>
<PlatformToolset>v110</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<CharacterSet>NotSet</CharacterSet>
<PlatformToolset>v120</PlatformToolset>
<PlatformToolset>v110</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release-MT|x64'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<CharacterSet>NotSet</CharacterSet>
<WholeProgramOptimization>true</WholeProgramOptimization>
<PlatformToolset>v120</PlatformToolset>
<PlatformToolset>v110</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug-MT|x64'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<CharacterSet>NotSet</CharacterSet>
<PlatformToolset>v120</PlatformToolset>
<PlatformToolset>v110</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<CharacterSet>NotSet</CharacterSet>
<WholeProgramOptimization>true</WholeProgramOptimization>
<PlatformToolset>v120</PlatformToolset>
<PlatformToolset>v110</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<CharacterSet>NotSet</CharacterSet>
<PlatformToolset>v120</PlatformToolset>
<PlatformToolset>v110</PlatformToolset>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings">
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="Debug-MT|Win32">
<Configuration>Debug-MT</Configuration>
@@ -44,45 +44,45 @@
<ConfigurationType>DynamicLibrary</ConfigurationType>
<CharacterSet>NotSet</CharacterSet>
<WholeProgramOptimization>true</WholeProgramOptimization>
<PlatformToolset>v120</PlatformToolset>
<PlatformToolset>v110</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug-MT|Win32'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<CharacterSet>NotSet</CharacterSet>
<PlatformToolset>v120</PlatformToolset>
<PlatformToolset>v110</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<CharacterSet>NotSet</CharacterSet>
<WholeProgramOptimization>true</WholeProgramOptimization>
<PlatformToolset>v120</PlatformToolset>
<PlatformToolset>v110</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<CharacterSet>NotSet</CharacterSet>
<PlatformToolset>v120</PlatformToolset>
<PlatformToolset>v110</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release-MT|x64'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<CharacterSet>NotSet</CharacterSet>
<WholeProgramOptimization>true</WholeProgramOptimization>
<PlatformToolset>v120</PlatformToolset>
<PlatformToolset>v110</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug-MT|x64'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<CharacterSet>NotSet</CharacterSet>
<PlatformToolset>v120</PlatformToolset>
<PlatformToolset>v110</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<CharacterSet>NotSet</CharacterSet>
<WholeProgramOptimization>true</WholeProgramOptimization>
<PlatformToolset>v120</PlatformToolset>
<PlatformToolset>v110</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<CharacterSet>NotSet</CharacterSet>
<PlatformToolset>v120</PlatformToolset>
<PlatformToolset>v110</PlatformToolset>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings">
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="Debug-MT|Win32">
<Configuration>Debug-MT</Configuration>
@@ -44,45 +44,45 @@
<ConfigurationType>DynamicLibrary</ConfigurationType>
<CharacterSet>NotSet</CharacterSet>
<WholeProgramOptimization>true</WholeProgramOptimization>
<PlatformToolset>v120</PlatformToolset>
<PlatformToolset>v110</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug-MT|Win32'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<CharacterSet>NotSet</CharacterSet>
<PlatformToolset>v120</PlatformToolset>
<PlatformToolset>v110</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<CharacterSet>NotSet</CharacterSet>
<WholeProgramOptimization>true</WholeProgramOptimization>
<PlatformToolset>v120</PlatformToolset>
<PlatformToolset>v110</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<CharacterSet>NotSet</CharacterSet>
<PlatformToolset>v120</PlatformToolset>
<PlatformToolset>v110</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release-MT|x64'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<CharacterSet>NotSet</CharacterSet>
<WholeProgramOptimization>true</WholeProgramOptimization>
<PlatformToolset>v120</PlatformToolset>
<PlatformToolset>v110</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug-MT|x64'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<CharacterSet>NotSet</CharacterSet>
<PlatformToolset>v120</PlatformToolset>
<PlatformToolset>v110</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<CharacterSet>NotSet</CharacterSet>
<WholeProgramOptimization>true</WholeProgramOptimization>
<PlatformToolset>v120</PlatformToolset>
<PlatformToolset>v110</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<CharacterSet>NotSet</CharacterSet>
<PlatformToolset>v120</PlatformToolset>
<PlatformToolset>v110</PlatformToolset>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings">
+8 -26
View File
@@ -29,7 +29,7 @@ LINK_FLAGS = /link /nologo
LIB_LINK_FLAGS=/link /nologo /DLL /MAP /DEBUG /fixed:no /INCREMENTAL:NO /DYNAMICBASE /NXCOMPAT
ifneq (,$(stdver))
CXX_STD_FLAGS = /std:$(stdver)
CXX_STD_FLAGS = /std:$(stdver) /D_TBB_CPP0X
endif
ifeq ($(arch), ia32)
@@ -41,12 +41,7 @@ ifeq ($(runtime), vc_mt)
else
MS_CRT_KEY = /MD$(if $(findstring debug,$(cfg)),d)
endif
EH_FLAGS = $(if $(no_exceptions),/EHs-,/EHsc /GR)
# UWD binaries have to use static CRT linkage
ifeq ($(target_app), uwd)
MS_CRT_KEY = /MT$(if $(findstring debug,$(cfg)),d)
endif
EH_FLAGS = /EHsc /GR
ifeq ($(cfg), release)
CPLUS_FLAGS = $(MS_CRT_KEY) /O2 /Zi $(EH_FLAGS) /Zc:forScope /Zc:wchar_t /D__TBB_LIB_NAME=$(TBB.LIB)
@@ -57,25 +52,15 @@ ifeq ($(cfg), debug)
ASM_FLAGS = /DUSE_FRAME_POINTER
endif
ZW_KEY = /ZW:nostdlib
# These flags are general for Windows* universal applications
ifneq (,$(target_app))
CPLUS_FLAGS += $(ZW_KEY) /D "_UNICODE" /D "UNICODE" /D "WINAPI_FAMILY=WINAPI_FAMILY_APP"
ifeq ($(target_ui), win8ui)
CPLUS_FLAGS += /D "_UNICODE" /D "UNICODE" /D "WINAPI_FAMILY=WINAPI_FAMILY_APP"
_WIN32_WINNT=0x0602
ifeq ($(target_ui_mode), production)
LIB_LINK_FLAGS += /APPCONTAINER
endif
ifeq ($(target_app), win8ui)
_WIN32_WINNT = 0x0602
else ifneq (,$(filter $(target_app),uwp uwd))
_WIN32_WINNT = 0x0A00
LIB_LINK_FLAGS += /NODEFAULTLIB:kernel32.lib OneCore.lib
else
CPLUS_FLAGS += /DDO_ITT_NOTIFY
endif
ifeq ($(target_mode), store)
# it is necessary to source vcvars with 'store' argument in production
LIB_LINK_FLAGS += /APPCONTAINER
endif
CPLUS_FLAGS += /GS
@@ -86,7 +71,6 @@ DEFINE_KEY = /D
OUTPUT_KEY = /Fe
OUTPUTOBJ_KEY = /Fo
WARNING_AS_ERROR_KEY = /WX
WARNING_SUPPRESS = $(if $(no_exceptions),/wd4530 /wd4577)
BIGOBJ_KEY = /bigobj
ifeq ($(runtime),vc7.1)
@@ -101,8 +85,6 @@ EXPORT_KEY = /DEF:
NODEFAULTLIB_KEY = /Zl
NOINTRINSIC_KEY = /Oi-
INCLUDE_TEST_HEADERS = /FI$(tbb_root)/src/test/harness_preload.h
ifeq ($(runtime),vc8)
WARNING_KEY += /Wp64
CPLUS_FLAGS += /D_USE_RTM_VERSION
@@ -122,7 +104,7 @@ endif
CPLUS_FLAGS += /DUSE_WINTHREAD /D_CRT_SECURE_NO_DEPRECATE \
/D_WIN32_WINNT=$(_WIN32_WINNT)
C_FLAGS = $(subst $(ZW_KEY),,$(subst $(EH_FLAGS),,$(CPLUS_FLAGS)))
C_FLAGS = $(subst $(EH_FLAGS),,$(CPLUS_FLAGS))
#------------------------------------------------------------------------------
# End of setting compiler flags.
+4 -16
View File
@@ -38,11 +38,11 @@ LINK_FLAGS = /link /nologo
LIB_LINK_FLAGS= /link /nologo /DLL /MAP /DEBUG /fixed:no /INCREMENTAL:NO /DYNAMICBASE /NXCOMPAT
ifeq ($(arch), ia32)
LIB_LINK_FLAGS += /SAFESEH
LIB_LINK_FLAGS += /SAFESEH
endif
ifneq (,$(stdver))
CXX_STD_FLAGS = /Qstd=$(stdver)
CXX_STD_FLAGS = /Qstd=$(stdver) /D_TBB_CPP0X
endif
# ICC 12.0 and higher provide Intel(R) Cilk(TM) Plus
@@ -50,17 +50,12 @@ ifeq (ok,$(call detect_js,/minversion icl 12))
CILK_AVAILABLE = yes
endif
# ICC 17.0.4 and higher provide support for VS2017
ifeq (ok,$(call detect_js,/minversion icl 17 4))
VS2017_SUPPORT = yes
endif
ifeq ($(runtime), vc_mt)
MS_CRT_KEY = /MT$(if $(findstring debug,$(cfg)),d)
else
MS_CRT_KEY = /MD$(if $(findstring debug,$(cfg)),d)
endif
EH_FLAGS = $(if $(no_exceptions),/EHs-,/EHsc /GR)
EH_FLAGS = /EHsc /GR
ifeq ($(cfg), release)
CPLUS_FLAGS = $(MS_CRT_KEY) /O2 /Zi $(EH_FLAGS) /Zc:forScope /Zc:wchar_t /D__TBB_LIB_NAME=$(TBB.LIB)
@@ -82,13 +77,11 @@ OUTPUT_KEY = /Fe
OUTPUTOBJ_KEY = /Fo
WARNING_AS_ERROR_KEY = /WX
WARNING_KEY = /W3
WARNING_SUPPRESS = $(if $(no_exceptions),/wd583)
DYLIB_KEY = /DLL
EXPORT_KEY = /DEF:
NODEFAULTLIB_KEY = /Zl
NOINTRINSIC_KEY = /Oi-
BIGOBJ_KEY = /bigobj
INCLUDE_TEST_HEADERS = /FI$(tbb_root)/src/test/harness_preload.h
ifneq (,$(codecov))
@@ -129,12 +122,7 @@ ifeq ($(VCCOMPAT_FLAG),)
VCCOMPAT_FLAG := $(if $(findstring vc12, $(VCVERSION)),/Qvc12)
endif
ifeq ($(VCCOMPAT_FLAG),)
VCCOMPAT_FLAG := $(if $(findstring vc14, $(VCVERSION)),/Qvc14)
ifeq ($(VS2017_SUPPORT),yes)
ifneq (,$(findstring vc14.1, $(VCVERSION)))
VCCOMPAT_FLAG := /Qvc14.1
endif
endif
VCCOMPAT_FLAG := $(if $(findstring vc14, $(VCVERSION)),/Qvc14)
endif
ifeq ($(VCCOMPAT_FLAG),)
$(error VC version not detected correctly: $(VCVERSION) )
-285
View File
@@ -1,285 +0,0 @@
.. contents::
Introduction
------------
Many developers use CMake to manage their development projects, so the Intel(R) Threading Building Blocks (Intel(R) TBB)
team created the set of CMake modules to simplify integration of the Intel TBB library into a CMake project.
The modules are available starting from Intel TBB 2017 U7 in `<tbb_root>/cmake <https://github.com/01org/tbb/tree/tbb_2017/cmake>`_.
About Intel TBB
^^^^^^^^^^^^^^^
Intel TBB is a library that supports scalable parallel programming using standard ISO C++ code. It does not require special languages or compilers. It is designed to promote scalable data parallel programming. Additionally, it fully supports nested parallelism, so you can build larger parallel components from smaller parallel components. To use the library, you specify tasks, not threads, and let the library map tasks onto threads in an efficient manner.
Many of the library interfaces employ generic programming, in which interfaces are defined by requirements on types and not specific types. The C++ Standard Template Library (STL) is an example of generic programming. Generic programming enables Intel TBB to be flexible yet efficient. The generic interfaces enable you to customize components to your specific needs.
The net result is that Intel TBB enables you to specify parallelism far more conveniently than using raw threads, and at the same time can improve performance.
References
^^^^^^^^^^
* `Official Intel TBB open source site <https://www.threadingbuildingblocks.org/>`_
* `Official GitHub repository <https://github.com/01org/tbb>`_
Engineering team contacts
^^^^^^^^^^^^^^^^^^^^^^^^^
The Intel TBB team is very interested in convenient integration of the Intel TBB library into customer projects. These CMake modules were created to provide such a possibility for CMake projects using a simple but powerful interface. We hope you will try these modules and we are looking forward to receiving your feedback!
E-mail us: `inteltbbdevelopers@intel.com <mailto:inteltbbdevelopers@intel.com>`_.
Visit our `forum <https://software.intel.com/en-us/forums/intel-threading-building-blocks/>`_.
Release Notes
-------------
* Minimum supported CMake version: ``3.0.0``.
* Intel TBB versioning via `find_package <https://cmake.org/cmake/help/latest/command/find_package.html>`_ has restricted functionality: compatibility of update numbers (as well as interface versions) is not checked. Supported versioning: ``find_package(TBB <major>.<minor> ...)``. Intel TBB interface version can be obtained in the customer project via the ``TBB_INTERFACE_VERSION`` variable.
Use cases of Intel TBB integration into CMake-aware projects
------------------------------------------------------------
There are two types of Intel TBB packages:
* Binary packages with pre-built binaries for Windows* OS, Linux* OS and macOS*. They are available on the releases page of the Github repository: https://github.com/01org/tbb/releases. The main purpose of the binary package integration is the ability to build Intel TBB header files and binaries into your CMake-aware project.
* A source package is also available to download from the release page via the "Source code" link. In addition, it can be cloned from the repository by ``git clone https://github.com/01org/tbb.git``. The main purpose of the source package integration is to allow you to do a custom build of the Intel TBB library from the source files and then build that into your CMake-aware project.
There are four types of CMake modules that can be used to integrate Intel TBB: `TBBConfig`, `TBBGet`, `TBBMakeConfig` and `TBBBuild`. See `Technical documentation for CMake modules`_ section for additional details.
Binary package integration
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
The following use case is valid for packages starting from Intel TBB 2017 U7:
* Download package manually and make integration.
Pre-condition: Location of TBBConfig.cmake is available via ``TBB_DIR`` or ``CMAKE_PREFIX_PATH`` contains path to Intel TBB root.
CMake code for integration:
.. code:: cmake
find_package(TBB <options>)
The following use case is valid for all Intel TBB 2017 packages.
* Download package using TBBGet_ and make integration.
Pre-condition: Intel TBB CMake modules are available via <path-to-tbb-cmake-modules>.
CMake code for integration:
.. code:: cmake
include(<path-to-tbb-cmake-modules>/TBBGet.cmake)
tbb_get(TBB_ROOT tbb_root CONFIG_DIR TBB_DIR)
find_package(TBB <options>)
Source package integration
^^^^^^^^^^^^^^^^^^^^^^^^^^
* Build Intel TBB from existing source files using TBBBuild_ and make integration.
Pre-condition: Intel TBB source code is available via <tbb_root> and Intel TBB CMake modules are available via <path-to-tbb-cmake-modules>.
CMake code for integration:
.. code:: cmake
include(<path-to-tbb-cmake-modules>/TBBBuild.cmake)
tbb_build(TBB_ROOT <tbb_root> CONFIG_DIR TBB_DIR)
find_package(TBB <options>)
* Download Intel TBB source files using TBBGet_, build it using TBBBuild_ and make integration.
Pre-condition: Intel TBB CMake modules are available via <path-to-tbb-cmake-modules>.
CMake code for integration:
.. code:: cmake
include(<path-to-tbb-cmake-modules>/TBBGet.cmake)
include(<path-to-tbb-cmake-modules>/TBBBuild.cmake)
tbb_get(TBB_ROOT tbb_root SOURCE_CODE)
tbb_build(TBB_ROOT ${tbb_root} CONFIG_DIR TBB_DIR)
find_package(TBB <options>)
Tutorials: Intel TBB integration using CMake
--------------------------------------------
Binary Intel TBB integration to the sub_string_finder sample (Windows* OS)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
In this example, we will integrate binary Intel TBB package into the sub_string_finder sample on Windows* OS (Microsoft* Visual Studio).
This example is also applicable for other platforms with slight changes.
Place holders <version> and <date> should be replaced with the actual values for the Intel TBB package being used. The example is written for `CMake 3.7.1`.
Precondition:
* `Microsoft* Visual Studio 11` or higher.
* `CMake 3.0.0` or higher.
#. Download the latest binary package for Windows from `this page <https://github.com/01org/tbb/releases/latest>`_ and unpack it to the directory ``C:\demo_tbb_cmake``.
#. In the directory ``C:\demo_tbb_cmake\tbb<version>_<date>oss\examples\GettingStarted\sub_string_finder`` create ``CMakeLists.txt`` file with the following content:
.. code:: cmake
cmake_minimum_required(VERSION 3.0.0 FATAL_ERROR)
project(sub_string_finder CXX)
add_executable(sub_string_finder sub_string_finder.cpp)
# find_package will search for available TBBConfig using variables CMAKE_PREFIX_PATH and TBB_DIR.
find_package(TBB REQUIRED tbb)
# Link Intel TBB imported targets to the executable;
# "TBB::tbb" can be used instead of "${TBB_IMPORTED_TARGETS}".
target_link_libraries(sub_string_finder ${TBB_IMPORTED_TARGETS})
#. Run CMake GUI and:
* Fill the following fields (you can use the buttons ``Browse Source...`` and ``Browse Build...`` accordingly)
* Where is the source code: ``C:/demo_tbb_cmake/tbb<version>_<date>oss/examples/GettingStarted/sub_string_finder``
* Where to build the binaries: ``C:/demo_tbb_cmake/tbb<version>_<date>oss/examples/GettingStarted/sub_string_finder/build``
* Add new cache entry using button ``Add Entry`` to let CMake know where to search for TBBConfig:
* Name: ``CMAKE_PREFIX_PATH``
* Type: ``PATH``
* Value: ``C:/demo_tbb_cmake/tbb<version>_<date>oss``
* Push the button ``Generate`` and choose a proper generator for your Microsoft* Visual Studio version.
#. Now you can open the generated solution ``C:/demo_tbb_cmake/tbb<version>_<date>oss/examples/GettingStarted/sub_string_finder/build/sub_string_finder.sln`` in your Microsoft* Visual Studio and build it.
Source code integration of Intel TBB to the sub_string_finder sample (Linux* OS)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
In this example, we will build Intel TBB from source code with enabled Community Preview Features and link the sub_string_finder sample with the built library.
This example is also applicable for other platforms with slight changes.
Precondition:
* `CMake 3.0.0` or higher.
* `Git` (to clone the Intel TBB repository from GitHub)
#. Create the directory ``~/demo_tbb_cmake``, go to the created directory and clone the Intel TBB repository there:
``mkdir ~/demo_tbb_cmake ; cd ~/demo_tbb_cmake ; git clone https://github.com/01org/tbb.git``
#. In the directory ``~/demo_tbb_cmake/tbb/examples/GettingStarted/sub_string_finder`` create ``CMakeLists.txt`` file with following content:
.. code:: cmake
cmake_minimum_required(VERSION 3.0.0 FATAL_ERROR)
project(sub_string_finder CXX)
add_executable(sub_string_finder sub_string_finder.cpp)
include(${TBB_ROOT}/cmake/TBBBuild.cmake)
# Build Intel TBB with enabled Community Preview Features (CPF).
tbb_build(TBB_ROOT ${TBB_ROOT} CONFIG_DIR TBB_DIR MAKE_ARGS tbb_cpf=1)
find_package(TBB REQUIRED tbb_preview)
# Link Intel TBB imported targets to the executable;
# "TBB::tbb_preview" can be used instead of "${TBB_IMPORTED_TARGETS}".
target_link_libraries(sub_string_finder ${TBB_IMPORTED_TARGETS})
#. Create a build directory for the sub_string_finder sample to perform build out of source, go to the created directory
``mkdir ~/demo_tbb_cmake/tbb/examples/GettingStarted/sub_string_finder/build ; cd ~/demo_tbb_cmake/tbb/examples/GettingStarted/sub_string_finder/build``
#. Run CMake to prepare Makefile for the sub_string_finder sample and provide Intel TBB location (root) where to perform build:
``cmake -DTBB_ROOT=${HOME}/demo_tbb_cmake/tbb ..``
#. Make an executable and run it:
``make ; ./sub_string_finder``
Technical documentation for CMake modules
-----------------------------------------
TBBConfig
^^^^^^^^^
Configuration module for ``Intel(R) Threading Building Blocks (Intel(R) TBB)`` library.
How to use this module in your CMake project:
#. Add location of Intel TBB (root) to `CMAKE_PREFIX_PATH <https://cmake.org/cmake/help/latest/variable/CMAKE_PREFIX_PATH.html>`_
or specify location of TBBConfig.cmake in ``TBB_DIR``.
#. Use `find_package <https://cmake.org/cmake/help/latest/command/find_package.html>`_ to configure Intel TBB.
#. Use provided variables and/or imported targets (described below) to work with Intel TBB.
Intel TBB components can be passed to `find_package <https://cmake.org/cmake/help/latest/command/find_package.html>`_
after keyword ``COMPONENTS`` or ``REQUIRED``.
Use basic names of components (``tbb``, ``tbbmalloc``, ``tbb_preview``, etc.).
If components are not specified then default are used: ``tbb``, ``tbbmalloc`` and ``tbbmalloc_proxy``.
If ``tbbmalloc_proxy`` is requested, ``tbbmalloc`` component will also be added and set as dependency for ``tbbmalloc_proxy``.
TBBConfig creates `imported targets <https://cmake.org/cmake/help/latest/manual/cmake-buildsystem.7.html#imported-targets>`_ as
shared libraries using the following format: ``TBB::<component>`` (for example, ``TBB::tbb``, ``TBB::tbbmalloc``).
Variables set during Intel TBB configuration:
========================= ================================================
Variable Description
========================= ================================================
``TBB_FOUND`` Intel TBB library is found
``TBB_<component>_FOUND`` specific Intel TBB component is found
``TBB_IMPORTED_TARGETS`` all created Intel TBB imported targets
``TBB_VERSION`` Intel TBB version (format: ``<major>.<minor>``)
``TBB_INTERFACE_VERSION`` Intel TBB interface version
========================= ================================================
TBBGet
^^^^^^
Module for getting ``Intel(R) Threading Building Blocks (Intel(R) TBB)`` library from `GitHub <https://github.com/01org/tbb>`_.
Provides the following functions:
``tbb_get(TBB_ROOT <variable> [RELEASE_TAG <release_tag>|LATEST] [SAVE_TO <path>] [SYSTEM_NAME Linux|Windows|Darwin] [CONFIG_DIR <variable> | SOURCE_CODE])``
downloads Intel TBB from GitHub and creates TBBConfig for the downloaded binary package if there is no TBBConfig.
==================================== ====================================
Parameter Description
==================================== ====================================
``TBB_ROOT <variable>`` a variable to save Intel TBB root in, ``<variable>-NOTFOUND`` will be provided in case ``tbb_get`` is unsuccessful
``RELEASE_TAG <release_tag>|LATEST`` Intel TBB release tag to be downloaded (for example, ``2017_U6``), ``LATEST`` is used by default
``SAVE_TO <path>`` path to location at which to unpack downloaded Intel TBB, ``${CMAKE_CURRENT_BINARY_DIR}/tbb_downloaded`` is used by default
``SYSTEM_NAME Linux|Windows|Darwin`` operating system name to download a binary package for,
value of `CMAKE_SYSTEM_NAME <https://cmake.org/cmake/help/latest/variable/CMAKE_SYSTEM_NAME.html>`_ is used by default
``CONFIG_DIR <variable>`` a variable to save location of TBBConfig.cmake and TBBConfigVersion.cmake. Ignored if ``SOURCE_CODE`` specified
``SOURCE_CODE`` flag to get Intel TBB source code (instead of binary package)
==================================== ====================================
TBBMakeConfig
^^^^^^^^^^^^^
Module for making TBBConfig in ``Intel(R) Threading Building Blocks (Intel(R) TBB)`` binary package.
This module is to be used for packages that do not have TBBConfig.
Provides the following functions:
``tbb_make_config(TBB_ROOT <path> CONFIG_DIR <variable> [SYSTEM_NAME Linux|Windows|Darwin])``
creates CMake configuration files (TBBConfig.cmake and TBBConfigVersion.cmake) for Intel TBB binary package.
==================================== ====================================
Parameter Description
==================================== ====================================
``TBB_ROOT <variable>`` path to Intel TBB root
``CONFIG_DIR <variable>`` a variable to store location of the created configuration files
``SYSTEM_NAME Linux|Windows|Darwin`` operating system name of the binary Intel TBB package,
value of `CMAKE_SYSTEM_NAME <https://cmake.org/cmake/help/latest/variable/CMAKE_SYSTEM_NAME.html>`_ is used by default
==================================== ====================================
TBBBuild
^^^^^^^^
Module for building ``Intel(R) Threading Building Blocks (Intel(R) TBB)`` library from the source code.
Provides the following functions:
``tbb_build(TBB_ROOT <tbb_root> CONFIG_DIR <variable> [MAKE_ARGS <custom_make_arguments>])``
builds Intel TBB from source code using the ``Makefile``, creates and provides the location of the CMake configuration files (TBBConfig.cmake and TBBConfigVersion.cmake) .
===================================== ====================================
Parameter Description
===================================== ====================================
``TBB_ROOT <variable>`` path to Intel TBB root
``CONFIG_DIR <variable>`` a variable to store location of the created configuration files,
``<variable>-NOTFOUND`` will be provided in case ``tbb_build`` is unsuccessful
``MAKE_ARGS <custom_make_arguments>`` custom arguments to be passed to ``make`` tool.
The following arguments are always passed with automatically detected values to
``make`` tool if they are not redefined in ``<custom_make_arguments>``:
- ``compiler=<compiler>``
- ``tbb_build_dir=<tbb_build_dir>``
- ``tbb_build_prefix=<tbb_build_prefix>``
- ``-j<n>``
===================================== ====================================
------------
Intel and the Intel logo are trademarks of Intel Corporation or its subsidiaries in the U.S. and/or other countries.
``*`` Other names and brands may be claimed as the property of others.
-197
View File
@@ -1,197 +0,0 @@
# Copyright (c) 2017 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
#
#
#
#
# Usage:
# include(TBBBuild.cmake)
# tbb_build(ROOT <tbb_root> MAKE_ARGS <arg1> [... <argN>])
# find_package(TBB <options>)
#
include(CMakeParseArguments)
# Save the location of Intel TBB CMake modules here, as it will not be possible to do inside functions,
# see for details: https://cmake.org/cmake/help/latest/variable/CMAKE_CURRENT_LIST_DIR.html
set(_tbb_cmake_module_path ${CMAKE_CURRENT_LIST_DIR})
##
# Builds Intel TBB.
#
# Parameters:
# TBB_ROOT <directory> - path to Intel TBB root directory (with sources);
# MAKE_ARGS <list> - user-defined arguments to be passed to make-tool;
# CONFIG_DIR <variable> - store location of the created TBBConfig if the build was ok, store <variable>-NOTFOUND otherwise.
#
function(tbb_build)
# NOTE: internal function are used to hide them from user.
##
# Provides arguments for make-command to build Intel TBB.
#
# Following arguments are provided automatically if they are not defined by user:
# compiler=<value>
# tbb_build_dir=<value>
# tbb_build_prefix=<value>
# -j<n>
#
# Parameters:
# USER_DEFINED_ARGS <list> - list of user-defined arguments;
# RESULT <variable> - resulting list of 'make' arguments.
#
function(tbb_get_make_args)
set(oneValueArgs RESULT)
set(multiValueArgs USER_DEFINED_ARGS)
cmake_parse_arguments(tbb_GMA "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN})
set(result ${tbb_GMA_USER_DEFINED_ARGS})
if (NOT tbb_GMA_USER_DEFINED_ARGS MATCHES "compiler=")
# TODO: add other supported compilers.
if (CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
set(compiler gcc)
elseif (CMAKE_CXX_COMPILER_ID STREQUAL "Intel")
set(compiler icc)
if (CMAKE_SYSTEM_NAME MATCHES "Windows")
set(compiler icl)
endif()
elseif (MSVC)
set(compiler cl)
elseif (CMAKE_CXX_COMPILER_ID MATCHES "Clang")
set(compiler clang)
endif()
set(result "compiler=${compiler}" ${result})
endif()
if (NOT tbb_GMA_USER_DEFINED_ARGS MATCHES "tbb_build_dir=")
set(result "tbb_build_dir=${CMAKE_CURRENT_BINARY_DIR}/tbb_cmake_build" ${result})
endif()
if (NOT tbb_GMA_USER_DEFINED_ARGS MATCHES "tbb_build_prefix=")
set(result "tbb_build_prefix=tbb_cmake_build_subdir" ${result})
endif()
if (NOT tbb_GMA_USER_DEFINED_ARGS MATCHES "(;|^) *\\-j[0-9]* *(;|$)")
include(ProcessorCount)
ProcessorCount(num_of_cores)
if (NOT num_of_cores EQUAL 0)
set(result "-j${num_of_cores}" ${result})
endif()
endif()
if (CMAKE_SYSTEM_NAME MATCHES "Android")
set(result target=android ${result})
endif()
set(${tbb_GMA_RESULT} ${result} PARENT_SCOPE)
endfunction()
##
# Provides release and debug directories basing on 'make' arguments.
#
# Following 'make' arguments are parsed: tbb_build_dir, tbb_build_prefix
#
# Parameters:
# MAKE_ARGS <list> - 'make' arguments (tbb_build_dir and tbb_build_prefix are required)
# RELEASE_DIR <variable> - store normalized (CMake) path to release directory
# DEBUG_DIR <variable> - store normalized (CMake) path to debug directory
#
function(tbb_get_build_paths_from_make_args)
set(oneValueArgs RELEASE_DIR DEBUG_DIR)
set(multiValueArgs MAKE_ARGS)
cmake_parse_arguments(tbb_GBPFMA "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN})
foreach(arg ${tbb_GBPFMA_MAKE_ARGS})
if (arg MATCHES "tbb_build_dir=")
string(REPLACE "tbb_build_dir=" "" tbb_build_dir "${arg}")
elseif (arg MATCHES "tbb_build_prefix=")
string(REPLACE "tbb_build_prefix=" "" tbb_build_prefix "${arg}")
endif()
endforeach()
set(tbb_release_dir "${tbb_build_dir}/${tbb_build_prefix}_release")
set(tbb_debug_dir "${tbb_build_dir}/${tbb_build_prefix}_debug")
file(TO_CMAKE_PATH "${tbb_release_dir}" tbb_release_dir)
file(TO_CMAKE_PATH "${tbb_debug_dir}" tbb_debug_dir)
set(${tbb_GBPFMA_RELEASE_DIR} ${tbb_release_dir} PARENT_SCOPE)
set(${tbb_GBPFMA_DEBUG_DIR} ${tbb_debug_dir} PARENT_SCOPE)
endfunction()
# -------------------- #
# Function entry point #
# -------------------- #
set(oneValueArgs TBB_ROOT CONFIG_DIR)
set(multiValueArgs MAKE_ARGS)
cmake_parse_arguments(tbb_build "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN})
if (NOT EXISTS "${tbb_build_TBB_ROOT}/Makefile" OR NOT EXISTS "${tbb_build_TBB_ROOT}/src")
message(STATUS "Intel TBB can not be built: Makefile or src directory was not found in ${tbb_build_TBB_ROOT}")
set(${tbb_build_CONFIG_DIR} ${tbb_build_CONFIG_DIR}-NOTFOUND PARENT_SCOPE)
return()
endif()
set(make_tool_name make)
if (CMAKE_SYSTEM_NAME MATCHES "Windows")
set(make_tool_name gmake)
elseif (CMAKE_SYSTEM_NAME MATCHES "Android")
set(make_tool_name ndk-build)
endif()
find_program(TBB_MAKE_TOOL ${make_tool_name} DOC "Make-tool to build Intel TBB.")
mark_as_advanced(TBB_MAKE_TOOL)
if (NOT TBB_MAKE_TOOL)
message(STATUS "Intel TBB can not be built: required make-tool (${make_tool_name}) was not found")
set(${tbb_build_CONFIG_DIR} ${tbb_build_CONFIG_DIR}-NOTFOUND PARENT_SCOPE)
return()
endif()
tbb_get_make_args(USER_DEFINED_ARGS ${tbb_build_MAKE_ARGS} RESULT tbb_make_args)
set(tbb_build_cmd ${TBB_MAKE_TOOL} ${tbb_make_args})
string(REPLACE ";" " " tbb_build_cmd_str "${tbb_build_cmd}")
message(STATUS "Building Intel TBB: ${tbb_build_cmd_str}")
execute_process(COMMAND ${tbb_build_cmd}
WORKING_DIRECTORY ${tbb_build_TBB_ROOT}
RESULT_VARIABLE tbb_build_result
ERROR_VARIABLE tbb_build_error_output
OUTPUT_QUIET)
if (NOT tbb_build_result EQUAL 0)
message(STATUS "Building is unsuccessful (${tbb_build_result}): ${tbb_build_error_output}")
set(${tbb_build_CONFIG_DIR} ${tbb_build_CONFIG_DIR}-NOTFOUND PARENT_SCOPE)
return()
endif()
tbb_get_build_paths_from_make_args(MAKE_ARGS ${tbb_make_args}
RELEASE_DIR tbb_release_dir
DEBUG_DIR tbb_debug_dir)
include(${_tbb_cmake_module_path}/TBBMakeConfig.cmake)
tbb_make_config(TBB_ROOT ${tbb_build_TBB_ROOT}
SYSTEM_NAME ${CMAKE_SYSTEM_NAME}
CONFIG_DIR tbb_config_dir
CONFIG_FOR_SOURCE
TBB_RELEASE_DIR ${tbb_release_dir}
TBB_DEBUG_DIR ${tbb_debug_dir})
set(${tbb_build_CONFIG_DIR} ${tbb_config_dir} PARENT_SCOPE)
endfunction()
-298
View File
@@ -1,298 +0,0 @@
# Copyright (c) 2017 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
#
#
#
include(CMakeParseArguments)
# Save the location of Intel TBB CMake modules here, as it will not be possible to do inside functions,
# see for details: https://cmake.org/cmake/help/latest/variable/CMAKE_CURRENT_LIST_DIR.html
set(_tbb_cmake_module_path ${CMAKE_CURRENT_LIST_DIR})
##
# Downloads file.
#
# Parameters:
# URL <url> - URL to download data from;
# SAVE_AS <filename> - filename there to save downloaded data;
# INFO <string> - text description of content to be downloaded;
# will be printed as message in format is "Downloading <INFO>: <URL>;
# FORCE - option to delete local file from SAVE_AS if it exists;
#
function(_tbb_download_file)
set(options FORCE)
set(oneValueArgs URL RELEASE SAVE_AS INFO)
cmake_parse_arguments(tbb_df "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN})
if (tbb_df_FORCE AND EXISTS "${tbb_df_SAVE_AS}")
file(REMOVE ${tbb_df_SAVE_AS})
endif()
if (NOT EXISTS "${tbb_df_SAVE_AS}")
set(_show_progress)
if (TBB_DOWNLOADING_PROGRESS)
set(_show_progress SHOW_PROGRESS)
endif()
message(STATUS "Downloading ${tbb_df_INFO}: ${tbb_df_URL}")
file(DOWNLOAD ${tbb_df_URL} ${tbb_df_SAVE_AS} ${_show_progress} STATUS download_status)
list(GET download_status 0 download_status_num)
if (NOT download_status_num EQUAL 0)
message(STATUS "Unsuccessful downloading: ${download_status}")
file(REMOVE ${tbb_df_SAVE_AS})
return()
endif()
else()
message(STATUS "Needed file was found locally ${tbb_df_SAVE_AS}. Remove it if you still want to download a new one")
endif()
endfunction()
##
# Checks if specified Intel TBB release is available on GitHub.
#
# tbb_check_git_release(<release> <result>)
# Parameters:
# <release_tag> - release to be checked;
# <result> - store result (TRUE/FALSE).
#
function(_tbb_check_git_release_tag _tbb_release_tag _tbb_release_tag_avail)
if (_tbb_release_tag STREQUAL LATEST)
set(${_tbb_release_tag_avail} TRUE PARENT_SCOPE)
return()
endif()
set(tbb_releases_file "${CMAKE_CURRENT_BINARY_DIR}/tbb_releases.json")
_tbb_download_file(URL "${tbb_github_api}/releases"
SAVE_AS ${tbb_releases_file}
INFO "information from GitHub about Intel TBB releases"
FORCE)
if (NOT EXISTS "${tbb_releases_file}")
set(${_tbb_release_tag_avail} FALSE PARENT_SCOPE)
return()
endif()
file(READ ${tbb_releases_file} tbb_releases)
string(REPLACE "\"" "" tbb_releases ${tbb_releases})
string(REGEX MATCHALL "tag_name: *([A-Za-z0-9_\\.]+)" tbb_releases ${tbb_releases})
set(_release_available FALSE)
foreach(tbb_rel ${tbb_releases})
string(REGEX REPLACE "tag_name: *" "" tbb_rel_cut ${tbb_rel})
list(REMOVE_ITEM tbb_releases ${tbb_rel})
list(APPEND tbb_releases ${tbb_rel_cut})
if (_tbb_release_tag STREQUAL tbb_rel_cut)
set(_release_available TRUE)
break()
endif()
endforeach()
if (NOT _release_available)
string(REPLACE ";" ", " tbb_releases_str "${tbb_releases}")
message(STATUS "Requested release tag ${_tbb_release_tag} is not available. Available Intel TBB release tags: ${tbb_releases_str}")
endif()
set(${_tbb_release_tag_avail} ${_release_available} PARENT_SCOPE)
endfunction()
##
# Compares two Intel TBB releases and provides result
# TRUE if the first release is less than the second, FALSE otherwise.
#
# tbb_is_release_less(<rel1> <rel2> <result>)
#
function(_tbb_is_release_less rel1 rel2 result)
# Convert release to numeric representation to compare it using "if" with VERSION_LESS.
string(REGEX REPLACE "[A-Za-z]" "" rel1 "${rel1}")
string(REPLACE "_" "." rel1 "${rel1}")
string(REGEX REPLACE "[A-Za-z]" "" rel2 "${rel2}")
string(REPLACE "_" "." rel2 "${rel2}")
if (${rel1} VERSION_LESS ${rel2})
set(${result} TRUE PARENT_SCOPE)
return()
endif()
set(${result} FALSE PARENT_SCOPE)
endfunction()
##
# Finds exact URL to download Intel TBB basing on provided parameters.
#
# Usage:
# _tbb_get_url(URL <var_to_save_url> RELEASE_TAG <release_tag|LATEST> OS <os> [SOURCE_CODE])
#
function(_tbb_get_url)
set(oneValueArgs URL RELEASE_TAG OS)
set(options SOURCE_CODE)
cmake_parse_arguments(tbb_get_url "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN})
set(tbb_github_api "https://api.github.com/repos/01org/tbb")
_tbb_check_git_release_tag(${tbb_get_url_RELEASE_TAG} tbb_release_available)
if (NOT tbb_release_available)
set(${tbb_download_FULL_PATH} ${tbb_download_FULL_PATH}-NOTFOUND PARENT_SCOPE)
return()
endif()
if (tbb_get_url_RELEASE_TAG STREQUAL LATEST)
set(tbb_rel_info_api_url "${tbb_github_api}/releases/latest")
else()
set(tbb_rel_info_api_url "${tbb_github_api}/releases/tags/${tbb_get_url_RELEASE_TAG}")
endif()
set(tbb_release_info_file "${CMAKE_CURRENT_BINARY_DIR}/tbb_${tbb_get_url_RELEASE_TAG}_info.json")
_tbb_download_file(URL ${tbb_rel_info_api_url}
SAVE_AS ${tbb_release_info_file}
INFO "information from GitHub about packages for Intel TBB ${tbb_get_url_RELEASE_TAG}"
FORCE)
if (NOT EXISTS "${tbb_release_info_file}")
set(${tbb_get_url_URL} ${tbb_get_url_URL}-NOTFOUND PARENT_SCOPE)
return()
endif()
file(STRINGS ${tbb_release_info_file} tbb_release_info)
if (tbb_get_url_SOURCE_CODE)
# Find name of the latest release to get link to source archive.
if (tbb_get_url_RELEASE_TAG STREQUAL LATEST)
string(REPLACE "\"" "" tbb_release_info ${tbb_release_info})
string(REGEX REPLACE ".*tag_name: *([A-Za-z0-9_\\.]+).*" "\\1" tbb_get_url_RELEASE_TAG "${tbb_release_info}")
endif()
set(${tbb_get_url_URL} "https://github.com/01org/tbb/archive/${tbb_get_url_RELEASE_TAG}.tar.gz" PARENT_SCOPE)
else()
if (tbb_get_url_OS MATCHES "Linux")
set(tbb_lib_archive_suffix lin.tgz)
elseif (tbb_get_url_OS MATCHES "Windows")
set(tbb_lib_archive_suffix win.zip)
elseif (tbb_get_url_OS MATCHES "Darwin")
set(tbb_lib_archive_suffix mac.tgz)
# Since 2017_U4 release archive for Apple has suffix "mac.tgz" instead of "osx.tgz".
if (NOT tbb_get_url_RELEASE_TAG STREQUAL "LATEST")
_tbb_is_release_less(${tbb_get_url_RELEASE_TAG} 2017_U4 release_less)
if (release_less)
set(tbb_lib_archive_suffix osx.tgz)
endif()
endif()
elseif (tbb_get_url_OS MATCHES "Android")
set(tbb_lib_archive_suffix and.tgz)
else()
message(STATUS "Currently prebuilt Intel TBB is not available for your OS (${tbb_get_url_OS})")
set(${tbb_get_url_URL} ${tbb_get_url_URL}-NOTFOUND PARENT_SCOPE)
return()
endif()
string(REGEX REPLACE ".*(https.*oss_${tbb_lib_archive_suffix}).*" "\\1" tbb_bin_url "${tbb_release_info}")
set(${tbb_get_url_URL} ${tbb_bin_url} PARENT_SCOPE)
endif()
endfunction()
function(tbb_get)
set(oneValueArgs RELEASE_TAG SYSTEM_NAME SAVE_TO TBB_ROOT CONFIG_DIR)
set(options SOURCE_CODE)
cmake_parse_arguments(tbb_get "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN})
set(tbb_os ${CMAKE_SYSTEM_NAME})
if (tbb_get_SYSTEM_NAME)
set(tbb_os ${tbb_get_SYSTEM_NAME})
endif()
set(tbb_release_tag LATEST)
if (tbb_get_RELEASE_TAG)
set(tbb_release_tag ${tbb_get_RELEASE_TAG})
endif()
set(tbb_save_to ${CMAKE_CURRENT_BINARY_DIR}/tbb_downloaded)
if (tbb_get_SAVE_TO)
set(tbb_save_to ${tbb_get_SAVE_TO})
endif()
if (tbb_get_SOURCE_CODE)
_tbb_get_url(URL tbb_url RELEASE_TAG ${tbb_release_tag} OS ${tbb_os} SOURCE_CODE)
else()
_tbb_get_url(URL tbb_url RELEASE_TAG ${tbb_release_tag} OS ${tbb_os})
endif()
if (NOT tbb_url)
message(STATUS "URL to download Intel TBB has not been found")
set(${tbb_get_TBB_ROOT} ${tbb_get_TBB_ROOT}-NOTFOUND PARENT_SCOPE)
return()
endif()
get_filename_component(filename ${tbb_url} NAME)
set(local_file "${CMAKE_CURRENT_BINARY_DIR}/${filename}")
_tbb_download_file(URL ${tbb_url}
SAVE_AS ${local_file}
INFO "Intel TBB library")
if (NOT EXISTS "${local_file}")
set(${tbb_get_TBB_ROOT} ${tbb_get_TBB_ROOT}-NOTFOUND PARENT_SCOPE)
return()
endif()
get_filename_component(subdir_name ${filename} NAME_WE)
file(MAKE_DIRECTORY ${tbb_save_to}/${subdir_name})
if (NOT EXISTS "${tbb_save_to}/${subdir_name}")
message(STATUS "${tbb_save_to}/${subdir_name} can not be created")
set(${tbb_get_TBB_ROOT} ${tbb_get_TBB_ROOT}-NOTFOUND PARENT_SCOPE)
return()
endif()
message(STATUS "Unpacking ${local_file} to ${tbb_save_to}/${subdir_name}")
execute_process(COMMAND ${CMAKE_COMMAND} -E tar xzf ${local_file}
WORKING_DIRECTORY ${tbb_save_to}/${subdir_name}
RESULT_VARIABLE unpacking_result)
if (NOT unpacking_result EQUAL 0)
message(STATUS "Unsuccessful unpacking: ${unpacking_result}")
set(${tbb_get_TBB_ROOT} ${tbb_get_TBB_ROOT}-NOTFOUND PARENT_SCOPE)
return()
endif()
file(GLOB_RECURSE tbb_h ${tbb_save_to}/${subdir_name}/*/include/tbb/tbb.h)
list(GET tbb_h 0 tbb_h)
if (NOT EXISTS "${tbb_h}")
message(STATUS "tbb/tbb.h has not been found in the downloaded package")
set(${tbb_get_TBB_ROOT} ${tbb_get_TBB_ROOT}-NOTFOUND PARENT_SCOPE)
return()
endif()
get_filename_component(tbb_root "${tbb_h}" PATH)
get_filename_component(tbb_root "${tbb_root}" PATH)
get_filename_component(tbb_root "${tbb_root}" PATH)
if (NOT tbb_get_SOURCE_CODE)
set(tbb_config_dir ${tbb_root}/cmake)
if (NOT EXISTS "${tbb_config_dir}")
tbb_make_config(TBB_ROOT ${tbb_root} CONFIG_DIR tbb_config_dir)
endif()
set(${tbb_get_CONFIG_DIR} ${tbb_config_dir} PARENT_SCOPE)
endif()
set(${tbb_get_TBB_ROOT} ${tbb_root} PARENT_SCOPE)
endfunction()
-169
View File
@@ -1,169 +0,0 @@
# Copyright (c) 2017 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
#
#
#
#
# Usage:
# include(TBBMakeConfig.cmake)
# tbb_make_config(TBB_ROOT <tbb_root> SYSTEM_NAME <system_name> CONFIG_DIR <var_to_store_config_dir> [SAVE_TO] [CONFIG_FOR_SOURCE TBB_RELEASE_DIR <tbb_release_dir> TBB_DEBUG_DIR <tbb_debug_dir>])
#
include(CMakeParseArguments)
# Save the location of Intel TBB CMake modules here, as it will not be possible to do inside functions,
# see for details: https://cmake.org/cmake/help/latest/variable/CMAKE_CURRENT_LIST_DIR.html
set(_tbb_cmake_module_path ${CMAKE_CURRENT_LIST_DIR})
function(tbb_make_config)
set(oneValueArgs TBB_ROOT SYSTEM_NAME CONFIG_DIR SAVE_TO TBB_RELEASE_DIR TBB_DEBUG_DIR)
set(options CONFIG_FOR_SOURCE)
cmake_parse_arguments(tbb_MK "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN})
set(tbb_system_name ${CMAKE_SYSTEM_NAME})
if (tbb_MK_SYSTEM_NAME)
set(tbb_system_name ${tbb_MK_SYSTEM_NAME})
endif()
set(tbb_config_dir ${tbb_MK_TBB_ROOT}/cmake)
if (tbb_MK_SAVE_TO)
set(tbb_config_dir ${tbb_MK_SAVE_TO})
endif()
file(MAKE_DIRECTORY ${tbb_config_dir})
set(TBB_DEFAULT_COMPONENTS tbb tbbmalloc tbbmalloc_proxy)
if (tbb_MK_CONFIG_FOR_SOURCE)
set(TBB_RELEASE_DIR ${tbb_MK_TBB_RELEASE_DIR})
set(TBB_DEBUG_DIR ${tbb_MK_TBB_DEBUG_DIR})
endif()
if (tbb_system_name STREQUAL "Linux")
set(TBB_SHARED_LIB_DIR "lib")
set(TBB_X32_SUBDIR "ia32")
set(TBB_X64_SUBDIR "intel64")
set(TBB_LIB_PREFIX "lib")
set(TBB_LIB_EXT "so.2")
# Note: multiline variable
set(TBB_CHOOSE_COMPILER_SUBDIR "if (CMAKE_CXX_COMPILER_LOADED)
set(_tbb_compiler_id \${CMAKE_CXX_COMPILER_ID})
set(_tbb_compiler_ver \${CMAKE_CXX_COMPILER_VERSION})
elseif (CMAKE_C_COMPILER_LOADED)
set(_tbb_compiler_id \${CMAKE_C_COMPILER_ID})
set(_tbb_compiler_ver \${CMAKE_C_COMPILER_VERSION})
endif()
# For non-GCC compilers try to find version of system GCC to choose right compiler subdirectory.
if (NOT _tbb_compiler_id STREQUAL \"GNU\")
execute_process(COMMAND gcc --version OUTPUT_VARIABLE _tbb_gcc_ver_output ERROR_QUIET)
string(REGEX REPLACE \".*gcc.*([0-9]+\\\\.[0-9]+)\\\\.[0-9]+.*\" \"\\\\1\" _tbb_compiler_ver \"\${_tbb_gcc_ver_output}\")
if (NOT _tbb_compiler_ver)
message(FATAL_ERROR \"This Intel TBB package is intended to be used only environment with available 'gcc'\")
endif()
unset(_tbb_gcc_ver_output)
endif()
set(_tbb_compiler_subdir gcc4.1)
foreach (_tbb_gcc_version 4.1 4.4 4.7)
if (NOT _tbb_compiler_ver VERSION_LESS \${_tbb_gcc_version})
set(_tbb_compiler_subdir gcc\${_tbb_gcc_version})
endif()
endforeach()
unset(_tbb_compiler_id)
unset(_tbb_compiler_ver)")
elseif (tbb_system_name STREQUAL "Windows")
set(TBB_SHARED_LIB_DIR "bin")
set(TBB_X32_SUBDIR "ia32")
set(TBB_X64_SUBDIR "intel64")
set(TBB_LIB_PREFIX "")
set(TBB_LIB_EXT "dll")
# Note: multiline variable
set(TBB_CHOOSE_COMPILER_SUBDIR "if (NOT MSVC)
message(FATAL_ERROR \"This Intel TBB package is intended to be used only in the project with MSVC\")
endif()
# Detect the most relevant MSVC subdirectory
set(_tbb_msvc_1700_subdir vc11)
set(_tbb_msvc_1800_subdir vc12)
set(_tbb_msvc_1900_subdir vc14)
set(_tbb_msvc_ver \${MSVC_VERSION})
if (MSVC_VERSION VERSION_LESS 1700)
message(FATAL_ERROR \"This Intel TBB package is intended to be used only in the project with MSVC version 1700 (vc11) or higher\")
elseif (MSVC_VERSION VERSION_GREATER 1900)
set(_tbb_msvc_ver 1900)
endif()
set(_tbb_compiler_subdir \${_tbb_msvc_\${_tbb_msvc_ver}_subdir})
unset(_tbb_msvc_1700_subdir)
unset(_tbb_msvc_1800_subdir)
unset(_tbb_msvc_1900_subdir)
if (WINDOWS_STORE)
set(_tbb_compiler_subdir \${_tbb_compiler_subdir}_ui)
endif()")
if (tbb_MK_CONFIG_FOR_SOURCE)
set(TBB_IMPLIB_RELEASE "\nIMPORTED_IMPLIB_RELEASE \"${tbb_MK_TBB_RELEASE_DIR}/\${_tbb_component}.lib\"")
set(TBB_IMPLIB_DEBUG "\nIMPORTED_IMPLIB_DEBUG \"${tbb_MK_TBB_DEBUG_DIR}/\${_tbb_component}_debug.lib\"")
else()
# Note: multiline variable
set(TBB_IMPLIB "
IMPORTED_IMPLIB_RELEASE \"\${_tbb_root}/lib/\${_tbb_arch_subdir}/\${_tbb_compiler_subdir}/\${_tbb_component}.lib\"
IMPORTED_IMPLIB_DEBUG \"\${_tbb_root}/lib/\${_tbb_arch_subdir}/\${_tbb_compiler_subdir}/\${_tbb_component}_debug.lib\"")
endif()
# Note: multiline variable
# tbb/internal/_tbb_windef.h (included via tbb/tbb_stddef.h) does implicit linkage of some .lib files, use a special define to avoid it
set(TBB_COMPILE_DEFINITIONS "
INTERFACE_COMPILE_DEFINITIONS \"__TBB_NO_IMPLICIT_LINKAGE=1\"")
elseif (tbb_system_name STREQUAL "Darwin")
set(TBB_SHARED_LIB_DIR "lib")
set(TBB_X32_SUBDIR ".")
set(TBB_X64_SUBDIR ".")
set(TBB_LIB_PREFIX "lib")
set(TBB_LIB_EXT "dylib")
set(TBB_CHOOSE_COMPILER_SUBDIR "set(_tbb_compiler_subdir .)")
elseif (tbb_system_name STREQUAL "Android")
set(TBB_SHARED_LIB_DIR "lib")
set(TBB_X32_SUBDIR ".")
set(TBB_X64_SUBDIR "x86_64")
set(TBB_LIB_PREFIX "lib")
set(TBB_LIB_EXT "so")
set(TBB_CHOOSE_COMPILER_SUBDIR "set(_tbb_compiler_subdir .)")
else()
message(FATAL_ERROR "Unsupported OS name: ${tbb_system_name}")
endif()
file(READ "${tbb_MK_TBB_ROOT}/include/tbb/tbb_stddef.h" _tbb_stddef)
string(REGEX REPLACE ".*#define TBB_VERSION_MAJOR ([0-9]+).*" "\\1" _tbb_ver_major "${_tbb_stddef}")
string(REGEX REPLACE ".*#define TBB_VERSION_MINOR ([0-9]+).*" "\\1" _tbb_ver_minor "${_tbb_stddef}")
string(REGEX REPLACE ".*#define TBB_INTERFACE_VERSION ([0-9]+).*" "\\1" TBB_INTERFACE_VERSION "${_tbb_stddef}")
set(TBB_VERSION "${_tbb_ver_major}.${_tbb_ver_minor}")
if (tbb_MK_CONFIG_FOR_SOURCE)
set(_tbb_config_template TBBConfigForSource.cmake.in)
else()
set(_tbb_config_template TBBConfig.cmake.in)
endif()
configure_file(${_tbb_cmake_module_path}/templates/${_tbb_config_template} ${tbb_config_dir}/TBBConfig.cmake @ONLY)
configure_file(${_tbb_cmake_module_path}/templates/TBBConfigVersion.cmake.in ${tbb_config_dir}/TBBConfigVersion.cmake @ONLY)
set(${tbb_MK_CONFIG_DIR} ${tbb_config_dir} PARENT_SCOPE)
endfunction()
-45
View File
@@ -1,45 +0,0 @@
# Copyright (c) 2017 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
#
#
#
function(tbb_conf_gen_print_help)
message("Usage: cmake -DTBB_ROOT=<tbb_root> -DTBB_OS=Linux|Windows|Darwin [-DSAVE_TO=<path>] -P tbb_config_generator.cmake")
endfunction()
if (NOT DEFINED TBB_ROOT)
tbb_conf_gen_print_help()
message(FATAL_ERROR "Required parameter TBB_ROOT is not defined")
endif()
if (NOT EXISTS "${TBB_ROOT}")
tbb_conf_gen_print_help()
message(FATAL_ERROR "TBB_ROOT=${TBB_ROOT} does not exist")
endif()
if (NOT DEFINED TBB_OS)
tbb_conf_gen_print_help()
message(FATAL_ERROR "Required parameter TBB_OS is not defined")
endif()
if (DEFINED SAVE_TO)
set(tbb_conf_gen_save_to_param SAVE_TO ${SAVE_TO})
endif()
include(${CMAKE_CURRENT_LIST_DIR}/TBBMakeConfig.cmake)
tbb_make_config(TBB_ROOT ${TBB_ROOT} CONFIG_DIR tbb_config_dir SYSTEM_NAME ${TBB_OS} ${tbb_conf_gen_save_to_param})
message(STATUS "TBBConfig files were created in ${tbb_config_dir}")
-89
View File
@@ -1,89 +0,0 @@
# Copyright (c) 2017 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
#
#
#
# TBB_FOUND should not be set explicitly. It is defined automatically by CMake.
# Handling of TBB_VERSION is in TBBConfigVersion.cmake.
if (NOT TBB_FIND_COMPONENTS)
set(TBB_FIND_COMPONENTS "@TBB_DEFAULT_COMPONENTS@")
foreach (_tbb_component ${TBB_FIND_COMPONENTS})
set(TBB_FIND_REQUIRED_${_tbb_component} 1)
endforeach()
endif()
# Add components with internal dependencies: tbbmalloc_proxy -> tbbmalloc
list(FIND TBB_FIND_COMPONENTS tbbmalloc_proxy _tbbmalloc_proxy_ix)
if (NOT _tbbmalloc_proxy_ix EQUAL -1)
list(FIND TBB_FIND_COMPONENTS tbbmalloc _tbbmalloc_ix)
if (_tbbmalloc_ix EQUAL -1)
list(APPEND TBB_FIND_COMPONENTS tbbmalloc)
set(TBB_FIND_REQUIRED_tbbmalloc ${TBB_FIND_REQUIRED_tbbmalloc_proxy})
endif()
endif()
set(TBB_INTERFACE_VERSION @TBB_INTERFACE_VERSION@)
get_filename_component(_tbb_root "${CMAKE_CURRENT_LIST_FILE}" PATH)
get_filename_component(_tbb_root "${_tbb_root}" PATH)
set(_tbb_x32_subdir @TBB_X32_SUBDIR@)
set(_tbb_x64_subdir @TBB_X64_SUBDIR@)
if (CMAKE_SIZEOF_VOID_P EQUAL 8)
set(_tbb_arch_subdir ${_tbb_x64_subdir})
else()
set(_tbb_arch_subdir ${_tbb_x32_subdir})
endif()
@TBB_CHOOSE_COMPILER_SUBDIR@
get_filename_component(_tbb_lib_path "${_tbb_root}/@TBB_SHARED_LIB_DIR@/${_tbb_arch_subdir}/${_tbb_compiler_subdir}" ABSOLUTE)
foreach (_tbb_component ${TBB_FIND_COMPONENTS})
set(_tbb_release_lib "${_tbb_lib_path}/@TBB_LIB_PREFIX@${_tbb_component}.@TBB_LIB_EXT@")
set(_tbb_debug_lib "${_tbb_lib_path}/@TBB_LIB_PREFIX@${_tbb_component}_debug.@TBB_LIB_EXT@")
if (EXISTS "${_tbb_release_lib}" AND EXISTS "${_tbb_debug_lib}")
add_library(TBB::${_tbb_component} SHARED IMPORTED)
set_target_properties(TBB::${_tbb_component} PROPERTIES
IMPORTED_CONFIGURATIONS "RELEASE;DEBUG"
IMPORTED_LOCATION_RELEASE "${_tbb_release_lib}"
IMPORTED_LOCATION_DEBUG "${_tbb_debug_lib}"
INTERFACE_INCLUDE_DIRECTORIES "${_tbb_root}/include"@TBB_IMPLIB@@TBB_COMPILE_DEFINITIONS@)
# Add internal dependencies for imported targets: TBB::tbbmalloc_proxy -> TBB::tbbmalloc
if (_tbb_component STREQUAL tbbmalloc_proxy)
set_target_properties(TBB::tbbmalloc_proxy PROPERTIES INTERFACE_LINK_LIBRARIES TBB::tbbmalloc)
endif()
list(APPEND TBB_IMPORTED_TARGETS TBB::${_tbb_component})
set(TBB_${_tbb_component}_FOUND 1)
elseif (TBB_FIND_REQUIRED AND TBB_FIND_REQUIRED_${_tbb_component})
message(FATAL_ERROR "Missed required Intel TBB component: ${_tbb_component}")
endif()
endforeach()
unset(_tbb_x32_subdir)
unset(_tbb_x64_subdir)
unset(_tbb_arch_subdir)
unset(_tbb_compiler_subdir)
unset(_tbbmalloc_proxy_ix)
unset(_tbbmalloc_ix)
unset(_tbb_lib_path)
unset(_tbb_release_lib)
unset(_tbb_debug_lib)
@@ -1,82 +0,0 @@
# Copyright (c) 2017 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
#
#
#
# TBB_FOUND should not be set explicitly. It is defined automatically by CMake.
# Handling of TBB_VERSION is in TBBConfigVersion.cmake.
if (NOT TBB_FIND_COMPONENTS)
set(TBB_FIND_COMPONENTS "@TBB_DEFAULT_COMPONENTS@")
foreach (_tbb_component ${TBB_FIND_COMPONENTS})
set(TBB_FIND_REQUIRED_${_tbb_component} 1)
endforeach()
endif()
# Add components with internal dependencies: tbbmalloc_proxy -> tbbmalloc
list(FIND TBB_FIND_COMPONENTS tbbmalloc_proxy _tbbmalloc_proxy_ix)
if (NOT _tbbmalloc_proxy_ix EQUAL -1)
list(FIND TBB_FIND_COMPONENTS tbbmalloc _tbbmalloc_ix)
if (_tbbmalloc_ix EQUAL -1)
list(APPEND TBB_FIND_COMPONENTS tbbmalloc)
set(TBB_FIND_REQUIRED_tbbmalloc ${TBB_FIND_REQUIRED_tbbmalloc_proxy})
endif()
endif()
set(TBB_INTERFACE_VERSION @TBB_INTERFACE_VERSION@)
get_filename_component(_tbb_root "${CMAKE_CURRENT_LIST_FILE}" PATH)
get_filename_component(_tbb_root "${_tbb_root}" PATH)
foreach (_tbb_component ${TBB_FIND_COMPONENTS})
set(_tbb_release_lib "@TBB_RELEASE_DIR@/@TBB_LIB_PREFIX@${_tbb_component}.@TBB_LIB_EXT@")
set(_tbb_debug_lib "@TBB_DEBUG_DIR@/@TBB_LIB_PREFIX@${_tbb_component}_debug.@TBB_LIB_EXT@")
if (EXISTS "${_tbb_release_lib}" OR EXISTS "${_tbb_debug_lib}")
add_library(TBB::${_tbb_component} SHARED IMPORTED)
set_target_properties(TBB::${_tbb_component} PROPERTIES
INTERFACE_INCLUDE_DIRECTORIES "${_tbb_root}/include"@TBB_COMPILE_DEFINITIONS@)
if (EXISTS "${_tbb_release_lib}")
set_target_properties(TBB::${_tbb_component} PROPERTIES
IMPORTED_LOCATION_RELEASE "${_tbb_release_lib}"@TBB_IMPLIB_RELEASE@)
set_property(TARGET TBB::${_tbb_component} APPEND PROPERTY IMPORTED_CONFIGURATIONS RELEASE)
endif()
if (EXISTS "${_tbb_debug_lib}")
set_target_properties(TBB::${_tbb_component} PROPERTIES
IMPORTED_LOCATION_DEBUG "${_tbb_debug_lib}"@TBB_IMPLIB_DEBUG@)
set_property(TARGET TBB::${_tbb_component} APPEND PROPERTY IMPORTED_CONFIGURATIONS DEBUG)
endif()
# Add internal dependencies for imported targets: TBB::tbbmalloc_proxy -> TBB::tbbmalloc
if (_tbb_component STREQUAL tbbmalloc_proxy)
set_target_properties(TBB::tbbmalloc_proxy PROPERTIES INTERFACE_LINK_LIBRARIES TBB::tbbmalloc)
endif()
list(APPEND TBB_IMPORTED_TARGETS TBB::${_tbb_component})
set(TBB_${_tbb_component}_FOUND 1)
elseif (TBB_FIND_REQUIRED AND TBB_FIND_REQUIRED_${_tbb_component})
message(FATAL_ERROR "Missed required Intel TBB component: ${_tbb_component}")
endif()
endforeach()
unset(_tbbmalloc_proxy_ix)
unset(_tbbmalloc_ix)
unset(_tbb_lib_path)
unset(_tbb_release_lib)
unset(_tbb_debug_lib)
-28
View File
@@ -1,28 +0,0 @@
# Copyright (c) 2017 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
#
#
#
set(PACKAGE_VERSION @TBB_VERSION@)
if ("${PACKAGE_VERSION}" VERSION_LESS "${PACKAGE_FIND_VERSION}")
set(PACKAGE_VERSION_COMPATIBLE FALSE)
else()
set(PACKAGE_VERSION_COMPATIBLE TRUE)
if ("${PACKAGE_VERSION}" VERSION_EQUAL "${PACKAGE_FIND_VERSION}")
set(PACKAGE_VERSION_EXACT TRUE)
endif()
endif()
+36 -39
View File
@@ -1,6 +1,6 @@
------------------------------------------------------------------------
Intel(R) Threading Building Blocks - Release Notes
Version 2018
Version 2017
------------------------------------------------------------------------
@@ -23,21 +23,21 @@ and compilers listed here.
Hardware - Recommended
Microsoft* Windows* Systems
Intel(R) Core(TM) processor family
Intel(R) Xeon(R) processor family
Intel(R) Core(TM) processor family or higher
Intel(R) Xeon(R) processor family or higher
Intel(R) Xeon Phi(TM) processor family
Linux* Systems
Intel(R) Core(TM) processor family
Intel(R) Xeon(R) processor family
Intel(R) Core(TM) processor family or higher
Intel(R) Xeon(R) processor family or higher
Intel(R) Xeon Phi(TM) processor family
macOS* Systems
Intel(R) Core(TM) processor family
Intel(R) Core(TM) processor family or higher
Android* Systems
Intel(R) Atom(TM) processor family
Hardware - Supported
Intel(R) Pentium(R) 4 processor family
Intel(R) Pentium(R) 4 processor family and higher
Intel(R) Xeon Phi(TM) coprocessor
Intel(R) Atom(TM) processor family
Non Intel(R) processors compatible with the above processors
@@ -49,59 +49,56 @@ Software - Minimum Requirements
Software - Recommended
Intel(R) Parallel Studio XE 2017, 2018
Intel(R) System Studio 2017, 2018
Intel(R) Parallel Studio XE 2016 and higher
Intel(R) System Studio 2016 and higher
Software - Supported Operating Systems
Systems with Microsoft* Windows* operating systems
Microsoft* Windows* 10
Microsoft* Windows* 8.1
Microsoft* Windows* 8, 8.1
Microsoft* Windows* 7 SP1
Microsoft* Windows* Server 2016
Microsoft* Windows* Server 2012 R2
Microsoft* Windows* Server 2012
Microsoft* Windows* Server 2008 R2 SP1
Windows* Embedded 10
Windows* Embedded 8.1
Microsoft* Windows* HPC Server 2008
Windows Embedded 8.x, 10
Systems with Linux* operating systems
CentOS 7.1
Debian* 8, 9
Fedora* 24, 25, 26
CentOS 6.5, 7.1
Debian* 7, 8
Fedora* 20, 21, 22, 23
Intel(R) Cluster Ready
Red Hat* Enterprise Linux* 6, 7
SuSE* Linux* Enterprise Server 11, 12
Ubuntu* 14.04 LTS, 16.04 LTS, 17.04
WindRiver* Linux 8, 9
Yocto 2.2, 2.3
Ubuntu* 12.04 LTS, 14.04 LTS, 15.04, 16.04 LTS
WindRiver* Linux 7
Yocto 1.7, 1.9 (2.0), 2.1
Systems with OS X* or macOS* operating systems
OS X* 10.10, 10.11
macOS* 10.12, 10.13
OS X* 10.10 and higher
macOS* 10.12 and higher
Systems with Android* operating systems
Android* 5.x, 6.x, 7.x, 8.x
Android* 5.x, 6.x
Software - Supported Compilers
Intel(R) C++ Compiler 16, 17 and 18 version
Microsoft* Visual C++ 12.0 (Microsoft* Visual Studio* 2013,
Windows* OS only)
Microsoft* Visual C++ 14.0 (Microsoft* Visual Studio* 2015,
Windows* OS only)
Microsoft* Visual C++ 14.1 (Microsoft* Visual Studio* 2017,
Windows* OS only)
Microsoft* Windows* Software Development Kit for Windows* 8.1
Microsoft* Windows* Software Development Kit for Windows* 10
Intel(R) C++ Compiler 15.0 and higher
Microsoft* Visual C++ 11.0 (Microsoft* Visual Studio* 2012,
Windows* OS only) and higher
Microsoft* Windows* Software Development Kit for Windows* 8
and higher
For each supported Linux* operating system, the standard gcc
version provided with that operating system is supported
GNU Compilers (gcc) 4.1 - 7.1
GNU C Library (glibc) version 2.4 - 2.19
Xcode* 6.3 - 9.1
Android* NDK r10e - r16
version provided with that operating system is supported,
starting from
GNU Compilers (gcc) 4.1 and higher
GNU C Library (glibc) version 2.4 and higher
Xcode* 6.3 and higher
Android* NDK r10e and higher
Software - Supported Performance Analysis Tools
Intel(R) VTune(TM) Amplifier XE 2017, 2018.
Intel(R) Inspector XE 2017, 2018.
Intel(R) Advisor XE 2017, 2018.
Intel(R) VTune(TM) Amplifier XE 2016 and higher.
Intel(R) Inspector XE 2016 and higher.
Intel(R) Advisor XE 2016 and higher.
Known Issues
------------
+1 -1
View File
@@ -34,7 +34,7 @@
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="a00264.html">List of all members</a> </div>
<a href="a00260.html">List of all members</a> </div>
<div class="headertitle">
<div class="title">__TBB_malloc_proxy_caller Struct Reference</div> </div>
</div><!--header-->
+42 -42
View File
@@ -33,14 +33,14 @@
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="a00237.html">tbb</a></li><li class="navelem"><b>interface5</b></li><li class="navelem"><a class="el" href="a00040.html">concurrent_hash_map</a></li><li class="navelem"><a class="el" href="a00009.html">accessor</a></li> </ul>
<li class="navelem"><a class="el" href="a00234.html">tbb</a></li><li class="navelem"><b>interface5</b></li><li class="navelem"><a class="el" href="a00036.html">concurrent_hash_map</a></li><li class="navelem"><a class="el" href="a00009.html">accessor</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#pub-types">Public Types</a> &#124;
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="a00362.html">List of all members</a> </div>
<a href="a00357.html">List of all members</a> </div>
<div class="headertitle">
<div class="title">tbb::interface5::concurrent_hash_map&lt; Key, T, HashCompare, A &gt;::accessor Class Reference</div> </div>
</div><!--header-->
@@ -56,7 +56,7 @@ Inheritance diagram for tbb::interface5::concurrent_hash_map&lt; Key, T, HashCom
<div class="center">
<img src="a00009.png" usemap="#tbb::interface5::concurrent_hash_map&lt; Key, T, HashCompare, A &gt;::accessor_map" alt=""/>
<map id="tbb::interface5::concurrent_hash_map&lt; Key, T, HashCompare, A &gt;::accessor_map" name="tbb::interface5::concurrent_hash_map&lt; Key, T, HashCompare, A &gt;::accessor_map">
<area href="a00051.html" title="Combines data access, locking, and garbage collection. " alt="tbb::interface5::concurrent_hash_map&lt; Key, T, HashCompare, A &gt;::const_accessor" shape="rect" coords="0,56,488,80"/>
<area href="a00047.html" title="Combines data access, locking, and garbage collection. " alt="tbb::interface5::concurrent_hash_map&lt; Key, T, HashCompare, A &gt;::const_accessor" shape="rect" coords="0,56,488,80"/>
</map>
</div></div>
<table class="memberdecls">
@@ -67,12 +67,12 @@ typedef <br class="typebreak"/>
concurrent_hash_map::value_type&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00009.html#a850178bbdcdbc4cf5955cab37eb8c42c">value_type</a></td></tr>
<tr class="memdesc:a850178bbdcdbc4cf5955cab37eb8c42c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Type of value. <br/></td></tr>
<tr class="separator:a850178bbdcdbc4cf5955cab37eb8c42c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_types_a00051"><td colspan="2" onclick="javascript:toggleInherit('pub_types_a00051')"><img src="closed.png" alt="-"/>&#160;Public Types inherited from <a class="el" href="a00051.html">tbb::interface5::concurrent_hash_map&lt; Key, T, HashCompare, A &gt;::const_accessor</a></td></tr>
<tr class="memitem:aa8ca5aef4ee14b7eddb64767b8cd5fda inherit pub_types_a00051"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aa8ca5aef4ee14b7eddb64767b8cd5fda"></a>
<tr class="inherit_header pub_types_a00047"><td colspan="2" onclick="javascript:toggleInherit('pub_types_a00047')"><img src="closed.png" alt="-"/>&#160;Public Types inherited from <a class="el" href="a00047.html">tbb::interface5::concurrent_hash_map&lt; Key, T, HashCompare, A &gt;::const_accessor</a></td></tr>
<tr class="memitem:aa8ca5aef4ee14b7eddb64767b8cd5fda inherit pub_types_a00047"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aa8ca5aef4ee14b7eddb64767b8cd5fda"></a>
typedef const <br class="typebreak"/>
concurrent_hash_map::value_type&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00051.html#aa8ca5aef4ee14b7eddb64767b8cd5fda">value_type</a></td></tr>
<tr class="memdesc:aa8ca5aef4ee14b7eddb64767b8cd5fda inherit pub_types_a00051"><td class="mdescLeft">&#160;</td><td class="mdescRight">Type of value. <br/></td></tr>
<tr class="separator:aa8ca5aef4ee14b7eddb64767b8cd5fda inherit pub_types_a00051"><td class="memSeparator" colspan="2">&#160;</td></tr>
concurrent_hash_map::value_type&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00047.html#aa8ca5aef4ee14b7eddb64767b8cd5fda">value_type</a></td></tr>
<tr class="memdesc:aa8ca5aef4ee14b7eddb64767b8cd5fda inherit pub_types_a00047"><td class="mdescLeft">&#160;</td><td class="mdescRight">Type of value. <br/></td></tr>
<tr class="separator:aa8ca5aef4ee14b7eddb64767b8cd5fda inherit pub_types_a00047"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
@@ -84,45 +84,45 @@ reference&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href=
pointer&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00009.html#ab04f73bd4a4ca7df0dc91a7b4d66f987">operator-&gt;</a> () const </td></tr>
<tr class="memdesc:ab04f73bd4a4ca7df0dc91a7b4d66f987"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return pointer to associated value in hash table. <br/></td></tr>
<tr class="separator:ab04f73bd4a4ca7df0dc91a7b4d66f987"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_methods_a00051"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_a00051')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="a00051.html">tbb::interface5::concurrent_hash_map&lt; Key, T, HashCompare, A &gt;::const_accessor</a></td></tr>
<tr class="memitem:a6299b523d2ae8e2613f1bc160ca99b85 inherit pub_methods_a00051"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a6299b523d2ae8e2613f1bc160ca99b85"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00051.html#a6299b523d2ae8e2613f1bc160ca99b85">empty</a> () const </td></tr>
<tr class="memdesc:a6299b523d2ae8e2613f1bc160ca99b85 inherit pub_methods_a00051"><td class="mdescLeft">&#160;</td><td class="mdescRight">True if result is empty. <br/></td></tr>
<tr class="separator:a6299b523d2ae8e2613f1bc160ca99b85 inherit pub_methods_a00051"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a18390cb369369d72bdf7c867755b5190 inherit pub_methods_a00051"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a18390cb369369d72bdf7c867755b5190"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00051.html#a18390cb369369d72bdf7c867755b5190">release</a> ()</td></tr>
<tr class="memdesc:a18390cb369369d72bdf7c867755b5190 inherit pub_methods_a00051"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set to null. <br/></td></tr>
<tr class="separator:a18390cb369369d72bdf7c867755b5190 inherit pub_methods_a00051"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8adf04e33e7c8c876ba849f26807713a inherit pub_methods_a00051"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a8adf04e33e7c8c876ba849f26807713a"></a>
const_reference&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00051.html#a8adf04e33e7c8c876ba849f26807713a">operator*</a> () const </td></tr>
<tr class="memdesc:a8adf04e33e7c8c876ba849f26807713a inherit pub_methods_a00051"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return reference to associated value in hash table. <br/></td></tr>
<tr class="separator:a8adf04e33e7c8c876ba849f26807713a inherit pub_methods_a00051"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a28fa9b9e6c35d7e80217e69a7afe1ee5 inherit pub_methods_a00051"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a28fa9b9e6c35d7e80217e69a7afe1ee5"></a>
const_pointer&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00051.html#a28fa9b9e6c35d7e80217e69a7afe1ee5">operator-&gt;</a> () const </td></tr>
<tr class="memdesc:a28fa9b9e6c35d7e80217e69a7afe1ee5 inherit pub_methods_a00051"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return pointer to associated value in hash table. <br/></td></tr>
<tr class="separator:a28fa9b9e6c35d7e80217e69a7afe1ee5 inherit pub_methods_a00051"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7b26d22d228cf0d8678c9b346c63752c inherit pub_methods_a00051"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a7b26d22d228cf0d8678c9b346c63752c"></a>
&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00051.html#a7b26d22d228cf0d8678c9b346c63752c">const_accessor</a> ()</td></tr>
<tr class="memdesc:a7b26d22d228cf0d8678c9b346c63752c inherit pub_methods_a00051"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create empty result. <br/></td></tr>
<tr class="separator:a7b26d22d228cf0d8678c9b346c63752c inherit pub_methods_a00051"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afbc0c85a146c912b9a0f94a7695957c7 inherit pub_methods_a00051"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="afbc0c85a146c912b9a0f94a7695957c7"></a>
&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00051.html#afbc0c85a146c912b9a0f94a7695957c7">~const_accessor</a> ()</td></tr>
<tr class="memdesc:afbc0c85a146c912b9a0f94a7695957c7 inherit pub_methods_a00051"><td class="mdescLeft">&#160;</td><td class="mdescRight">Destroy result after releasing the underlying reference. <br/></td></tr>
<tr class="separator:afbc0c85a146c912b9a0f94a7695957c7 inherit pub_methods_a00051"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_methods_a00047"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_a00047')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="a00047.html">tbb::interface5::concurrent_hash_map&lt; Key, T, HashCompare, A &gt;::const_accessor</a></td></tr>
<tr class="memitem:a6299b523d2ae8e2613f1bc160ca99b85 inherit pub_methods_a00047"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a6299b523d2ae8e2613f1bc160ca99b85"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00047.html#a6299b523d2ae8e2613f1bc160ca99b85">empty</a> () const </td></tr>
<tr class="memdesc:a6299b523d2ae8e2613f1bc160ca99b85 inherit pub_methods_a00047"><td class="mdescLeft">&#160;</td><td class="mdescRight">True if result is empty. <br/></td></tr>
<tr class="separator:a6299b523d2ae8e2613f1bc160ca99b85 inherit pub_methods_a00047"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a18390cb369369d72bdf7c867755b5190 inherit pub_methods_a00047"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a18390cb369369d72bdf7c867755b5190"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00047.html#a18390cb369369d72bdf7c867755b5190">release</a> ()</td></tr>
<tr class="memdesc:a18390cb369369d72bdf7c867755b5190 inherit pub_methods_a00047"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set to null. <br/></td></tr>
<tr class="separator:a18390cb369369d72bdf7c867755b5190 inherit pub_methods_a00047"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8adf04e33e7c8c876ba849f26807713a inherit pub_methods_a00047"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a8adf04e33e7c8c876ba849f26807713a"></a>
const_reference&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00047.html#a8adf04e33e7c8c876ba849f26807713a">operator*</a> () const </td></tr>
<tr class="memdesc:a8adf04e33e7c8c876ba849f26807713a inherit pub_methods_a00047"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return reference to associated value in hash table. <br/></td></tr>
<tr class="separator:a8adf04e33e7c8c876ba849f26807713a inherit pub_methods_a00047"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a28fa9b9e6c35d7e80217e69a7afe1ee5 inherit pub_methods_a00047"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a28fa9b9e6c35d7e80217e69a7afe1ee5"></a>
const_pointer&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00047.html#a28fa9b9e6c35d7e80217e69a7afe1ee5">operator-&gt;</a> () const </td></tr>
<tr class="memdesc:a28fa9b9e6c35d7e80217e69a7afe1ee5 inherit pub_methods_a00047"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return pointer to associated value in hash table. <br/></td></tr>
<tr class="separator:a28fa9b9e6c35d7e80217e69a7afe1ee5 inherit pub_methods_a00047"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7b26d22d228cf0d8678c9b346c63752c inherit pub_methods_a00047"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a7b26d22d228cf0d8678c9b346c63752c"></a>
&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00047.html#a7b26d22d228cf0d8678c9b346c63752c">const_accessor</a> ()</td></tr>
<tr class="memdesc:a7b26d22d228cf0d8678c9b346c63752c inherit pub_methods_a00047"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create empty result. <br/></td></tr>
<tr class="separator:a7b26d22d228cf0d8678c9b346c63752c inherit pub_methods_a00047"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afbc0c85a146c912b9a0f94a7695957c7 inherit pub_methods_a00047"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="afbc0c85a146c912b9a0f94a7695957c7"></a>
&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00047.html#afbc0c85a146c912b9a0f94a7695957c7">~const_accessor</a> ()</td></tr>
<tr class="memdesc:afbc0c85a146c912b9a0f94a7695957c7 inherit pub_methods_a00047"><td class="mdescLeft">&#160;</td><td class="mdescRight">Destroy result after releasing the underlying reference. <br/></td></tr>
<tr class="separator:afbc0c85a146c912b9a0f94a7695957c7 inherit pub_methods_a00047"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="inherited"></a>
Additional Inherited Members</h2></td></tr>
<tr class="inherit_header pro_methods_a00051"><td colspan="2" onclick="javascript:toggleInherit('pro_methods_a00051')"><img src="closed.png" alt="-"/>&#160;Protected Member Functions inherited from <a class="el" href="a00051.html">tbb::interface5::concurrent_hash_map&lt; Key, T, HashCompare, A &gt;::const_accessor</a></td></tr>
<tr class="memitem:a05b74d408d8cd7773f7b5edfef97da1b inherit pro_methods_a00051"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a05b74d408d8cd7773f7b5edfef97da1b"></a>
<tr class="inherit_header pro_methods_a00047"><td colspan="2" onclick="javascript:toggleInherit('pro_methods_a00047')"><img src="closed.png" alt="-"/>&#160;Protected Member Functions inherited from <a class="el" href="a00047.html">tbb::interface5::concurrent_hash_map&lt; Key, T, HashCompare, A &gt;::const_accessor</a></td></tr>
<tr class="memitem:a05b74d408d8cd7773f7b5edfef97da1b inherit pro_methods_a00047"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a05b74d408d8cd7773f7b5edfef97da1b"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><b>is_writer</b> ()</td></tr>
<tr class="separator:a05b74d408d8cd7773f7b5edfef97da1b inherit pro_methods_a00051"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pro_attribs_a00051"><td colspan="2" onclick="javascript:toggleInherit('pro_attribs_a00051')"><img src="closed.png" alt="-"/>&#160;Protected Attributes inherited from <a class="el" href="a00051.html">tbb::interface5::concurrent_hash_map&lt; Key, T, HashCompare, A &gt;::const_accessor</a></td></tr>
<tr class="memitem:ac9b96f45483ddbff95a95e8e666a8f28 inherit pro_attribs_a00051"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ac9b96f45483ddbff95a95e8e666a8f28"></a>
<a class="el" href="a00087.html">node</a> *&#160;</td><td class="memItemRight" valign="bottom"><b>my_node</b></td></tr>
<tr class="separator:ac9b96f45483ddbff95a95e8e666a8f28 inherit pro_attribs_a00051"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5034084f595666b47734f99a6eaefa9f inherit pro_attribs_a00051"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a5034084f595666b47734f99a6eaefa9f"></a>
<tr class="separator:a05b74d408d8cd7773f7b5edfef97da1b inherit pro_methods_a00047"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pro_attribs_a00047"><td colspan="2" onclick="javascript:toggleInherit('pro_attribs_a00047')"><img src="closed.png" alt="-"/>&#160;Protected Attributes inherited from <a class="el" href="a00047.html">tbb::interface5::concurrent_hash_map&lt; Key, T, HashCompare, A &gt;::const_accessor</a></td></tr>
<tr class="memitem:ac9b96f45483ddbff95a95e8e666a8f28 inherit pro_attribs_a00047"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ac9b96f45483ddbff95a95e8e666a8f28"></a>
<a class="el" href="a00083.html">node</a> *&#160;</td><td class="memItemRight" valign="bottom"><b>my_node</b></td></tr>
<tr class="separator:ac9b96f45483ddbff95a95e8e666a8f28 inherit pro_attribs_a00047"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5034084f595666b47734f99a6eaefa9f inherit pro_attribs_a00047"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a5034084f595666b47734f99a6eaefa9f"></a>
hashcode_t&#160;</td><td class="memItemRight" valign="bottom"><b>my_hash</b></td></tr>
<tr class="separator:a5034084f595666b47734f99a6eaefa9f inherit pro_attribs_a00051"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="separator:a5034084f595666b47734f99a6eaefa9f inherit pro_attribs_a00047"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><h3>template&lt;typename Key, typename T, typename HashCompare = tbb_hash_compare&lt;Key&gt;, typename A = tbb_allocator&lt;std::pair&lt;Key, T&gt; &gt;&gt;<br/>
+2 -2
View File
@@ -33,13 +33,13 @@
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="a00237.html">tbb</a></li><li class="navelem"><b>interface5</b></li><li class="navelem"><a class="el" href="a00040.html">concurrent_hash_map</a></li><li class="navelem"><a class="el" href="a00010.html">accessor_not_used</a></li> </ul>
<li class="navelem"><a class="el" href="a00234.html">tbb</a></li><li class="navelem"><b>interface5</b></li><li class="navelem"><a class="el" href="a00036.html">concurrent_hash_map</a></li><li class="navelem"><a class="el" href="a00010.html">accessor_not_used</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="a00363.html">List of all members</a> </div>
<a href="a00358.html">List of all members</a> </div>
<div class="headertitle">
<div class="title">tbb::interface5::concurrent_hash_map&lt; Key, T, HashCompare, A &gt;::accessor_not_used Struct Reference</div> </div>
</div><!--header-->
+3 -3
View File
@@ -33,13 +33,13 @@
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="a00237.html">tbb</a></li><li class="navelem"><b>interface6</b></li><li class="navelem"><a class="el" href="a00011.html">aggregator</a></li> </ul>
<li class="navelem"><a class="el" href="a00234.html">tbb</a></li><li class="navelem"><b>interface6</b></li><li class="navelem"><a class="el" href="a00011.html">aggregator</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="a00382.html">List of all members</a> </div>
<a href="a00378.html">List of all members</a> </div>
<div class="headertitle">
<div class="title">tbb::interface6::aggregator Class Reference</div> </div>
</div><!--header-->
@@ -70,7 +70,7 @@ Public Member Functions</h2></td></tr>
Additional Inherited Members</h2></td></tr>
<tr class="inherit_header pub_methods_a00012"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_a00012')"><img src="closed.png" alt="-"/>&#160;Private Member Functions inherited from <a class="el" href="a00012.html">tbb::interface6::aggregator_ext&lt; internal::basic_handler &gt;</a></td></tr>
<tr class="memitem:a8ae120a21264cc1ea0a9cfafaa0634e4 inherit pub_methods_a00012"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a8ae120a21264cc1ea0a9cfafaa0634e4"></a>
&#160;</td><td class="memItemRight" valign="bottom"><b>aggregator_ext</b> (const <a class="el" href="a00023.html">internal::basic_handler</a> &amp;h)</td></tr>
&#160;</td><td class="memItemRight" valign="bottom"><b>aggregator_ext</b> (const <a class="el" href="a00019.html">internal::basic_handler</a> &amp;h)</td></tr>
<tr class="separator:a8ae120a21264cc1ea0a9cfafaa0634e4 inherit pub_methods_a00012"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae55b16ec6af204aa00d6a716fccec9f7 inherit pub_methods_a00012"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00012.html#ae55b16ec6af204aa00d6a716fccec9f7">process</a> (<a class="el" href="a00013.html">aggregator_operation</a> *op)</td></tr>
<tr class="memdesc:ae55b16ec6af204aa00d6a716fccec9f7 inherit pub_methods_a00012"><td class="mdescLeft">&#160;</td><td class="mdescRight">EXPERT INTERFACE: Enter a user-made operation into the aggregator's mailbox. <a href="#ae55b16ec6af204aa00d6a716fccec9f7">More...</a><br/></td></tr>
+2 -2
View File
@@ -33,14 +33,14 @@
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="a00237.html">tbb</a></li><li class="navelem"><b>interface6</b></li><li class="navelem"><a class="el" href="a00012.html">aggregator_ext</a></li> </ul>
<li class="navelem"><a class="el" href="a00234.html">tbb</a></li><li class="navelem"><b>interface6</b></li><li class="navelem"><a class="el" href="a00012.html">aggregator_ext</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#pro-methods">Protected Member Functions</a> &#124;
<a href="a00381.html">List of all members</a> </div>
<a href="a00377.html">List of all members</a> </div>
<div class="headertitle">
<div class="title">tbb::interface6::aggregator_ext&lt; handler_type &gt; Class Template Reference</div> </div>
</div><!--header-->
+4 -4
View File
@@ -33,7 +33,7 @@
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="a00237.html">tbb</a></li><li class="navelem"><b>interface6</b></li><li class="navelem"><a class="el" href="a00013.html">aggregator_operation</a></li> </ul>
<li class="navelem"><a class="el" href="a00234.html">tbb</a></li><li class="navelem"><b>interface6</b></li><li class="navelem"><a class="el" href="a00013.html">aggregator_operation</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
@@ -41,7 +41,7 @@
<a href="#pub-types">Public Types</a> &#124;
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#friends">Friends</a> &#124;
<a href="a00380.html">List of all members</a> </div>
<a href="a00376.html">List of all members</a> </div>
<div class="headertitle">
<div class="title">tbb::interface6::aggregator_operation Class Reference</div> </div>
</div><!--header-->
@@ -52,8 +52,8 @@ Inheritance diagram for tbb::interface6::aggregator_operation:</div>
<div class="center">
<img src="a00013.png" usemap="#tbb::interface6::aggregator_operation_map" alt=""/>
<map id="tbb::interface6::aggregator_operation_map" name="tbb::interface6::aggregator_operation_map">
<area href="a00025.html" alt="tbb::interface6::internal::basic_operation_base" shape="rect" coords="0,56,289,80"/>
<area href="a00024.html" alt="tbb::interface6::internal::basic_operation&lt; Body &gt;" shape="rect" coords="0,112,289,136"/>
<area href="a00021.html" alt="tbb::interface6::internal::basic_operation_base" shape="rect" coords="0,56,289,80"/>
<area href="a00020.html" alt="tbb::interface6::internal::basic_operation&lt; Body &gt;" shape="rect" coords="0,112,289,136"/>
</map>
</div></div>
<table class="memberdecls">
+11 -11
View File
@@ -33,15 +33,15 @@
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="a00237.html">tbb</a></li><li class="navelem"><a class="el" href="a00014.html">aligned_space</a></li> </ul>
<li class="navelem"><a class="el" href="a00234.html">tbb</a></li><li class="navelem"><a class="el" href="a00014.html">aligned_space</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="a00266.html">List of all members</a> </div>
<a href="a00262.html">List of all members</a> </div>
<div class="headertitle">
<div class="title">tbb::aligned_space&lt; T, N &gt; Class Template Reference<div class="ingroups"><a class="el" href="a00259.html">Memory Allocation</a></div></div> </div>
<div class="title">tbb::aligned_space&lt; T, N &gt; Class Template Reference<div class="ingroups"><a class="el" href="a00255.html">Memory Allocation</a></div></div> </div>
</div><!--header-->
<div class="contents">
@@ -52,14 +52,14 @@
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:aefcd343548f92c6e738febedf1d75f74"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aefcd343548f92c6e738febedf1d75f74"></a>
T *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00014.html#aefcd343548f92c6e738febedf1d75f74">begin</a> () const </td></tr>
<tr class="memdesc:aefcd343548f92c6e738febedf1d75f74"><td class="mdescLeft">&#160;</td><td class="mdescRight">Pointer to beginning of array. <br/></td></tr>
<tr class="separator:aefcd343548f92c6e738febedf1d75f74"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa2ec5fe3a8f1641884358740766fde34"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aa2ec5fe3a8f1641884358740766fde34"></a>
T *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00014.html#aa2ec5fe3a8f1641884358740766fde34">end</a> () const </td></tr>
<tr class="memdesc:aa2ec5fe3a8f1641884358740766fde34"><td class="mdescLeft">&#160;</td><td class="mdescRight">Pointer to one past last element in array. <br/></td></tr>
<tr class="separator:aa2ec5fe3a8f1641884358740766fde34"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3525dbbac0d4eaedfe18bc57b7760857"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a3525dbbac0d4eaedfe18bc57b7760857"></a>
T *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00014.html#a3525dbbac0d4eaedfe18bc57b7760857">begin</a> ()</td></tr>
<tr class="memdesc:a3525dbbac0d4eaedfe18bc57b7760857"><td class="mdescLeft">&#160;</td><td class="mdescRight">Pointer to beginning of array. <br/></td></tr>
<tr class="separator:a3525dbbac0d4eaedfe18bc57b7760857"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae95620e1159984a2670bd418ed4748d0"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ae95620e1159984a2670bd418ed4748d0"></a>
T *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00014.html#ae95620e1159984a2670bd418ed4748d0">end</a> ()</td></tr>
<tr class="memdesc:ae95620e1159984a2670bd418ed4748d0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Pointer to one past last element in array. <br/></td></tr>
<tr class="separator:ae95620e1159984a2670bd418ed4748d0"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><h3>template&lt;typename T, size_t N = 1&gt;<br/>
+37 -41
View File
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.4"/>
<title>tbb::flow::interface10::internal::async_helpers&lt; T, typename &gt; Struct Template Reference</title>
<title>tbb::atomic&lt; T &gt; Struct Template Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -33,55 +33,51 @@
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="a00237.html">tbb</a></li><li class="navelem"><b>flow</b></li><li class="navelem"><b>interface10</b></li><li class="navelem"><b>internal</b></li><li class="navelem"><a class="el" href="a00015.html">async_helpers</a></li> </ul>
<li class="navelem"><a class="el" href="a00234.html">tbb</a></li><li class="navelem"><a class="el" href="a00015.html">atomic</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#pub-types">Public Types</a> &#124;
<a href="#pub-static-methods">Static Public Member Functions</a> &#124;
<a href="#pub-static-attribs">Static Public Attributes</a> &#124;
<a href="a00350.html">List of all members</a> </div>
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="a00263.html">List of all members</a> </div>
<div class="headertitle">
<div class="title">tbb::flow::interface10::internal::async_helpers&lt; T, typename &gt; Struct Template Reference</div> </div>
<div class="title">tbb::atomic&lt; T &gt; Struct Template Reference<div class="ingroups"><a class="el" href="a00256.html">Synchronization</a></div></div> </div>
</div><!--header-->
<div class="contents">
<p>Primary template for atomic.
<a href="a00015.html#details">More...</a></p>
<p><code>#include &lt;atomic.h&gt;</code></p>
<div class="dynheader">
Inheritance diagram for tbb::atomic&lt; T &gt;:</div>
<div class="dyncontent">
<div class="center">
<img src="a00015.png" usemap="#tbb::atomic&lt; T &gt;_map" alt=""/>
<map id="tbb::atomic&lt; T &gt;_map" name="tbb::atomic&lt; T &gt;_map">
</map>
</div></div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-types"></a>
Public Types</h2></td></tr>
<tr class="memitem:a9a483310f1b2e6cfd952906124a09ebb"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a9a483310f1b2e6cfd952906124a09ebb"></a>
typedef <a class="el" href="a00017.html">async_msg</a>&lt; T &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>async_type</b></td></tr>
<tr class="separator:a9a483310f1b2e6cfd952906124a09ebb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abcefe402ace161e17c974ae2dd3b458a"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="abcefe402ace161e17c974ae2dd3b458a"></a>
typedef T&#160;</td><td class="memItemRight" valign="bottom"><b>filtered_type</b></td></tr>
<tr class="separator:abcefe402ace161e17c974ae2dd3b458a"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-static-methods"></a>
Static Public Member Functions</h2></td></tr>
<tr class="memitem:a2236321141eea81b8367f8786f62c656"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a2236321141eea81b8367f8786f62c656"></a>
static const void *&#160;</td><td class="memItemRight" valign="bottom"><b>to_void_ptr</b> (const T &amp;t)</td></tr>
<tr class="separator:a2236321141eea81b8367f8786f62c656"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac4b81efe81c177c1fb61142c1655a340"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ac4b81efe81c177c1fb61142c1655a340"></a>
static void *&#160;</td><td class="memItemRight" valign="bottom"><b>to_void_ptr</b> (T &amp;t)</td></tr>
<tr class="separator:ac4b81efe81c177c1fb61142c1655a340"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac43a4547e19a30fb2156eb7e59f22c61"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ac43a4547e19a30fb2156eb7e59f22c61"></a>
static const T &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>from_void_ptr</b> (const void *p)</td></tr>
<tr class="separator:ac43a4547e19a30fb2156eb7e59f22c61"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a70bb7b481e7b4786edf07881b7114b09"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a70bb7b481e7b4786edf07881b7114b09"></a>
static T &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>from_void_ptr</b> (void *p)</td></tr>
<tr class="separator:a70bb7b481e7b4786edf07881b7114b09"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8737716155b1acede28ae85dc00edaef"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a8737716155b1acede28ae85dc00edaef"></a>
static task *&#160;</td><td class="memItemRight" valign="bottom"><b>try_put_task_wrapper_impl</b> (<a class="el" href="a00122.html">receiver</a>&lt; T &gt; *const this_recv, const void *p, bool is_async)</td></tr>
<tr class="separator:a8737716155b1acede28ae85dc00edaef"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-static-attribs"></a>
Static Public Attributes</h2></td></tr>
<tr class="memitem:a77c7b633889eff6fbf768a09515c8cfe"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a77c7b633889eff6fbf768a09515c8cfe"></a>
static const bool&#160;</td><td class="memItemRight" valign="bottom"><b>is_async_type</b> = false</td></tr>
<tr class="separator:a77c7b633889eff6fbf768a09515c8cfe"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:a8624826901f5a3267853386bf880bd88"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a8624826901f5a3267853386bf880bd88"></a>
constexpr&#160;</td><td class="memItemRight" valign="bottom"><b>atomic</b> (T arg)</td></tr>
<tr class="separator:a8624826901f5a3267853386bf880bd88"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5942feb81281f810edddc61a48dd7a39"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a5942feb81281f810edddc61a48dd7a39"></a>
T&#160;</td><td class="memItemRight" valign="bottom"><b>operator=</b> (T rhs)</td></tr>
<tr class="separator:a5942feb81281f810edddc61a48dd7a39"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7d65b6cae3bd11c79a8e51e25055be52"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a7d65b6cae3bd11c79a8e51e25055be52"></a>
<a class="el" href="a00015.html">atomic</a>&lt; T &gt; &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>operator=</b> (const <a class="el" href="a00015.html">atomic</a>&lt; T &gt; &amp;rhs)</td></tr>
<tr class="separator:a7d65b6cae3bd11c79a8e51e25055be52"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<hr/>The documentation for this struct was generated from the following file:<ul>
<li><a class="el" href="a00191.html">flow_graph.h</a></li>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><h3>template&lt;typename T&gt;<br/>
struct tbb::atomic&lt; T &gt;</h3>
<p>Primary template for atomic. </p>
<p>See the Reference for details. </p>
</div><hr/>The documentation for this struct was generated from the following file:<ul>
<li>atomic.h</li>
</ul>
</div><!-- contents -->
<hr>

Before

Width:  |  Height:  |  Size: 595 B

After

Width:  |  Height:  |  Size: 595 B

+36 -41
View File
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.4"/>
<title>tbb::flow::interface10::internal::async_helpers&lt; T, typename std::enable_if&lt; std::is_base_of&lt; async_msg&lt; typename T::async_msg_data_type &gt;, T &gt;::value &gt;::type &gt; Struct Template Reference</title>
<title>tbb::atomic&lt; void * &gt; Struct Template Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -33,55 +33,50 @@
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="a00237.html">tbb</a></li><li class="navelem"><b>flow</b></li><li class="navelem"><b>interface10</b></li><li class="navelem"><b>internal</b></li><li class="navelem"><a class="el" href="a00016.html">async_helpers< T, typename std::enable_if< std::is_base_of< async_msg< typename T::async_msg_data_type >, T >::value >::type ></a></li> </ul>
<li class="navelem"><a class="el" href="a00234.html">tbb</a></li><li class="navelem"><a class="el" href="a00016.html">atomic< void * ></a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#pub-types">Public Types</a> &#124;
<a href="#pub-static-methods">Static Public Member Functions</a> &#124;
<a href="#pub-static-attribs">Static Public Attributes</a> &#124;
<a href="a00351.html">List of all members</a> </div>
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="a00264.html">List of all members</a> </div>
<div class="headertitle">
<div class="title">tbb::flow::interface10::internal::async_helpers&lt; T, typename std::enable_if&lt; std::is_base_of&lt; async_msg&lt; typename T::async_msg_data_type &gt;, T &gt;::value &gt;::type &gt; Struct Template Reference</div> </div>
<div class="title">tbb::atomic&lt; void * &gt; Struct Template Reference</div> </div>
</div><!--header-->
<div class="contents">
<p>Specialization for <a class="el" href="a00016.html" title="Specialization for atomic&lt;void*&gt;, for sake of not allowing arithmetic or operator-&gt;. ">atomic&lt;void*&gt;</a>, for sake of not allowing arithmetic or operator-&gt;.
<a href="a00016.html#details">More...</a></p>
<p><code>#include &lt;atomic.h&gt;</code></p>
<div class="dynheader">
Inheritance diagram for tbb::atomic&lt; void * &gt;:</div>
<div class="dyncontent">
<div class="center">
<img src="a00016.png" usemap="#tbb::atomic&lt; void * &gt;_map" alt=""/>
<map id="tbb::atomic&lt; void * &gt;_map" name="tbb::atomic&lt; void * &gt;_map">
</map>
</div></div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-types"></a>
Public Types</h2></td></tr>
<tr class="memitem:a087d75662143ef3819379262e52fb1a9"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a087d75662143ef3819379262e52fb1a9"></a>
typedef T&#160;</td><td class="memItemRight" valign="bottom"><b>async_type</b></td></tr>
<tr class="separator:a087d75662143ef3819379262e52fb1a9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a99b3ba7bf9185ece5fc65a014e26e048"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a99b3ba7bf9185ece5fc65a014e26e048"></a>
typedef T::async_msg_data_type&#160;</td><td class="memItemRight" valign="bottom"><b>filtered_type</b></td></tr>
<tr class="separator:a99b3ba7bf9185ece5fc65a014e26e048"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-static-methods"></a>
Static Public Member Functions</h2></td></tr>
<tr class="memitem:af303cbf389e29ff0de60ee6d824c07e5"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="af303cbf389e29ff0de60ee6d824c07e5"></a>
static const void *&#160;</td><td class="memItemRight" valign="bottom"><b>to_void_ptr</b> (const T &amp;t)</td></tr>
<tr class="separator:af303cbf389e29ff0de60ee6d824c07e5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a24cfe0e9b862f04412c6174b6f9f3b69"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a24cfe0e9b862f04412c6174b6f9f3b69"></a>
static void *&#160;</td><td class="memItemRight" valign="bottom"><b>to_void_ptr</b> (T &amp;t)</td></tr>
<tr class="separator:a24cfe0e9b862f04412c6174b6f9f3b69"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aff46d0962be22746402cf3a2a4a4e8ea"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aff46d0962be22746402cf3a2a4a4e8ea"></a>
static const T &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>from_void_ptr</b> (const void *p)</td></tr>
<tr class="separator:aff46d0962be22746402cf3a2a4a4e8ea"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a448f6a16e2831f45d959628bd6296a7c"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a448f6a16e2831f45d959628bd6296a7c"></a>
static T &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>from_void_ptr</b> (void *p)</td></tr>
<tr class="separator:a448f6a16e2831f45d959628bd6296a7c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afaba573c1bf66e75146ef561767576eb"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="afaba573c1bf66e75146ef561767576eb"></a>
static task *&#160;</td><td class="memItemRight" valign="bottom"><b>try_put_task_wrapper_impl</b> (<a class="el" href="a00122.html">receiver</a>&lt; T &gt; *const this_recv, const void *p, bool is_async)</td></tr>
<tr class="separator:afaba573c1bf66e75146ef561767576eb"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-static-attribs"></a>
Static Public Attributes</h2></td></tr>
<tr class="memitem:aef518cf077f5d7658c49e81bf451cd2b"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aef518cf077f5d7658c49e81bf451cd2b"></a>
static const bool&#160;</td><td class="memItemRight" valign="bottom"><b>is_async_type</b> = true</td></tr>
<tr class="separator:aef518cf077f5d7658c49e81bf451cd2b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:a744970055554db56a922b83dd1125dcf"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a744970055554db56a922b83dd1125dcf"></a>
constexpr&#160;</td><td class="memItemRight" valign="bottom"><b>atomic</b> (void *arg)</td></tr>
<tr class="separator:a744970055554db56a922b83dd1125dcf"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3da2906b224154d9961054f07b2e310b"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a3da2906b224154d9961054f07b2e310b"></a>
void *&#160;</td><td class="memItemRight" valign="bottom"><b>operator=</b> (void *rhs)</td></tr>
<tr class="separator:a3da2906b224154d9961054f07b2e310b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8cb22d05fe655337f6129dc8f3ab6783"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a8cb22d05fe655337f6129dc8f3ab6783"></a>
<a class="el" href="a00015.html">atomic</a>&lt; void * &gt; &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>operator=</b> (const <a class="el" href="a00015.html">atomic</a>&lt; void * &gt; &amp;rhs)</td></tr>
<tr class="separator:a8cb22d05fe655337f6129dc8f3ab6783"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<hr/>The documentation for this struct was generated from the following file:<ul>
<li><a class="el" href="a00191.html">flow_graph.h</a></li>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><h3>template&lt;&gt;<br/>
struct tbb::atomic&lt; void * &gt;</h3>
<p>Specialization for <a class="el" href="a00016.html" title="Specialization for atomic&lt;void*&gt;, for sake of not allowing arithmetic or operator-&gt;. ">atomic&lt;void*&gt;</a>, for sake of not allowing arithmetic or operator-&gt;. </p>
</div><hr/>The documentation for this struct was generated from the following file:<ul>
<li>atomic.h</li>
</ul>
</div><!-- contents -->
<hr>
Binary file not shown.

After

Width:  |  Height:  |  Size: 688 B

+12 -14
View File
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.4"/>
<title>tbb::flow::interface10::async_msg&lt; T &gt; Class Template Reference</title>
<title>tbb::interface7::task_arena::attach Struct Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -33,25 +33,23 @@
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="a00237.html">tbb</a></li><li class="navelem"><b>flow</b></li><li class="navelem"><b>interface10</b></li><li class="navelem"><a class="el" href="a00017.html">async_msg</a></li> </ul>
<li class="navelem"><a class="el" href="a00234.html">tbb</a></li><li class="navelem"><b>interface7</b></li><li class="navelem"><a class="el" href="a00144.html">task_arena</a></li><li class="navelem"><a class="el" href="a00017.html">attach</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
<div class="title">tbb::flow::interface10::async_msg&lt; T &gt; Class Template Reference</div> </div>
<div class="title">tbb::interface7::task_arena::attach Struct Reference</div> </div>
</div><!--header-->
<div class="contents">
<div class="dynheader">
Inheritance diagram for tbb::flow::interface10::async_msg&lt; T &gt;:</div>
<div class="dyncontent">
<div class="center">
<img src="a00017.png" usemap="#tbb::flow::interface10::async_msg&lt; T &gt;_map" alt=""/>
<map id="tbb::flow::interface10::async_msg&lt; T &gt;_map" name="tbb::flow::interface10::async_msg&lt; T &gt;_map">
<area href="a00091.html" alt="tbb::flow::interface10::opencl_async_msg&lt; T, Factory &gt;" shape="rect" coords="0,56,326,80"/>
</map>
</div></div>
<hr/>The documentation for this class was generated from the following file:<ul>
<li><a class="el" href="a00191.html">flow_graph.h</a></li>
<p>Tag class used to indicate the "attaching" constructor.
<a href="a00017.html#details">More...</a></p>
<p><code>#include &lt;task_arena.h&gt;</code></p>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Tag class used to indicate the "attaching" constructor. </p>
</div><hr/>The documentation for this struct was generated from the following file:<ul>
<li>task_arena.h</li>
</ul>
</div><!-- contents -->
<hr>
Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

+30 -5
View File
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.4"/>
<title>tbb::flow::interface10::internal::async_storage&lt; T &gt; Class Template Reference</title>
<title>tbb::bad_last_alloc Class Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -33,16 +33,41 @@
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="a00237.html">tbb</a></li><li class="navelem"><b>flow</b></li><li class="navelem"><b>interface10</b></li><li class="navelem"><b>internal</b></li><li class="navelem"><a class="el" href="a00018.html">async_storage</a></li> </ul>
<li class="navelem"><a class="el" href="a00234.html">tbb</a></li><li class="navelem"><a class="el" href="a00018.html">bad_last_alloc</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="a00314.html">List of all members</a> </div>
<div class="headertitle">
<div class="title">tbb::flow::interface10::internal::async_storage&lt; T &gt; Class Template Reference</div> </div>
<div class="title">tbb::bad_last_alloc Class Reference</div> </div>
</div><!--header-->
<div class="contents">
<hr/>The documentation for this class was generated from the following file:<ul>
<li><a class="el" href="a00191.html">flow_graph.h</a></li>
<p>Exception for concurrent containers.
<a href="a00018.html#details">More...</a></p>
<p><code>#include &lt;tbb_exception.h&gt;</code></p>
<div class="dynheader">
Inheritance diagram for tbb::bad_last_alloc:</div>
<div class="dyncontent">
<div class="center">
<img src="a00018.png" usemap="#tbb::bad_last_alloc_map" alt=""/>
<map id="tbb::bad_last_alloc_map" name="tbb::bad_last_alloc_map">
</map>
</div></div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:ad26fe8a6bd71e097ab339f3d3895d07c"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ad26fe8a6bd71e097ab339f3d3895d07c"></a>
const char *&#160;</td><td class="memItemRight" valign="bottom"><b>what</b> () const __TBB_override throw ()</td></tr>
<tr class="separator:ad26fe8a6bd71e097ab339f3d3895d07c"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Exception for concurrent containers. </p>
</div><hr/>The documentation for this class was generated from the following file:<ul>
<li>tbb_exception.h</li>
</ul>
</div><!-- contents -->
<hr>

Before

Width:  |  Height:  |  Size: 490 B

After

Width:  |  Height:  |  Size: 490 B

+9 -34
View File
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.4"/>
<title>tbb::atomic&lt; T &gt; Struct Template Reference</title>
<title>tbb::interface6::internal::basic_handler Class Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -33,51 +33,26 @@
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="a00237.html">tbb</a></li><li class="navelem"><a class="el" href="a00019.html">atomic</a></li> </ul>
<li class="navelem"><a class="el" href="a00234.html">tbb</a></li><li class="navelem"><b>interface6</b></li><li class="navelem"><b>internal</b></li><li class="navelem"><a class="el" href="a00019.html">basic_handler</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="a00267.html">List of all members</a> </div>
<a href="a00394.html">List of all members</a> </div>
<div class="headertitle">
<div class="title">tbb::atomic&lt; T &gt; Struct Template Reference<div class="ingroups"><a class="el" href="a00260.html">Synchronization</a></div></div> </div>
<div class="title">tbb::interface6::internal::basic_handler Class Reference</div> </div>
</div><!--header-->
<div class="contents">
<p>Primary template for atomic.
<a href="a00019.html#details">More...</a></p>
<p><code>#include &lt;atomic.h&gt;</code></p>
<div class="dynheader">
Inheritance diagram for tbb::atomic&lt; T &gt;:</div>
<div class="dyncontent">
<div class="center">
<img src="a00019.png" usemap="#tbb::atomic&lt; T &gt;_map" alt=""/>
<map id="tbb::atomic&lt; T &gt;_map" name="tbb::atomic&lt; T &gt;_map">
</map>
</div></div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:a8624826901f5a3267853386bf880bd88"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a8624826901f5a3267853386bf880bd88"></a>
constexpr&#160;</td><td class="memItemRight" valign="bottom"><b>atomic</b> (T arg)</td></tr>
<tr class="separator:a8624826901f5a3267853386bf880bd88"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5942feb81281f810edddc61a48dd7a39"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a5942feb81281f810edddc61a48dd7a39"></a>
T&#160;</td><td class="memItemRight" valign="bottom"><b>operator=</b> (T rhs)</td></tr>
<tr class="separator:a5942feb81281f810edddc61a48dd7a39"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7d65b6cae3bd11c79a8e51e25055be52"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a7d65b6cae3bd11c79a8e51e25055be52"></a>
<a class="el" href="a00019.html">atomic</a>&lt; T &gt; &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>operator=</b> (const <a class="el" href="a00019.html">atomic</a>&lt; T &gt; &amp;rhs)</td></tr>
<tr class="separator:a7d65b6cae3bd11c79a8e51e25055be52"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afb0dec67968e9abdabb5a0e3ec8064a4"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="afb0dec67968e9abdabb5a0e3ec8064a4"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>operator()</b> (<a class="el" href="a00013.html">aggregator_operation</a> *op_list) const </td></tr>
<tr class="separator:afb0dec67968e9abdabb5a0e3ec8064a4"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><h3>template&lt;typename T&gt;<br/>
struct tbb::atomic&lt; T &gt;</h3>
<p>Primary template for atomic. </p>
<p>See the Reference for details. </p>
</div><hr/>The documentation for this struct was generated from the following file:<ul>
<li>atomic.h</li>
<hr/>The documentation for this class was generated from the following file:<ul>
<li>aggregator.h</li>
</ul>
</div><!-- contents -->
<hr>
+22 -28
View File
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.4"/>
<title>tbb::atomic&lt; void * &gt; Struct Template Reference</title>
<title>tbb::interface6::internal::basic_operation&lt; Body &gt; Class Template Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -33,50 +33,44 @@
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="a00237.html">tbb</a></li><li class="navelem"><a class="el" href="a00020.html">atomic< void * ></a></li> </ul>
<li class="navelem"><a class="el" href="a00234.html">tbb</a></li><li class="navelem"><b>interface6</b></li><li class="navelem"><b>internal</b></li><li class="navelem"><a class="el" href="a00020.html">basic_operation</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="a00268.html">List of all members</a> </div>
<a href="a00393.html">List of all members</a> </div>
<div class="headertitle">
<div class="title">tbb::atomic&lt; void * &gt; Struct Template Reference</div> </div>
<div class="title">tbb::interface6::internal::basic_operation&lt; Body &gt; Class Template Reference</div> </div>
</div><!--header-->
<div class="contents">
<p>Specialization for <a class="el" href="a00020.html" title="Specialization for atomic&lt;void*&gt;, for sake of not allowing arithmetic or operator-&gt;. ">atomic&lt;void*&gt;</a>, for sake of not allowing arithmetic or operator-&gt;.
<a href="a00020.html#details">More...</a></p>
<p><code>#include &lt;atomic.h&gt;</code></p>
<div class="dynheader">
Inheritance diagram for tbb::atomic&lt; void * &gt;:</div>
Inheritance diagram for tbb::interface6::internal::basic_operation&lt; Body &gt;:</div>
<div class="dyncontent">
<div class="center">
<img src="a00020.png" usemap="#tbb::atomic&lt; void * &gt;_map" alt=""/>
<map id="tbb::atomic&lt; void * &gt;_map" name="tbb::atomic&lt; void * &gt;_map">
<img src="a00020.png" usemap="#tbb::interface6::internal::basic_operation&lt; Body &gt;_map" alt=""/>
<map id="tbb::interface6::internal::basic_operation&lt; Body &gt;_map" name="tbb::interface6::internal::basic_operation&lt; Body &gt;_map">
<area href="a00021.html" alt="tbb::interface6::internal::basic_operation_base" shape="rect" coords="0,56,289,80"/>
<area href="a00013.html" alt="tbb::interface6::aggregator_operation" shape="rect" coords="0,0,289,24"/>
</map>
</div></div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:a744970055554db56a922b83dd1125dcf"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a744970055554db56a922b83dd1125dcf"></a>
constexpr&#160;</td><td class="memItemRight" valign="bottom"><b>atomic</b> (void *arg)</td></tr>
<tr class="separator:a744970055554db56a922b83dd1125dcf"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3da2906b224154d9961054f07b2e310b"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a3da2906b224154d9961054f07b2e310b"></a>
void *&#160;</td><td class="memItemRight" valign="bottom"><b>operator=</b> (void *rhs)</td></tr>
<tr class="separator:a3da2906b224154d9961054f07b2e310b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8cb22d05fe655337f6129dc8f3ab6783"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a8cb22d05fe655337f6129dc8f3ab6783"></a>
<a class="el" href="a00019.html">atomic</a>&lt; void * &gt; &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>operator=</b> (const <a class="el" href="a00019.html">atomic</a>&lt; void * &gt; &amp;rhs)</td></tr>
<tr class="separator:a8cb22d05fe655337f6129dc8f3ab6783"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adf48b2339f7de2f002c24c8951a03057"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="adf48b2339f7de2f002c24c8951a03057"></a>
&#160;</td><td class="memItemRight" valign="bottom"><b>basic_operation</b> (const Body &amp;b)</td></tr>
<tr class="separator:adf48b2339f7de2f002c24c8951a03057"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="inherited"></a>
Additional Inherited Members</h2></td></tr>
<tr class="inherit_header pub_types_a00013"><td colspan="2" onclick="javascript:toggleInherit('pub_types_a00013')"><img src="closed.png" alt="-"/>&#160;Public Types inherited from <a class="el" href="a00013.html">tbb::interface6::aggregator_operation</a></td></tr>
<tr class="memitem:a855dc55cb1823ed4845f4ed6b0a87700 inherit pub_types_a00013"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><b>aggregator_operation_status</b> { <b>agg_waiting</b> =0,
<b>agg_finished</b>
}</td></tr>
<tr class="separator:a855dc55cb1823ed4845f4ed6b0a87700 inherit pub_types_a00013"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><h3>template&lt;&gt;<br/>
struct tbb::atomic&lt; void * &gt;</h3>
<p>Specialization for <a class="el" href="a00020.html" title="Specialization for atomic&lt;void*&gt;, for sake of not allowing arithmetic or operator-&gt;. ">atomic&lt;void*&gt;</a>, for sake of not allowing arithmetic or operator-&gt;. </p>
</div><hr/>The documentation for this struct was generated from the following file:<ul>
<li>atomic.h</li>
<hr/>The documentation for this class was generated from the following file:<ul>
<li>aggregator.h</li>
</ul>
</div><!-- contents -->
<hr>
Binary file not shown.

Before

Width:  |  Height:  |  Size: 688 B

After

Width:  |  Height:  |  Size: 2.2 KiB

+47 -12
View File
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.4"/>
<title>tbb::interface7::task_arena::attach Struct Reference</title>
<title>tbb::interface6::internal::basic_operation_base Class Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -33,23 +33,58 @@
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="a00237.html">tbb</a></li><li class="navelem"><b>interface7</b></li><li class="navelem"><a class="el" href="a00147.html">task_arena</a></li><li class="navelem"><a class="el" href="a00021.html">attach</a></li> </ul>
<li class="navelem"><a class="el" href="a00234.html">tbb</a></li><li class="navelem"><b>interface6</b></li><li class="navelem"><b>internal</b></li><li class="navelem"><a class="el" href="a00021.html">basic_operation_base</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#friends">Friends</a> &#124;
<a href="a00392.html">List of all members</a> </div>
<div class="headertitle">
<div class="title">tbb::interface7::task_arena::attach Struct Reference</div> </div>
<div class="title">tbb::interface6::internal::basic_operation_base Class Reference<span class="mlabels"><span class="mlabel">abstract</span></span></div> </div>
</div><!--header-->
<div class="contents">
<p>Tag class used to indicate the "attaching" constructor.
<a href="a00021.html#details">More...</a></p>
<p><code>#include &lt;task_arena.h&gt;</code></p>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Tag class used to indicate the "attaching" constructor. </p>
</div><hr/>The documentation for this struct was generated from the following file:<ul>
<li>task_arena.h</li>
<div class="dynheader">
Inheritance diagram for tbb::interface6::internal::basic_operation_base:</div>
<div class="dyncontent">
<div class="center">
<img src="a00021.png" usemap="#tbb::interface6::internal::basic_operation_base_map" alt=""/>
<map id="tbb::interface6::internal::basic_operation_base_map" name="tbb::interface6::internal::basic_operation_base_map">
<area href="a00013.html" alt="tbb::interface6::aggregator_operation" shape="rect" coords="0,0,289,24"/>
<area href="a00020.html" alt="tbb::interface6::internal::basic_operation&lt; Body &gt;" shape="rect" coords="0,112,289,136"/>
</map>
</div></div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="friends"></a>
Friends</h2></td></tr>
<tr class="memitem:afe66260da7455bea5b701a3d8a537ba7"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="afe66260da7455bea5b701a3d8a537ba7"></a>
class&#160;</td><td class="memItemRight" valign="bottom"><b>basic_handler</b></td></tr>
<tr class="separator:afe66260da7455bea5b701a3d8a537ba7"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="inherited"></a>
Additional Inherited Members</h2></td></tr>
<tr class="inherit_header pub_types_a00013"><td colspan="2" onclick="javascript:toggleInherit('pub_types_a00013')"><img src="closed.png" alt="-"/>&#160;Public Types inherited from <a class="el" href="a00013.html">tbb::interface6::aggregator_operation</a></td></tr>
<tr class="memitem:a855dc55cb1823ed4845f4ed6b0a87700 inherit pub_types_a00013"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><b>aggregator_operation_status</b> { <b>agg_waiting</b> =0,
<b>agg_finished</b>
}</td></tr>
<tr class="separator:a855dc55cb1823ed4845f4ed6b0a87700 inherit pub_types_a00013"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_methods_a00013"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_a00013')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="a00013.html">tbb::interface6::aggregator_operation</a></td></tr>
<tr class="memitem:adc0e032aa604f1da85ffc7ec269b157f inherit pub_methods_a00013"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="adc0e032aa604f1da85ffc7ec269b157f"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00013.html#adc0e032aa604f1da85ffc7ec269b157f">start</a> ()</td></tr>
<tr class="memdesc:adc0e032aa604f1da85ffc7ec269b157f inherit pub_methods_a00013"><td class="mdescLeft">&#160;</td><td class="mdescRight">Call start before handling this operation. <br/></td></tr>
<tr class="separator:adc0e032aa604f1da85ffc7ec269b157f inherit pub_methods_a00013"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac7edadfe74f475783f3b429904e7010a inherit pub_methods_a00013"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00013.html#ac7edadfe74f475783f3b429904e7010a">finish</a> ()</td></tr>
<tr class="memdesc:ac7edadfe74f475783f3b429904e7010a inherit pub_methods_a00013"><td class="mdescLeft">&#160;</td><td class="mdescRight">Call finish when done handling this operation. <a href="#ac7edadfe74f475783f3b429904e7010a">More...</a><br/></td></tr>
<tr class="separator:ac7edadfe74f475783f3b429904e7010a inherit pub_methods_a00013"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acbce3d13545770501b54df153bf1e690 inherit pub_methods_a00013"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="acbce3d13545770501b54df153bf1e690"></a>
<a class="el" href="a00013.html">aggregator_operation</a> *&#160;</td><td class="memItemRight" valign="bottom"><b>next</b> ()</td></tr>
<tr class="separator:acbce3d13545770501b54df153bf1e690 inherit pub_methods_a00013"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a03cf9fad0ca21da61b83325a50e17d0b inherit pub_methods_a00013"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a03cf9fad0ca21da61b83325a50e17d0b"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>set_next</b> (<a class="el" href="a00013.html">aggregator_operation</a> *n)</td></tr>
<tr class="separator:a03cf9fad0ca21da61b83325a50e17d0b inherit pub_methods_a00013"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<hr/>The documentation for this class was generated from the following file:<ul>
<li>aggregator.h</li>
</ul>
</div><!-- contents -->
<hr>

Before

Width:  |  Height:  |  Size: 1.5 KiB

After

Width:  |  Height:  |  Size: 1.5 KiB

+264 -20
View File
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.4"/>
<title>tbb::bad_last_alloc Class Reference</title>
<title>tbb::blocked_range&lt; Value &gt; Class Template Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -33,41 +33,285 @@
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="a00237.html">tbb</a></li><li class="navelem"><a class="el" href="a00022.html">bad_last_alloc</a></li> </ul>
<li class="navelem"><a class="el" href="a00234.html">tbb</a></li><li class="navelem"><a class="el" href="a00022.html">blocked_range</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#pub-types">Public Types</a> &#124;
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="a00318.html">List of all members</a> </div>
<a href="#pub-static-attribs">Static Public Attributes</a> &#124;
<a href="#friends">Friends</a> &#124;
<a href="a00265.html">List of all members</a> </div>
<div class="headertitle">
<div class="title">tbb::bad_last_alloc Class Reference</div> </div>
<div class="title">tbb::blocked_range&lt; Value &gt; Class Template Reference<div class="ingroups"><a class="el" href="a00253.html">Algorithms</a></div></div> </div>
</div><!--header-->
<div class="contents">
<p>Exception for concurrent containers.
<p>A range over which to iterate.
<a href="a00022.html#details">More...</a></p>
<p><code>#include &lt;tbb_exception.h&gt;</code></p>
<div class="dynheader">
Inheritance diagram for tbb::bad_last_alloc:</div>
<div class="dyncontent">
<div class="center">
<img src="a00022.png" usemap="#tbb::bad_last_alloc_map" alt=""/>
<map id="tbb::bad_last_alloc_map" name="tbb::bad_last_alloc_map">
</map>
</div></div>
<p><code>#include &lt;blocked_range.h&gt;</code></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-types"></a>
Public Types</h2></td></tr>
<tr class="memitem:ad56ca70af46acf8870b4970d8a809791"><td class="memItemLeft" align="right" valign="top">typedef Value&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00022.html#ad56ca70af46acf8870b4970d8a809791">const_iterator</a></td></tr>
<tr class="memdesc:ad56ca70af46acf8870b4970d8a809791"><td class="mdescLeft">&#160;</td><td class="mdescRight">Type of a value. <a href="#ad56ca70af46acf8870b4970d8a809791">More...</a><br/></td></tr>
<tr class="separator:ad56ca70af46acf8870b4970d8a809791"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a89b300cecd9d617e4ee801c786756e55"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a89b300cecd9d617e4ee801c786756e55"></a>
typedef std::size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00022.html#a89b300cecd9d617e4ee801c786756e55">size_type</a></td></tr>
<tr class="memdesc:a89b300cecd9d617e4ee801c786756e55"><td class="mdescLeft">&#160;</td><td class="mdescRight">Type for size of a range. <br/></td></tr>
<tr class="separator:a89b300cecd9d617e4ee801c786756e55"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:ad26fe8a6bd71e097ab339f3d3895d07c"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ad26fe8a6bd71e097ab339f3d3895d07c"></a>
const char *&#160;</td><td class="memItemRight" valign="bottom"><b>what</b> () const __TBB_override throw ()</td></tr>
<tr class="separator:ad26fe8a6bd71e097ab339f3d3895d07c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aad176ab2cbd0bd73c3c2065761af3ccc"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00022.html#aad176ab2cbd0bd73c3c2065761af3ccc">blocked_range</a> ()</td></tr>
<tr class="memdesc:aad176ab2cbd0bd73c3c2065761af3ccc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Construct range with default-constructed values for begin and end. <a href="#aad176ab2cbd0bd73c3c2065761af3ccc">More...</a><br/></td></tr>
<tr class="separator:aad176ab2cbd0bd73c3c2065761af3ccc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a49a97576004711b7159170fcaf488e4e"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a49a97576004711b7159170fcaf488e4e"></a>
&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00022.html#a49a97576004711b7159170fcaf488e4e">blocked_range</a> (Value begin_, Value end_, <a class="el" href="a00022.html#a89b300cecd9d617e4ee801c786756e55">size_type</a> grainsize_=1)</td></tr>
<tr class="memdesc:a49a97576004711b7159170fcaf488e4e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Construct range over half-open interval [begin,end), with the given grainsize. <br/></td></tr>
<tr class="separator:a49a97576004711b7159170fcaf488e4e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae225fa10454b0fa33533dfb56f5060a2"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ae225fa10454b0fa33533dfb56f5060a2"></a>
<a class="el" href="a00022.html#ad56ca70af46acf8870b4970d8a809791">const_iterator</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00022.html#ae225fa10454b0fa33533dfb56f5060a2">begin</a> () const </td></tr>
<tr class="memdesc:ae225fa10454b0fa33533dfb56f5060a2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Beginning of range. <br/></td></tr>
<tr class="separator:ae225fa10454b0fa33533dfb56f5060a2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a99f829599d3e51b181a30b4cd57b06c6"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a99f829599d3e51b181a30b4cd57b06c6"></a>
<a class="el" href="a00022.html#ad56ca70af46acf8870b4970d8a809791">const_iterator</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00022.html#a99f829599d3e51b181a30b4cd57b06c6">end</a> () const </td></tr>
<tr class="memdesc:a99f829599d3e51b181a30b4cd57b06c6"><td class="mdescLeft">&#160;</td><td class="mdescRight">One past last value in range. <br/></td></tr>
<tr class="separator:a99f829599d3e51b181a30b4cd57b06c6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a347ef8caa40edca3b7f475f182281140"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00022.html#a89b300cecd9d617e4ee801c786756e55">size_type</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00022.html#a347ef8caa40edca3b7f475f182281140">size</a> () const </td></tr>
<tr class="memdesc:a347ef8caa40edca3b7f475f182281140"><td class="mdescLeft">&#160;</td><td class="mdescRight">Size of the range. <a href="#a347ef8caa40edca3b7f475f182281140">More...</a><br/></td></tr>
<tr class="separator:a347ef8caa40edca3b7f475f182281140"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab408f3cf90c85fa9203df5641a2f9bb1"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ab408f3cf90c85fa9203df5641a2f9bb1"></a>
<a class="el" href="a00022.html#a89b300cecd9d617e4ee801c786756e55">size_type</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00022.html#ab408f3cf90c85fa9203df5641a2f9bb1">grainsize</a> () const </td></tr>
<tr class="memdesc:ab408f3cf90c85fa9203df5641a2f9bb1"><td class="mdescLeft">&#160;</td><td class="mdescRight">The grain size for this range. <br/></td></tr>
<tr class="separator:ab408f3cf90c85fa9203df5641a2f9bb1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a59dec03416b3fefbf69600f798177710"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a59dec03416b3fefbf69600f798177710"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00022.html#a59dec03416b3fefbf69600f798177710">empty</a> () const </td></tr>
<tr class="memdesc:a59dec03416b3fefbf69600f798177710"><td class="mdescLeft">&#160;</td><td class="mdescRight">True if range is empty. <br/></td></tr>
<tr class="separator:a59dec03416b3fefbf69600f798177710"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad90ad1db0d4d9a301ef1c9e17712e8a0"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00022.html#ad90ad1db0d4d9a301ef1c9e17712e8a0">is_divisible</a> () const </td></tr>
<tr class="memdesc:ad90ad1db0d4d9a301ef1c9e17712e8a0"><td class="mdescLeft">&#160;</td><td class="mdescRight">True if range is divisible. <a href="#ad90ad1db0d4d9a301ef1c9e17712e8a0">More...</a><br/></td></tr>
<tr class="separator:ad90ad1db0d4d9a301ef1c9e17712e8a0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a75cae12286f4d5492970ea630a9783b9"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00022.html#a75cae12286f4d5492970ea630a9783b9">blocked_range</a> (<a class="el" href="a00022.html">blocked_range</a> &amp;r, split)</td></tr>
<tr class="memdesc:a75cae12286f4d5492970ea630a9783b9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Split range. <a href="#a75cae12286f4d5492970ea630a9783b9">More...</a><br/></td></tr>
<tr class="separator:a75cae12286f4d5492970ea630a9783b9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1f53fbb10b8b04a515f382704b00ed14"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00022.html#a1f53fbb10b8b04a515f382704b00ed14">blocked_range</a> (<a class="el" href="a00022.html">blocked_range</a> &amp;r, proportional_split &amp;proportion)</td></tr>
<tr class="memdesc:a1f53fbb10b8b04a515f382704b00ed14"><td class="mdescLeft">&#160;</td><td class="mdescRight">Split range. <a href="#a1f53fbb10b8b04a515f382704b00ed14">More...</a><br/></td></tr>
<tr class="separator:a1f53fbb10b8b04a515f382704b00ed14"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-static-attribs"></a>
Static Public Attributes</h2></td></tr>
<tr class="memitem:ae2b0210e2468092b408123adeb54b01c"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ae2b0210e2468092b408123adeb54b01c"></a>
static const bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00022.html#ae2b0210e2468092b408123adeb54b01c">is_splittable_in_proportion</a> = true</td></tr>
<tr class="memdesc:ae2b0210e2468092b408123adeb54b01c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Static field to support proportional split. <br/></td></tr>
<tr class="separator:ae2b0210e2468092b408123adeb54b01c"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="friends"></a>
Friends</h2></td></tr>
<tr class="memitem:aa504612e6c1ba07b8846bcd323847680"><td class="memTemplParams" colspan="2"><a class="anchor" id="aa504612e6c1ba07b8846bcd323847680"></a>
template&lt;typename RowValue , typename ColValue &gt; </td></tr>
<tr class="memitem:aa504612e6c1ba07b8846bcd323847680"><td class="memTemplItemLeft" align="right" valign="top">class&#160;</td><td class="memTemplItemRight" valign="bottom"><b>blocked_range2d</b></td></tr>
<tr class="separator:aa504612e6c1ba07b8846bcd323847680"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a83f67fe3b421dbaeee9040aae730d5e8"><td class="memTemplParams" colspan="2"><a class="anchor" id="a83f67fe3b421dbaeee9040aae730d5e8"></a>
template&lt;typename RowValue , typename ColValue , typename PageValue &gt; </td></tr>
<tr class="memitem:a83f67fe3b421dbaeee9040aae730d5e8"><td class="memTemplItemLeft" align="right" valign="top">class&#160;</td><td class="memTemplItemRight" valign="bottom"><b>blocked_range3d</b></td></tr>
<tr class="separator:a83f67fe3b421dbaeee9040aae730d5e8"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Exception for concurrent containers. </p>
</div><hr/>The documentation for this class was generated from the following file:<ul>
<li>tbb_exception.h</li>
<div class="textblock"><h3>template&lt;typename Value&gt;<br/>
class tbb::blocked_range&lt; Value &gt;</h3>
<p>A range over which to iterate. </p>
</div><h2 class="groupheader">Member Typedef Documentation</h2>
<a class="anchor" id="ad56ca70af46acf8870b4970d8a809791"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Value&gt; </div>
<table class="memname">
<tr>
<td class="memname">typedef Value <a class="el" href="a00022.html">tbb::blocked_range</a>&lt; Value &gt;::<a class="el" href="a00022.html#ad56ca70af46acf8870b4970d8a809791">const_iterator</a></td>
</tr>
</table>
</div><div class="memdoc">
<p>Type of a value. </p>
<p>Called a const_iterator for sake of algorithms that need to treat a <a class="el" href="a00022.html" title="A range over which to iterate. ">blocked_range</a> as an STL container. </p>
</div>
</div>
<h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a class="anchor" id="aad176ab2cbd0bd73c3c2065761af3ccc"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Value&gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="a00022.html">tbb::blocked_range</a>&lt; Value &gt;::<a class="el" href="a00022.html">blocked_range</a> </td>
<td>(</td>
<td class="paramname">)</td><td></td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Construct range with default-constructed values for begin and end. </p>
<p>Requires that Value have a default constructor. </p>
</div>
</div>
<a class="anchor" id="a75cae12286f4d5492970ea630a9783b9"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Value&gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="a00022.html">tbb::blocked_range</a>&lt; Value &gt;::<a class="el" href="a00022.html">blocked_range</a> </td>
<td>(</td>
<td class="paramtype"><a class="el" href="a00022.html">blocked_range</a>&lt; Value &gt; &amp;&#160;</td>
<td class="paramname"><em>r</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">split&#160;</td>
<td class="paramname">&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Split range. </p>
<p>The new Range *this has the second part, the old range r has the first part. Unspecified if <a class="el" href="a00022.html#a99f829599d3e51b181a30b4cd57b06c6" title="One past last value in range. ">end()</a>&lt;<a class="el" href="a00022.html#ae225fa10454b0fa33533dfb56f5060a2" title="Beginning of range. ">begin()</a> or !is_divisible(). </p>
</div>
</div>
<a class="anchor" id="a1f53fbb10b8b04a515f382704b00ed14"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Value&gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="a00022.html">tbb::blocked_range</a>&lt; Value &gt;::<a class="el" href="a00022.html">blocked_range</a> </td>
<td>(</td>
<td class="paramtype"><a class="el" href="a00022.html">blocked_range</a>&lt; Value &gt; &amp;&#160;</td>
<td class="paramname"><em>r</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">proportional_split &amp;&#160;</td>
<td class="paramname"><em>proportion</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Split range. </p>
<p>The new Range *this has the second part split according to specified proportion, the old range r has the first part. Unspecified if <a class="el" href="a00022.html#a99f829599d3e51b181a30b4cd57b06c6" title="One past last value in range. ">end()</a>&lt;<a class="el" href="a00022.html#ae225fa10454b0fa33533dfb56f5060a2" title="Beginning of range. ">begin()</a> or !is_divisible(). </p>
</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a class="anchor" id="ad90ad1db0d4d9a301ef1c9e17712e8a0"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Value&gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">bool <a class="el" href="a00022.html">tbb::blocked_range</a>&lt; Value &gt;::is_divisible </td>
<td>(</td>
<td class="paramname">)</td><td></td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>True if range is divisible. </p>
<p>Unspecified if <a class="el" href="a00022.html#a99f829599d3e51b181a30b4cd57b06c6" title="One past last value in range. ">end()</a>&lt;<a class="el" href="a00022.html#ae225fa10454b0fa33533dfb56f5060a2" title="Beginning of range. ">begin()</a>. </p>
<p>Referenced by <a class="el" href="a00023.html#ac84c6cc2ff8b0974ffa719fed804f586">tbb::blocked_range2d&lt; RowValue, ColValue &gt;::is_divisible()</a>, and <a class="el" href="a00024.html#a0fce6bcae6269c37623c3a2cdbb8bcf0">tbb::blocked_range3d&lt; PageValue, RowValue, ColValue &gt;::is_divisible()</a>.</p>
</div>
</div>
<a class="anchor" id="a347ef8caa40edca3b7f475f182281140"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Value&gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="a00022.html#a89b300cecd9d617e4ee801c786756e55">size_type</a> <a class="el" href="a00022.html">tbb::blocked_range</a>&lt; Value &gt;::size </td>
<td>(</td>
<td class="paramname">)</td><td></td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Size of the range. </p>
<p>Unspecified if <a class="el" href="a00022.html#a99f829599d3e51b181a30b4cd57b06c6" title="One past last value in range. ">end()</a>&lt;<a class="el" href="a00022.html#ae225fa10454b0fa33533dfb56f5060a2" title="Beginning of range. ">begin()</a>. </p>
<p>Referenced by <a class="el" href="a00022.html#ad90ad1db0d4d9a301ef1c9e17712e8a0">tbb::blocked_range&lt; I &gt;::is_divisible()</a>.</p>
</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
<li>blocked_range.h</li>
</ul>
</div><!-- contents -->
<hr>
+67 -9
View File
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.4"/>
<title>tbb::interface6::internal::basic_handler Class Reference</title>
<title>tbb::blocked_range2d&lt; RowValue, ColValue &gt; Class Template Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -33,26 +33,84 @@
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="a00237.html">tbb</a></li><li class="navelem"><b>interface6</b></li><li class="navelem"><b>internal</b></li><li class="navelem"><a class="el" href="a00023.html">basic_handler</a></li> </ul>
<li class="navelem"><a class="el" href="a00234.html">tbb</a></li><li class="navelem"><a class="el" href="a00023.html">blocked_range2d</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#pub-types">Public Types</a> &#124;
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="a00398.html">List of all members</a> </div>
<a href="#pub-static-attribs">Static Public Attributes</a> &#124;
<a href="a00266.html">List of all members</a> </div>
<div class="headertitle">
<div class="title">tbb::interface6::internal::basic_handler Class Reference</div> </div>
<div class="title">tbb::blocked_range2d&lt; RowValue, ColValue &gt; Class Template Reference<div class="ingroups"><a class="el" href="a00253.html">Algorithms</a></div></div> </div>
</div><!--header-->
<div class="contents">
<p>A 2-dimensional range that models the Range concept.
<a href="a00023.html#details">More...</a></p>
<p><code>#include &lt;blocked_range2d.h&gt;</code></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-types"></a>
Public Types</h2></td></tr>
<tr class="memitem:ada609b296a9af0591cc34761b8538100"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ada609b296a9af0591cc34761b8538100"></a>
typedef <a class="el" href="a00022.html">blocked_range</a>&lt; RowValue &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00023.html#ada609b296a9af0591cc34761b8538100">row_range_type</a></td></tr>
<tr class="memdesc:ada609b296a9af0591cc34761b8538100"><td class="mdescLeft">&#160;</td><td class="mdescRight">Type for size of an iteration range. <br/></td></tr>
<tr class="separator:ada609b296a9af0591cc34761b8538100"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9820ed2f2560633d18bf35cece8b6493"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a9820ed2f2560633d18bf35cece8b6493"></a>
typedef <a class="el" href="a00022.html">blocked_range</a>&lt; ColValue &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>col_range_type</b></td></tr>
<tr class="separator:a9820ed2f2560633d18bf35cece8b6493"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:afb0dec67968e9abdabb5a0e3ec8064a4"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="afb0dec67968e9abdabb5a0e3ec8064a4"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>operator()</b> (<a class="el" href="a00013.html">aggregator_operation</a> *op_list) const </td></tr>
<tr class="separator:afb0dec67968e9abdabb5a0e3ec8064a4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5aa4e2c389c4b833937fcad66efe2b6a"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a5aa4e2c389c4b833937fcad66efe2b6a"></a>
&#160;</td><td class="memItemRight" valign="bottom"><b>blocked_range2d</b> (RowValue row_begin, RowValue row_end, typename <a class="el" href="a00022.html#a89b300cecd9d617e4ee801c786756e55">row_range_type::size_type</a> row_grainsize, ColValue col_begin, ColValue col_end, typename <a class="el" href="a00022.html#a89b300cecd9d617e4ee801c786756e55">col_range_type::size_type</a> col_grainsize)</td></tr>
<tr class="separator:a5aa4e2c389c4b833937fcad66efe2b6a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aaf45f93921022437fdcb500585768a5e"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aaf45f93921022437fdcb500585768a5e"></a>
&#160;</td><td class="memItemRight" valign="bottom"><b>blocked_range2d</b> (RowValue row_begin, RowValue row_end, ColValue col_begin, ColValue col_end)</td></tr>
<tr class="separator:aaf45f93921022437fdcb500585768a5e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5805972c8c41b2681d286f9c9771cf52"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a5805972c8c41b2681d286f9c9771cf52"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00023.html#a5805972c8c41b2681d286f9c9771cf52">empty</a> () const </td></tr>
<tr class="memdesc:a5805972c8c41b2681d286f9c9771cf52"><td class="mdescLeft">&#160;</td><td class="mdescRight">True if range is empty. <br/></td></tr>
<tr class="separator:a5805972c8c41b2681d286f9c9771cf52"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac84c6cc2ff8b0974ffa719fed804f586"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ac84c6cc2ff8b0974ffa719fed804f586"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00023.html#ac84c6cc2ff8b0974ffa719fed804f586">is_divisible</a> () const </td></tr>
<tr class="memdesc:ac84c6cc2ff8b0974ffa719fed804f586"><td class="mdescLeft">&#160;</td><td class="mdescRight">True if range is divisible into two pieces. <br/></td></tr>
<tr class="separator:ac84c6cc2ff8b0974ffa719fed804f586"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af0e752d01b661b01c9a473473bea43fc"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="af0e752d01b661b01c9a473473bea43fc"></a>
&#160;</td><td class="memItemRight" valign="bottom"><b>blocked_range2d</b> (<a class="el" href="a00023.html">blocked_range2d</a> &amp;r, split)</td></tr>
<tr class="separator:af0e752d01b661b01c9a473473bea43fc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9ebbf0fa580c0553ec2e3c5997b9799c"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a9ebbf0fa580c0553ec2e3c5997b9799c"></a>
&#160;</td><td class="memItemRight" valign="bottom"><b>blocked_range2d</b> (<a class="el" href="a00023.html">blocked_range2d</a> &amp;r, proportional_split &amp;proportion)</td></tr>
<tr class="separator:a9ebbf0fa580c0553ec2e3c5997b9799c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a06ae436bae2c8be5a95212ea410791db"><td class="memTemplParams" colspan="2"><a class="anchor" id="a06ae436bae2c8be5a95212ea410791db"></a>
template&lt;typename Split &gt; </td></tr>
<tr class="memitem:a06ae436bae2c8be5a95212ea410791db"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><b>do_split</b> (<a class="el" href="a00023.html">blocked_range2d</a> &amp;r, Split &amp;split_obj)</td></tr>
<tr class="separator:a06ae436bae2c8be5a95212ea410791db"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4f7299e74c40df57dee2433c07ce65ae"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a4f7299e74c40df57dee2433c07ce65ae"></a>
const <a class="el" href="a00023.html#ada609b296a9af0591cc34761b8538100">row_range_type</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00023.html#a4f7299e74c40df57dee2433c07ce65ae">rows</a> () const </td></tr>
<tr class="memdesc:a4f7299e74c40df57dee2433c07ce65ae"><td class="mdescLeft">&#160;</td><td class="mdescRight">The rows of the iteration space. <br/></td></tr>
<tr class="separator:a4f7299e74c40df57dee2433c07ce65ae"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af3bccfaf90126b285491096f78ca9473"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="af3bccfaf90126b285491096f78ca9473"></a>
const <a class="el" href="a00022.html">col_range_type</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00023.html#af3bccfaf90126b285491096f78ca9473">cols</a> () const </td></tr>
<tr class="memdesc:af3bccfaf90126b285491096f78ca9473"><td class="mdescLeft">&#160;</td><td class="mdescRight">The columns of the iteration space. <br/></td></tr>
<tr class="separator:af3bccfaf90126b285491096f78ca9473"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-static-attribs"></a>
Static Public Attributes</h2></td></tr>
<tr class="memitem:aa0519760654368000f7ebc87d9bfe898"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aa0519760654368000f7ebc87d9bfe898"></a>
static const bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00023.html#aa0519760654368000f7ebc87d9bfe898">is_splittable_in_proportion</a> = true</td></tr>
<tr class="memdesc:aa0519760654368000f7ebc87d9bfe898"><td class="mdescLeft">&#160;</td><td class="mdescRight">Static field to support proportional split. <br/></td></tr>
<tr class="separator:aa0519760654368000f7ebc87d9bfe898"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<hr/>The documentation for this class was generated from the following file:<ul>
<li>aggregator.h</li>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><h3>template&lt;typename RowValue, typename ColValue = RowValue&gt;<br/>
class tbb::blocked_range2d&lt; RowValue, ColValue &gt;</h3>
<p>A 2-dimensional range that models the Range concept. </p>
</div><hr/>The documentation for this class was generated from the following file:<ul>
<li>blocked_range2d.h</li>
</ul>
</div><!-- contents -->
<hr>
+73 -26
View File
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.4"/>
<title>tbb::interface6::internal::basic_operation&lt; Body &gt; Class Template Reference</title>
<title>tbb::blocked_range3d&lt; PageValue, RowValue, ColValue &gt; Class Template Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -33,44 +33,91 @@
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="a00237.html">tbb</a></li><li class="navelem"><b>interface6</b></li><li class="navelem"><b>internal</b></li><li class="navelem"><a class="el" href="a00024.html">basic_operation</a></li> </ul>
<li class="navelem"><a class="el" href="a00234.html">tbb</a></li><li class="navelem"><a class="el" href="a00024.html">blocked_range3d</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#pub-types">Public Types</a> &#124;
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="a00397.html">List of all members</a> </div>
<a href="#pub-static-attribs">Static Public Attributes</a> &#124;
<a href="a00267.html">List of all members</a> </div>
<div class="headertitle">
<div class="title">tbb::interface6::internal::basic_operation&lt; Body &gt; Class Template Reference</div> </div>
<div class="title">tbb::blocked_range3d&lt; PageValue, RowValue, ColValue &gt; Class Template Reference<div class="ingroups"><a class="el" href="a00253.html">Algorithms</a></div></div> </div>
</div><!--header-->
<div class="contents">
<div class="dynheader">
Inheritance diagram for tbb::interface6::internal::basic_operation&lt; Body &gt;:</div>
<div class="dyncontent">
<div class="center">
<img src="a00024.png" usemap="#tbb::interface6::internal::basic_operation&lt; Body &gt;_map" alt=""/>
<map id="tbb::interface6::internal::basic_operation&lt; Body &gt;_map" name="tbb::interface6::internal::basic_operation&lt; Body &gt;_map">
<area href="a00025.html" alt="tbb::interface6::internal::basic_operation_base" shape="rect" coords="0,56,289,80"/>
<area href="a00013.html" alt="tbb::interface6::aggregator_operation" shape="rect" coords="0,0,289,24"/>
</map>
</div></div>
<p>A 3-dimensional range that models the Range concept.
<a href="a00024.html#details">More...</a></p>
<p><code>#include &lt;blocked_range3d.h&gt;</code></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-types"></a>
Public Types</h2></td></tr>
<tr class="memitem:a8cdc866378a12ce198da870d0439676f"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a8cdc866378a12ce198da870d0439676f"></a>
typedef <a class="el" href="a00022.html">blocked_range</a>&lt; PageValue &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00024.html#a8cdc866378a12ce198da870d0439676f">page_range_type</a></td></tr>
<tr class="memdesc:a8cdc866378a12ce198da870d0439676f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Type for size of an iteration range. <br/></td></tr>
<tr class="separator:a8cdc866378a12ce198da870d0439676f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abe15e1e06f47809a477272f733a8abf8"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="abe15e1e06f47809a477272f733a8abf8"></a>
typedef <a class="el" href="a00022.html">blocked_range</a>&lt; RowValue &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>row_range_type</b></td></tr>
<tr class="separator:abe15e1e06f47809a477272f733a8abf8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab3bffd5ffb14ad9897b1a9bf22980768"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ab3bffd5ffb14ad9897b1a9bf22980768"></a>
typedef <a class="el" href="a00022.html">blocked_range</a>&lt; ColValue &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>col_range_type</b></td></tr>
<tr class="separator:ab3bffd5ffb14ad9897b1a9bf22980768"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:adf48b2339f7de2f002c24c8951a03057"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="adf48b2339f7de2f002c24c8951a03057"></a>
&#160;</td><td class="memItemRight" valign="bottom"><b>basic_operation</b> (const Body &amp;b)</td></tr>
<tr class="separator:adf48b2339f7de2f002c24c8951a03057"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa5159e07e2d601319eece538edb8add0"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aa5159e07e2d601319eece538edb8add0"></a>
&#160;</td><td class="memItemRight" valign="bottom"><b>blocked_range3d</b> (PageValue page_begin, PageValue page_end, RowValue row_begin, RowValue row_end, ColValue col_begin, ColValue col_end)</td></tr>
<tr class="separator:aa5159e07e2d601319eece538edb8add0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a671a22033260fa02734c5a1113dcf1ac"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a671a22033260fa02734c5a1113dcf1ac"></a>
&#160;</td><td class="memItemRight" valign="bottom"><b>blocked_range3d</b> (PageValue page_begin, PageValue page_end, typename <a class="el" href="a00022.html#a89b300cecd9d617e4ee801c786756e55">page_range_type::size_type</a> page_grainsize, RowValue row_begin, RowValue row_end, typename <a class="el" href="a00022.html#a89b300cecd9d617e4ee801c786756e55">row_range_type::size_type</a> row_grainsize, ColValue col_begin, ColValue col_end, typename <a class="el" href="a00022.html#a89b300cecd9d617e4ee801c786756e55">col_range_type::size_type</a> col_grainsize)</td></tr>
<tr class="separator:a671a22033260fa02734c5a1113dcf1ac"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aea992e0cd3d105f964a633b1a0a1a05f"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aea992e0cd3d105f964a633b1a0a1a05f"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00024.html#aea992e0cd3d105f964a633b1a0a1a05f">empty</a> () const </td></tr>
<tr class="memdesc:aea992e0cd3d105f964a633b1a0a1a05f"><td class="mdescLeft">&#160;</td><td class="mdescRight">True if range is empty. <br/></td></tr>
<tr class="separator:aea992e0cd3d105f964a633b1a0a1a05f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0fce6bcae6269c37623c3a2cdbb8bcf0"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a0fce6bcae6269c37623c3a2cdbb8bcf0"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00024.html#a0fce6bcae6269c37623c3a2cdbb8bcf0">is_divisible</a> () const </td></tr>
<tr class="memdesc:a0fce6bcae6269c37623c3a2cdbb8bcf0"><td class="mdescLeft">&#160;</td><td class="mdescRight">True if range is divisible into two pieces. <br/></td></tr>
<tr class="separator:a0fce6bcae6269c37623c3a2cdbb8bcf0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a788ebedfb4a2eaa4bee11c2c967e0768"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a788ebedfb4a2eaa4bee11c2c967e0768"></a>
&#160;</td><td class="memItemRight" valign="bottom"><b>blocked_range3d</b> (<a class="el" href="a00024.html">blocked_range3d</a> &amp;r, split)</td></tr>
<tr class="separator:a788ebedfb4a2eaa4bee11c2c967e0768"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0e5fdb794ec7bfc5f21a59ddd466d8e0"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a0e5fdb794ec7bfc5f21a59ddd466d8e0"></a>
&#160;</td><td class="memItemRight" valign="bottom"><b>blocked_range3d</b> (<a class="el" href="a00024.html">blocked_range3d</a> &amp;r, proportional_split &amp;proportion)</td></tr>
<tr class="separator:a0e5fdb794ec7bfc5f21a59ddd466d8e0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac83b305fb6dc5da50a4f6c4fdb551654"><td class="memTemplParams" colspan="2"><a class="anchor" id="ac83b305fb6dc5da50a4f6c4fdb551654"></a>
template&lt;typename Split &gt; </td></tr>
<tr class="memitem:ac83b305fb6dc5da50a4f6c4fdb551654"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><b>do_split</b> (<a class="el" href="a00024.html">blocked_range3d</a> &amp;r, Split &amp;split_obj)</td></tr>
<tr class="separator:ac83b305fb6dc5da50a4f6c4fdb551654"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5b794fd53ba92106aeafa4eed85731d4"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a5b794fd53ba92106aeafa4eed85731d4"></a>
const <a class="el" href="a00024.html#a8cdc866378a12ce198da870d0439676f">page_range_type</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00024.html#a5b794fd53ba92106aeafa4eed85731d4">pages</a> () const </td></tr>
<tr class="memdesc:a5b794fd53ba92106aeafa4eed85731d4"><td class="mdescLeft">&#160;</td><td class="mdescRight">The pages of the iteration space. <br/></td></tr>
<tr class="separator:a5b794fd53ba92106aeafa4eed85731d4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aeac1def585af81467573f30ebb42cb4f"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aeac1def585af81467573f30ebb42cb4f"></a>
const <a class="el" href="a00022.html">row_range_type</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00024.html#aeac1def585af81467573f30ebb42cb4f">rows</a> () const </td></tr>
<tr class="memdesc:aeac1def585af81467573f30ebb42cb4f"><td class="mdescLeft">&#160;</td><td class="mdescRight">The rows of the iteration space. <br/></td></tr>
<tr class="separator:aeac1def585af81467573f30ebb42cb4f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a308d7089a1d53ff26770a7040ed817cd"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a308d7089a1d53ff26770a7040ed817cd"></a>
const <a class="el" href="a00022.html">col_range_type</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00024.html#a308d7089a1d53ff26770a7040ed817cd">cols</a> () const </td></tr>
<tr class="memdesc:a308d7089a1d53ff26770a7040ed817cd"><td class="mdescLeft">&#160;</td><td class="mdescRight">The columns of the iteration space. <br/></td></tr>
<tr class="separator:a308d7089a1d53ff26770a7040ed817cd"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="inherited"></a>
Additional Inherited Members</h2></td></tr>
<tr class="inherit_header pub_types_a00013"><td colspan="2" onclick="javascript:toggleInherit('pub_types_a00013')"><img src="closed.png" alt="-"/>&#160;Public Types inherited from <a class="el" href="a00013.html">tbb::interface6::aggregator_operation</a></td></tr>
<tr class="memitem:a855dc55cb1823ed4845f4ed6b0a87700 inherit pub_types_a00013"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><b>aggregator_operation_status</b> { <b>agg_waiting</b> =0,
<b>agg_finished</b>
}</td></tr>
<tr class="separator:a855dc55cb1823ed4845f4ed6b0a87700 inherit pub_types_a00013"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-static-attribs"></a>
Static Public Attributes</h2></td></tr>
<tr class="memitem:a5940c1bd6ba0e8184ef83dea0ae56884"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a5940c1bd6ba0e8184ef83dea0ae56884"></a>
static const bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00024.html#a5940c1bd6ba0e8184ef83dea0ae56884">is_splittable_in_proportion</a> = true</td></tr>
<tr class="memdesc:a5940c1bd6ba0e8184ef83dea0ae56884"><td class="mdescLeft">&#160;</td><td class="mdescRight">Static field to support proportional split. <br/></td></tr>
<tr class="separator:a5940c1bd6ba0e8184ef83dea0ae56884"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<hr/>The documentation for this class was generated from the following file:<ul>
<li>aggregator.h</li>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><h3>template&lt;typename PageValue, typename RowValue = PageValue, typename ColValue = RowValue&gt;<br/>
class tbb::blocked_range3d&lt; PageValue, RowValue, ColValue &gt;</h3>
<p>A 3-dimensional range that models the Range concept. </p>
</div><hr/>The documentation for this class was generated from the following file:<ul>
<li>blocked_range3d.h</li>
</ul>
</div><!-- contents -->
<hr>
Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.2 KiB

+4 -46
View File
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.4"/>
<title>tbb::interface6::internal::basic_operation_base Class Reference</title>
<title>tbb::flow::interface9::internal::broadcast_cache&lt; T, M &gt; Class Template Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -33,58 +33,16 @@
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="a00237.html">tbb</a></li><li class="navelem"><b>interface6</b></li><li class="navelem"><b>internal</b></li><li class="navelem"><a class="el" href="a00025.html">basic_operation_base</a></li> </ul>
<li class="navelem"><a class="el" href="a00234.html">tbb</a></li><li class="navelem"><b>flow</b></li><li class="navelem"><b>interface9</b></li><li class="navelem"><b>internal</b></li><li class="navelem"><a class="el" href="a00025.html">broadcast_cache</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#friends">Friends</a> &#124;
<a href="a00396.html">List of all members</a> </div>
<div class="headertitle">
<div class="title">tbb::interface6::internal::basic_operation_base Class Reference<span class="mlabels"><span class="mlabel">abstract</span></span></div> </div>
<div class="title">tbb::flow::interface9::internal::broadcast_cache&lt; T, M &gt; Class Template Reference</div> </div>
</div><!--header-->
<div class="contents">
<div class="dynheader">
Inheritance diagram for tbb::interface6::internal::basic_operation_base:</div>
<div class="dyncontent">
<div class="center">
<img src="a00025.png" usemap="#tbb::interface6::internal::basic_operation_base_map" alt=""/>
<map id="tbb::interface6::internal::basic_operation_base_map" name="tbb::interface6::internal::basic_operation_base_map">
<area href="a00013.html" alt="tbb::interface6::aggregator_operation" shape="rect" coords="0,0,289,24"/>
<area href="a00024.html" alt="tbb::interface6::internal::basic_operation&lt; Body &gt;" shape="rect" coords="0,112,289,136"/>
</map>
</div></div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="friends"></a>
Friends</h2></td></tr>
<tr class="memitem:afe66260da7455bea5b701a3d8a537ba7"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="afe66260da7455bea5b701a3d8a537ba7"></a>
class&#160;</td><td class="memItemRight" valign="bottom"><b>basic_handler</b></td></tr>
<tr class="separator:afe66260da7455bea5b701a3d8a537ba7"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="inherited"></a>
Additional Inherited Members</h2></td></tr>
<tr class="inherit_header pub_types_a00013"><td colspan="2" onclick="javascript:toggleInherit('pub_types_a00013')"><img src="closed.png" alt="-"/>&#160;Public Types inherited from <a class="el" href="a00013.html">tbb::interface6::aggregator_operation</a></td></tr>
<tr class="memitem:a855dc55cb1823ed4845f4ed6b0a87700 inherit pub_types_a00013"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><b>aggregator_operation_status</b> { <b>agg_waiting</b> =0,
<b>agg_finished</b>
}</td></tr>
<tr class="separator:a855dc55cb1823ed4845f4ed6b0a87700 inherit pub_types_a00013"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_methods_a00013"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_a00013')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="a00013.html">tbb::interface6::aggregator_operation</a></td></tr>
<tr class="memitem:adc0e032aa604f1da85ffc7ec269b157f inherit pub_methods_a00013"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="adc0e032aa604f1da85ffc7ec269b157f"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00013.html#adc0e032aa604f1da85ffc7ec269b157f">start</a> ()</td></tr>
<tr class="memdesc:adc0e032aa604f1da85ffc7ec269b157f inherit pub_methods_a00013"><td class="mdescLeft">&#160;</td><td class="mdescRight">Call start before handling this operation. <br/></td></tr>
<tr class="separator:adc0e032aa604f1da85ffc7ec269b157f inherit pub_methods_a00013"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac7edadfe74f475783f3b429904e7010a inherit pub_methods_a00013"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00013.html#ac7edadfe74f475783f3b429904e7010a">finish</a> ()</td></tr>
<tr class="memdesc:ac7edadfe74f475783f3b429904e7010a inherit pub_methods_a00013"><td class="mdescLeft">&#160;</td><td class="mdescRight">Call finish when done handling this operation. <a href="#ac7edadfe74f475783f3b429904e7010a">More...</a><br/></td></tr>
<tr class="separator:ac7edadfe74f475783f3b429904e7010a inherit pub_methods_a00013"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acbce3d13545770501b54df153bf1e690 inherit pub_methods_a00013"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="acbce3d13545770501b54df153bf1e690"></a>
<a class="el" href="a00013.html">aggregator_operation</a> *&#160;</td><td class="memItemRight" valign="bottom"><b>next</b> ()</td></tr>
<tr class="separator:acbce3d13545770501b54df153bf1e690 inherit pub_methods_a00013"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a03cf9fad0ca21da61b83325a50e17d0b inherit pub_methods_a00013"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a03cf9fad0ca21da61b83325a50e17d0b"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>set_next</b> (<a class="el" href="a00013.html">aggregator_operation</a> *n)</td></tr>
<tr class="separator:a03cf9fad0ca21da61b83325a50e17d0b inherit pub_methods_a00013"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<hr/>The documentation for this class was generated from the following file:<ul>
<li>aggregator.h</li>
<li><a class="el" href="a00189.html">flow_graph.h</a></li>
</ul>
</div><!-- contents -->
<hr>
+34 -263
View File
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.4"/>
<title>tbb::blocked_range&lt; Value &gt; Class Template Reference</title>
<title>tbb::interface5::concurrent_hash_map&lt; Key, T, HashCompare, A &gt;::bucket_accessor Class Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -33,285 +33,56 @@
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="a00237.html">tbb</a></li><li class="navelem"><a class="el" href="a00026.html">blocked_range</a></li> </ul>
<li class="navelem"><a class="el" href="a00234.html">tbb</a></li><li class="navelem"><b>interface5</b></li><li class="navelem"><a class="el" href="a00036.html">concurrent_hash_map</a></li><li class="navelem"><a class="el" href="a00026.html">bucket_accessor</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#pub-types">Public Types</a> &#124;
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#pub-static-attribs">Static Public Attributes</a> &#124;
<a href="#friends">Friends</a> &#124;
<a href="a00269.html">List of all members</a> </div>
<a href="a00359.html">List of all members</a> </div>
<div class="headertitle">
<div class="title">tbb::blocked_range&lt; Value &gt; Class Template Reference<div class="ingroups"><a class="el" href="a00257.html">Algorithms</a></div></div> </div>
<div class="title">tbb::interface5::concurrent_hash_map&lt; Key, T, HashCompare, A &gt;::bucket_accessor Class Reference</div> </div>
</div><!--header-->
<div class="contents">
<p>A range over which to iterate.
<p>bucket accessor is to find, rehash, acquire a lock, and access a bucket
<a href="a00026.html#details">More...</a></p>
<p><code>#include &lt;blocked_range.h&gt;</code></p>
<p><code>#include &lt;concurrent_hash_map.h&gt;</code></p>
<div class="dynheader">
Inheritance diagram for tbb::interface5::concurrent_hash_map&lt; Key, T, HashCompare, A &gt;::bucket_accessor:</div>
<div class="dyncontent">
<div class="center">
<img src="a00026.png" usemap="#tbb::interface5::concurrent_hash_map&lt; Key, T, HashCompare, A &gt;::bucket_accessor_map" alt=""/>
<map id="tbb::interface5::concurrent_hash_map&lt; Key, T, HashCompare, A &gt;::bucket_accessor_map" name="tbb::interface5::concurrent_hash_map&lt; Key, T, HashCompare, A &gt;::bucket_accessor_map">
</map>
</div></div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-types"></a>
Public Types</h2></td></tr>
<tr class="memitem:ad56ca70af46acf8870b4970d8a809791"><td class="memItemLeft" align="right" valign="top">typedef Value&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00026.html#ad56ca70af46acf8870b4970d8a809791">const_iterator</a></td></tr>
<tr class="memdesc:ad56ca70af46acf8870b4970d8a809791"><td class="mdescLeft">&#160;</td><td class="mdescRight">Type of a value. <a href="#ad56ca70af46acf8870b4970d8a809791">More...</a><br/></td></tr>
<tr class="separator:ad56ca70af46acf8870b4970d8a809791"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a89b300cecd9d617e4ee801c786756e55"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a89b300cecd9d617e4ee801c786756e55"></a>
typedef std::size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00026.html#a89b300cecd9d617e4ee801c786756e55">size_type</a></td></tr>
<tr class="memdesc:a89b300cecd9d617e4ee801c786756e55"><td class="mdescLeft">&#160;</td><td class="mdescRight">Type for size of a range. <br/></td></tr>
<tr class="separator:a89b300cecd9d617e4ee801c786756e55"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:aad176ab2cbd0bd73c3c2065761af3ccc"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00026.html#aad176ab2cbd0bd73c3c2065761af3ccc">blocked_range</a> ()</td></tr>
<tr class="memdesc:aad176ab2cbd0bd73c3c2065761af3ccc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Construct range with default-constructed values for begin, end, and grainsize. <a href="#aad176ab2cbd0bd73c3c2065761af3ccc">More...</a><br/></td></tr>
<tr class="separator:aad176ab2cbd0bd73c3c2065761af3ccc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a49a97576004711b7159170fcaf488e4e"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a49a97576004711b7159170fcaf488e4e"></a>
&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00026.html#a49a97576004711b7159170fcaf488e4e">blocked_range</a> (Value begin_, Value end_, <a class="el" href="a00026.html#a89b300cecd9d617e4ee801c786756e55">size_type</a> grainsize_=1)</td></tr>
<tr class="memdesc:a49a97576004711b7159170fcaf488e4e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Construct range over half-open interval [begin,end), with the given grainsize. <br/></td></tr>
<tr class="separator:a49a97576004711b7159170fcaf488e4e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae225fa10454b0fa33533dfb56f5060a2"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ae225fa10454b0fa33533dfb56f5060a2"></a>
<a class="el" href="a00026.html#ad56ca70af46acf8870b4970d8a809791">const_iterator</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00026.html#ae225fa10454b0fa33533dfb56f5060a2">begin</a> () const </td></tr>
<tr class="memdesc:ae225fa10454b0fa33533dfb56f5060a2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Beginning of range. <br/></td></tr>
<tr class="separator:ae225fa10454b0fa33533dfb56f5060a2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a99f829599d3e51b181a30b4cd57b06c6"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a99f829599d3e51b181a30b4cd57b06c6"></a>
<a class="el" href="a00026.html#ad56ca70af46acf8870b4970d8a809791">const_iterator</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00026.html#a99f829599d3e51b181a30b4cd57b06c6">end</a> () const </td></tr>
<tr class="memdesc:a99f829599d3e51b181a30b4cd57b06c6"><td class="mdescLeft">&#160;</td><td class="mdescRight">One past last value in range. <br/></td></tr>
<tr class="separator:a99f829599d3e51b181a30b4cd57b06c6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a347ef8caa40edca3b7f475f182281140"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00026.html#a89b300cecd9d617e4ee801c786756e55">size_type</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00026.html#a347ef8caa40edca3b7f475f182281140">size</a> () const </td></tr>
<tr class="memdesc:a347ef8caa40edca3b7f475f182281140"><td class="mdescLeft">&#160;</td><td class="mdescRight">Size of the range. <a href="#a347ef8caa40edca3b7f475f182281140">More...</a><br/></td></tr>
<tr class="separator:a347ef8caa40edca3b7f475f182281140"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab408f3cf90c85fa9203df5641a2f9bb1"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ab408f3cf90c85fa9203df5641a2f9bb1"></a>
<a class="el" href="a00026.html#a89b300cecd9d617e4ee801c786756e55">size_type</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00026.html#ab408f3cf90c85fa9203df5641a2f9bb1">grainsize</a> () const </td></tr>
<tr class="memdesc:ab408f3cf90c85fa9203df5641a2f9bb1"><td class="mdescLeft">&#160;</td><td class="mdescRight">The grain size for this range. <br/></td></tr>
<tr class="separator:ab408f3cf90c85fa9203df5641a2f9bb1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a59dec03416b3fefbf69600f798177710"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a59dec03416b3fefbf69600f798177710"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00026.html#a59dec03416b3fefbf69600f798177710">empty</a> () const </td></tr>
<tr class="memdesc:a59dec03416b3fefbf69600f798177710"><td class="mdescLeft">&#160;</td><td class="mdescRight">True if range is empty. <br/></td></tr>
<tr class="separator:a59dec03416b3fefbf69600f798177710"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad90ad1db0d4d9a301ef1c9e17712e8a0"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00026.html#ad90ad1db0d4d9a301ef1c9e17712e8a0">is_divisible</a> () const </td></tr>
<tr class="memdesc:ad90ad1db0d4d9a301ef1c9e17712e8a0"><td class="mdescLeft">&#160;</td><td class="mdescRight">True if range is divisible. <a href="#ad90ad1db0d4d9a301ef1c9e17712e8a0">More...</a><br/></td></tr>
<tr class="separator:ad90ad1db0d4d9a301ef1c9e17712e8a0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a75cae12286f4d5492970ea630a9783b9"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00026.html#a75cae12286f4d5492970ea630a9783b9">blocked_range</a> (<a class="el" href="a00026.html">blocked_range</a> &amp;r, split)</td></tr>
<tr class="memdesc:a75cae12286f4d5492970ea630a9783b9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Split range. <a href="#a75cae12286f4d5492970ea630a9783b9">More...</a><br/></td></tr>
<tr class="separator:a75cae12286f4d5492970ea630a9783b9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1f53fbb10b8b04a515f382704b00ed14"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00026.html#a1f53fbb10b8b04a515f382704b00ed14">blocked_range</a> (<a class="el" href="a00026.html">blocked_range</a> &amp;r, proportional_split &amp;proportion)</td></tr>
<tr class="memdesc:a1f53fbb10b8b04a515f382704b00ed14"><td class="mdescLeft">&#160;</td><td class="mdescRight">Split range. <a href="#a1f53fbb10b8b04a515f382704b00ed14">More...</a><br/></td></tr>
<tr class="separator:a1f53fbb10b8b04a515f382704b00ed14"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-static-attribs"></a>
Static Public Attributes</h2></td></tr>
<tr class="memitem:ae2b0210e2468092b408123adeb54b01c"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ae2b0210e2468092b408123adeb54b01c"></a>
static const bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00026.html#ae2b0210e2468092b408123adeb54b01c">is_splittable_in_proportion</a> = true</td></tr>
<tr class="memdesc:ae2b0210e2468092b408123adeb54b01c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Static field to support proportional split. <br/></td></tr>
<tr class="separator:ae2b0210e2468092b408123adeb54b01c"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="friends"></a>
Friends</h2></td></tr>
<tr class="memitem:aa504612e6c1ba07b8846bcd323847680"><td class="memTemplParams" colspan="2"><a class="anchor" id="aa504612e6c1ba07b8846bcd323847680"></a>
template&lt;typename RowValue , typename ColValue &gt; </td></tr>
<tr class="memitem:aa504612e6c1ba07b8846bcd323847680"><td class="memTemplItemLeft" align="right" valign="top">class&#160;</td><td class="memTemplItemRight" valign="bottom"><b>blocked_range2d</b></td></tr>
<tr class="separator:aa504612e6c1ba07b8846bcd323847680"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a83f67fe3b421dbaeee9040aae730d5e8"><td class="memTemplParams" colspan="2"><a class="anchor" id="a83f67fe3b421dbaeee9040aae730d5e8"></a>
template&lt;typename RowValue , typename ColValue , typename PageValue &gt; </td></tr>
<tr class="memitem:a83f67fe3b421dbaeee9040aae730d5e8"><td class="memTemplItemLeft" align="right" valign="top">class&#160;</td><td class="memTemplItemRight" valign="bottom"><b>blocked_range3d</b></td></tr>
<tr class="separator:a83f67fe3b421dbaeee9040aae730d5e8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab8dc51ef88ff53cc6cc4e40e2c2818eb"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ab8dc51ef88ff53cc6cc4e40e2c2818eb"></a>
&#160;</td><td class="memItemRight" valign="bottom"><b>bucket_accessor</b> (<a class="el" href="a00036.html">concurrent_hash_map</a> *base, const hashcode_t h, bool writer=false)</td></tr>
<tr class="separator:ab8dc51ef88ff53cc6cc4e40e2c2818eb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0d7d8f3d101bb18056b8e5d4d2c8b079"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a0d7d8f3d101bb18056b8e5d4d2c8b079"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00026.html#a0d7d8f3d101bb18056b8e5d4d2c8b079">acquire</a> (<a class="el" href="a00036.html">concurrent_hash_map</a> *base, const hashcode_t h, bool writer=false)</td></tr>
<tr class="memdesc:a0d7d8f3d101bb18056b8e5d4d2c8b079"><td class="mdescLeft">&#160;</td><td class="mdescRight">find a bucket by masked hashcode, optionally rehash, and acquire the lock <br/></td></tr>
<tr class="separator:a0d7d8f3d101bb18056b8e5d4d2c8b079"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aaa8167e2961330435fd23eb92127805c"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aaa8167e2961330435fd23eb92127805c"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00026.html#aaa8167e2961330435fd23eb92127805c">is_writer</a> ()</td></tr>
<tr class="memdesc:aaa8167e2961330435fd23eb92127805c"><td class="mdescLeft">&#160;</td><td class="mdescRight">check whether bucket is locked for write <br/></td></tr>
<tr class="separator:aaa8167e2961330435fd23eb92127805c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a16e714a5e77dbf8daf81973df30722d4"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a16e714a5e77dbf8daf81973df30722d4"></a>
bucket *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00026.html#a16e714a5e77dbf8daf81973df30722d4">operator()</a> ()</td></tr>
<tr class="memdesc:a16e714a5e77dbf8daf81973df30722d4"><td class="mdescLeft">&#160;</td><td class="mdescRight">get bucket pointer <br/></td></tr>
<tr class="separator:a16e714a5e77dbf8daf81973df30722d4"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><h3>template&lt;typename Value&gt;<br/>
class tbb::blocked_range&lt; Value &gt;</h3>
<div class="textblock"><h3>template&lt;typename Key, typename T, typename HashCompare = tbb_hash_compare&lt;Key&gt;, typename A = tbb_allocator&lt;std::pair&lt;Key, T&gt; &gt;&gt;<br/>
class tbb::interface5::concurrent_hash_map&lt; Key, T, HashCompare, A &gt;::bucket_accessor</h3>
<p>A range over which to iterate. </p>
</div><h2 class="groupheader">Member Typedef Documentation</h2>
<a class="anchor" id="ad56ca70af46acf8870b4970d8a809791"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Value&gt; </div>
<table class="memname">
<tr>
<td class="memname">typedef Value <a class="el" href="a00026.html">tbb::blocked_range</a>&lt; Value &gt;::<a class="el" href="a00026.html#ad56ca70af46acf8870b4970d8a809791">const_iterator</a></td>
</tr>
</table>
</div><div class="memdoc">
<p>Type of a value. </p>
<p>Called a const_iterator for sake of algorithms that need to treat a <a class="el" href="a00026.html" title="A range over which to iterate. ">blocked_range</a> as an STL container. </p>
</div>
</div>
<h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a class="anchor" id="aad176ab2cbd0bd73c3c2065761af3ccc"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Value&gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="a00026.html">tbb::blocked_range</a>&lt; Value &gt;::<a class="el" href="a00026.html">blocked_range</a> </td>
<td>(</td>
<td class="paramname">)</td><td></td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Construct range with default-constructed values for begin, end, and grainsize. </p>
<p>Requires that Value have a default constructor. </p>
</div>
</div>
<a class="anchor" id="a75cae12286f4d5492970ea630a9783b9"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Value&gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="a00026.html">tbb::blocked_range</a>&lt; Value &gt;::<a class="el" href="a00026.html">blocked_range</a> </td>
<td>(</td>
<td class="paramtype"><a class="el" href="a00026.html">blocked_range</a>&lt; Value &gt; &amp;&#160;</td>
<td class="paramname"><em>r</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">split&#160;</td>
<td class="paramname">&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Split range. </p>
<p>The new Range *this has the second part, the old range r has the first part. Unspecified if <a class="el" href="a00026.html#a99f829599d3e51b181a30b4cd57b06c6" title="One past last value in range. ">end()</a>&lt;<a class="el" href="a00026.html#ae225fa10454b0fa33533dfb56f5060a2" title="Beginning of range. ">begin()</a> or !is_divisible(). </p>
</div>
</div>
<a class="anchor" id="a1f53fbb10b8b04a515f382704b00ed14"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Value&gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="a00026.html">tbb::blocked_range</a>&lt; Value &gt;::<a class="el" href="a00026.html">blocked_range</a> </td>
<td>(</td>
<td class="paramtype"><a class="el" href="a00026.html">blocked_range</a>&lt; Value &gt; &amp;&#160;</td>
<td class="paramname"><em>r</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">proportional_split &amp;&#160;</td>
<td class="paramname"><em>proportion</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Split range. </p>
<p>The new Range *this has the second part split according to specified proportion, the old range r has the first part. Unspecified if <a class="el" href="a00026.html#a99f829599d3e51b181a30b4cd57b06c6" title="One past last value in range. ">end()</a>&lt;<a class="el" href="a00026.html#ae225fa10454b0fa33533dfb56f5060a2" title="Beginning of range. ">begin()</a> or !is_divisible(). </p>
</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a class="anchor" id="ad90ad1db0d4d9a301ef1c9e17712e8a0"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Value&gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">bool <a class="el" href="a00026.html">tbb::blocked_range</a>&lt; Value &gt;::is_divisible </td>
<td>(</td>
<td class="paramname">)</td><td></td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>True if range is divisible. </p>
<p>Unspecified if <a class="el" href="a00026.html#a99f829599d3e51b181a30b4cd57b06c6" title="One past last value in range. ">end()</a>&lt;<a class="el" href="a00026.html#ae225fa10454b0fa33533dfb56f5060a2" title="Beginning of range. ">begin()</a>. </p>
<p>Referenced by <a class="el" href="a00027.html#ac84c6cc2ff8b0974ffa719fed804f586">tbb::blocked_range2d&lt; RowValue, ColValue &gt;::is_divisible()</a>, and <a class="el" href="a00028.html#a0fce6bcae6269c37623c3a2cdbb8bcf0">tbb::blocked_range3d&lt; PageValue, RowValue, ColValue &gt;::is_divisible()</a>.</p>
</div>
</div>
<a class="anchor" id="a347ef8caa40edca3b7f475f182281140"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Value&gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="a00026.html#a89b300cecd9d617e4ee801c786756e55">size_type</a> <a class="el" href="a00026.html">tbb::blocked_range</a>&lt; Value &gt;::size </td>
<td>(</td>
<td class="paramname">)</td><td></td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Size of the range. </p>
<p>Unspecified if <a class="el" href="a00026.html#a99f829599d3e51b181a30b4cd57b06c6" title="One past last value in range. ">end()</a>&lt;<a class="el" href="a00026.html#ae225fa10454b0fa33533dfb56f5060a2" title="Beginning of range. ">begin()</a>. </p>
<p>Referenced by <a class="el" href="a00026.html#ad90ad1db0d4d9a301ef1c9e17712e8a0">tbb::blocked_range&lt; I &gt;::is_divisible()</a>.</p>
</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
<li>blocked_range.h</li>
<p>bucket accessor is to find, rehash, acquire a lock, and access a bucket </p>
</div><hr/>The documentation for this class was generated from the following file:<ul>
<li>concurrent_hash_map.h</li>
</ul>
</div><!-- contents -->
<hr>
Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

+80 -53
View File
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.4"/>
<title>tbb::blocked_range2d&lt; RowValue, ColValue &gt; Class Template Reference</title>
<title>tbb::cache_aligned_allocator&lt; T &gt; Class Template Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -33,80 +33,107 @@
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="a00237.html">tbb</a></li><li class="navelem"><a class="el" href="a00027.html">blocked_range2d</a></li> </ul>
<li class="navelem"><a class="el" href="a00234.html">tbb</a></li><li class="navelem"><a class="el" href="a00027.html">cache_aligned_allocator</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#nested-classes">Classes</a> &#124;
<a href="#pub-types">Public Types</a> &#124;
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#pub-static-attribs">Static Public Attributes</a> &#124;
<a href="a00270.html">List of all members</a> </div>
<a href="a00268.html">List of all members</a> </div>
<div class="headertitle">
<div class="title">tbb::blocked_range2d&lt; RowValue, ColValue &gt; Class Template Reference<div class="ingroups"><a class="el" href="a00257.html">Algorithms</a></div></div> </div>
<div class="title">tbb::cache_aligned_allocator&lt; T &gt; Class Template Reference<div class="ingroups"><a class="el" href="a00255.html">Memory Allocation</a></div></div> </div>
</div><!--header-->
<div class="contents">
<p>A 2-dimensional range that models the Range concept.
<p>Meets "allocator" requirements of ISO C++ Standard, Section 20.1.5.
<a href="a00027.html#details">More...</a></p>
<p><code>#include &lt;blocked_range2d.h&gt;</code></p>
<p><code>#include &lt;cache_aligned_allocator.h&gt;</code></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
Classes</h2></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00113.html">rebind</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-types"></a>
Public Types</h2></td></tr>
<tr class="memitem:ada609b296a9af0591cc34761b8538100"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ada609b296a9af0591cc34761b8538100"></a>
typedef <a class="el" href="a00026.html">blocked_range</a>&lt; RowValue &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00027.html#ada609b296a9af0591cc34761b8538100">row_range_type</a></td></tr>
<tr class="memdesc:ada609b296a9af0591cc34761b8538100"><td class="mdescLeft">&#160;</td><td class="mdescRight">Type for size of an iteration range. <br/></td></tr>
<tr class="separator:ada609b296a9af0591cc34761b8538100"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9820ed2f2560633d18bf35cece8b6493"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a9820ed2f2560633d18bf35cece8b6493"></a>
typedef <a class="el" href="a00026.html">blocked_range</a>&lt; ColValue &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>col_range_type</b></td></tr>
<tr class="separator:a9820ed2f2560633d18bf35cece8b6493"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7aba3042b0a1c934879d5299f0c20e7e"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a7aba3042b0a1c934879d5299f0c20e7e"></a>
typedef <br class="typebreak"/>
internal::allocator_type&lt; T &gt;<br class="typebreak"/>
::value_type&#160;</td><td class="memItemRight" valign="bottom"><b>value_type</b></td></tr>
<tr class="separator:a7aba3042b0a1c934879d5299f0c20e7e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6fabbb51a8fd7b270b94fc4d9548847b"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a6fabbb51a8fd7b270b94fc4d9548847b"></a>
typedef value_type *&#160;</td><td class="memItemRight" valign="bottom"><b>pointer</b></td></tr>
<tr class="separator:a6fabbb51a8fd7b270b94fc4d9548847b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a35edf40f1bb3418f61e7d33c9f796824"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a35edf40f1bb3418f61e7d33c9f796824"></a>
typedef const value_type *&#160;</td><td class="memItemRight" valign="bottom"><b>const_pointer</b></td></tr>
<tr class="separator:a35edf40f1bb3418f61e7d33c9f796824"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac9f2f6c7ca74e1f3968d838eec2c4dcb"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ac9f2f6c7ca74e1f3968d838eec2c4dcb"></a>
typedef value_type &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>reference</b></td></tr>
<tr class="separator:ac9f2f6c7ca74e1f3968d838eec2c4dcb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af50d27e385aea41dbb8a9cd0734f1c84"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="af50d27e385aea41dbb8a9cd0734f1c84"></a>
typedef const value_type &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>const_reference</b></td></tr>
<tr class="separator:af50d27e385aea41dbb8a9cd0734f1c84"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a51eed827a49fd636d1d6c73908f9635b"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a51eed827a49fd636d1d6c73908f9635b"></a>
typedef size_t&#160;</td><td class="memItemRight" valign="bottom"><b>size_type</b></td></tr>
<tr class="separator:a51eed827a49fd636d1d6c73908f9635b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8bf47c52cdeee1bc0dcd410cc97faeec"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a8bf47c52cdeee1bc0dcd410cc97faeec"></a>
typedef ptrdiff_t&#160;</td><td class="memItemRight" valign="bottom"><b>difference_type</b></td></tr>
<tr class="separator:a8bf47c52cdeee1bc0dcd410cc97faeec"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:a5aa4e2c389c4b833937fcad66efe2b6a"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a5aa4e2c389c4b833937fcad66efe2b6a"></a>
&#160;</td><td class="memItemRight" valign="bottom"><b>blocked_range2d</b> (RowValue row_begin, RowValue row_end, typename <a class="el" href="a00026.html#a89b300cecd9d617e4ee801c786756e55">row_range_type::size_type</a> row_grainsize, ColValue col_begin, ColValue col_end, typename <a class="el" href="a00026.html#a89b300cecd9d617e4ee801c786756e55">col_range_type::size_type</a> col_grainsize)</td></tr>
<tr class="separator:a5aa4e2c389c4b833937fcad66efe2b6a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aaf45f93921022437fdcb500585768a5e"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aaf45f93921022437fdcb500585768a5e"></a>
&#160;</td><td class="memItemRight" valign="bottom"><b>blocked_range2d</b> (RowValue row_begin, RowValue row_end, ColValue col_begin, ColValue col_end)</td></tr>
<tr class="separator:aaf45f93921022437fdcb500585768a5e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5805972c8c41b2681d286f9c9771cf52"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a5805972c8c41b2681d286f9c9771cf52"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00027.html#a5805972c8c41b2681d286f9c9771cf52">empty</a> () const </td></tr>
<tr class="memdesc:a5805972c8c41b2681d286f9c9771cf52"><td class="mdescLeft">&#160;</td><td class="mdescRight">True if range is empty. <br/></td></tr>
<tr class="separator:a5805972c8c41b2681d286f9c9771cf52"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac84c6cc2ff8b0974ffa719fed804f586"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ac84c6cc2ff8b0974ffa719fed804f586"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00027.html#ac84c6cc2ff8b0974ffa719fed804f586">is_divisible</a> () const </td></tr>
<tr class="memdesc:ac84c6cc2ff8b0974ffa719fed804f586"><td class="mdescLeft">&#160;</td><td class="mdescRight">True if range is divisible into two pieces. <br/></td></tr>
<tr class="separator:ac84c6cc2ff8b0974ffa719fed804f586"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af0e752d01b661b01c9a473473bea43fc"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="af0e752d01b661b01c9a473473bea43fc"></a>
&#160;</td><td class="memItemRight" valign="bottom"><b>blocked_range2d</b> (<a class="el" href="a00027.html">blocked_range2d</a> &amp;r, split)</td></tr>
<tr class="separator:af0e752d01b661b01c9a473473bea43fc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9ebbf0fa580c0553ec2e3c5997b9799c"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a9ebbf0fa580c0553ec2e3c5997b9799c"></a>
&#160;</td><td class="memItemRight" valign="bottom"><b>blocked_range2d</b> (<a class="el" href="a00027.html">blocked_range2d</a> &amp;r, proportional_split &amp;proportion)</td></tr>
<tr class="separator:a9ebbf0fa580c0553ec2e3c5997b9799c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4f7299e74c40df57dee2433c07ce65ae"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a4f7299e74c40df57dee2433c07ce65ae"></a>
const <a class="el" href="a00027.html#ada609b296a9af0591cc34761b8538100">row_range_type</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00027.html#a4f7299e74c40df57dee2433c07ce65ae">rows</a> () const </td></tr>
<tr class="memdesc:a4f7299e74c40df57dee2433c07ce65ae"><td class="mdescLeft">&#160;</td><td class="mdescRight">The rows of the iteration space. <br/></td></tr>
<tr class="separator:a4f7299e74c40df57dee2433c07ce65ae"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af3bccfaf90126b285491096f78ca9473"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="af3bccfaf90126b285491096f78ca9473"></a>
const <a class="el" href="a00026.html">col_range_type</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00027.html#af3bccfaf90126b285491096f78ca9473">cols</a> () const </td></tr>
<tr class="memdesc:af3bccfaf90126b285491096f78ca9473"><td class="mdescLeft">&#160;</td><td class="mdescRight">The columns of the iteration space. <br/></td></tr>
<tr class="separator:af3bccfaf90126b285491096f78ca9473"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-static-attribs"></a>
Static Public Attributes</h2></td></tr>
<tr class="memitem:aa0519760654368000f7ebc87d9bfe898"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aa0519760654368000f7ebc87d9bfe898"></a>
static const bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00027.html#aa0519760654368000f7ebc87d9bfe898">is_splittable_in_proportion</a> = true</td></tr>
<tr class="memdesc:aa0519760654368000f7ebc87d9bfe898"><td class="mdescLeft">&#160;</td><td class="mdescRight">Static field to support proportional split. <br/></td></tr>
<tr class="separator:aa0519760654368000f7ebc87d9bfe898"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a11b1921251262137671599e99fbe8d4e"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a11b1921251262137671599e99fbe8d4e"></a>
&#160;</td><td class="memItemRight" valign="bottom"><b>cache_aligned_allocator</b> (const <a class="el" href="a00027.html">cache_aligned_allocator</a> &amp;) throw ()</td></tr>
<tr class="separator:a11b1921251262137671599e99fbe8d4e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab5a78cc56dcc0851117b3c88bb3af16a"><td class="memTemplParams" colspan="2"><a class="anchor" id="ab5a78cc56dcc0851117b3c88bb3af16a"></a>
template&lt;typename U &gt; </td></tr>
<tr class="memitem:ab5a78cc56dcc0851117b3c88bb3af16a"><td class="memTemplItemLeft" align="right" valign="top">&#160;</td><td class="memTemplItemRight" valign="bottom"><b>cache_aligned_allocator</b> (const <a class="el" href="a00027.html">cache_aligned_allocator</a>&lt; U &gt; &amp;) throw ()</td></tr>
<tr class="separator:ab5a78cc56dcc0851117b3c88bb3af16a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a39aa68042abff22210f801eab98f6dfa"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a39aa68042abff22210f801eab98f6dfa"></a>
pointer&#160;</td><td class="memItemRight" valign="bottom"><b>address</b> (reference x) const </td></tr>
<tr class="separator:a39aa68042abff22210f801eab98f6dfa"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5bd8fe0e5de894404c8b868b37a0fe53"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a5bd8fe0e5de894404c8b868b37a0fe53"></a>
const_pointer&#160;</td><td class="memItemRight" valign="bottom"><b>address</b> (const_reference x) const </td></tr>
<tr class="separator:a5bd8fe0e5de894404c8b868b37a0fe53"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a99d05096f80877849cb31d80247e0f85"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a99d05096f80877849cb31d80247e0f85"></a>
pointer&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00027.html#a99d05096f80877849cb31d80247e0f85">allocate</a> (size_type n, const void *hint=0)</td></tr>
<tr class="memdesc:a99d05096f80877849cb31d80247e0f85"><td class="mdescLeft">&#160;</td><td class="mdescRight">Allocate space for n objects, starting on a cache/sector line. <br/></td></tr>
<tr class="separator:a99d05096f80877849cb31d80247e0f85"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7f7310e046c4b6b8618864de8e27a471"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a7f7310e046c4b6b8618864de8e27a471"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00027.html#a7f7310e046c4b6b8618864de8e27a471">deallocate</a> (pointer p, size_type)</td></tr>
<tr class="memdesc:a7f7310e046c4b6b8618864de8e27a471"><td class="mdescLeft">&#160;</td><td class="mdescRight">Free block of memory that starts on a cache line. <br/></td></tr>
<tr class="separator:a7f7310e046c4b6b8618864de8e27a471"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4b945b3180ea3dfe16dfa048f4591c6d"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a4b945b3180ea3dfe16dfa048f4591c6d"></a>
size_type&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00027.html#a4b945b3180ea3dfe16dfa048f4591c6d">max_size</a> () const throw ()</td></tr>
<tr class="memdesc:a4b945b3180ea3dfe16dfa048f4591c6d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Largest value for which method allocate might succeed. <br/></td></tr>
<tr class="separator:a4b945b3180ea3dfe16dfa048f4591c6d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab316f80a66b991801b4ec4ea88b852d9"><td class="memTemplParams" colspan="2"><a class="anchor" id="ab316f80a66b991801b4ec4ea88b852d9"></a>
template&lt;typename U , typename... Args&gt; </td></tr>
<tr class="memitem:ab316f80a66b991801b4ec4ea88b852d9"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00027.html#ab316f80a66b991801b4ec4ea88b852d9">construct</a> (U *p, Args &amp;&amp;...args)</td></tr>
<tr class="memdesc:ab316f80a66b991801b4ec4ea88b852d9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Copy-construct value at location pointed to by p. <br/></td></tr>
<tr class="separator:ab316f80a66b991801b4ec4ea88b852d9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac5b39984a3eee60e5bf0f10ef609dc4c"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ac5b39984a3eee60e5bf0f10ef609dc4c"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>construct</b> (pointer p, value_type &amp;&amp;value)</td></tr>
<tr class="separator:ac5b39984a3eee60e5bf0f10ef609dc4c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5086d395a952eb13eb7d72bb0cb26937"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a5086d395a952eb13eb7d72bb0cb26937"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>construct</b> (pointer p, const value_type &amp;value)</td></tr>
<tr class="separator:a5086d395a952eb13eb7d72bb0cb26937"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af2fd054d055403d4ea669fd3af661cc8"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="af2fd054d055403d4ea669fd3af661cc8"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00027.html#af2fd054d055403d4ea669fd3af661cc8">destroy</a> (pointer p)</td></tr>
<tr class="memdesc:af2fd054d055403d4ea669fd3af661cc8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Destroy value at location pointed to by p. <br/></td></tr>
<tr class="separator:af2fd054d055403d4ea669fd3af661cc8"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><h3>template&lt;typename RowValue, typename ColValue = RowValue&gt;<br/>
class tbb::blocked_range2d&lt; RowValue, ColValue &gt;</h3>
<div class="textblock"><h3>template&lt;typename T&gt;<br/>
class tbb::cache_aligned_allocator&lt; T &gt;</h3>
<p>A 2-dimensional range that models the Range concept. </p>
<p>Meets "allocator" requirements of ISO C++ Standard, Section 20.1.5. </p>
<p>The members are ordered the same way they are in section 20.4.1 of the ISO C++ standard. </p>
</div><hr/>The documentation for this class was generated from the following file:<ul>
<li>blocked_range2d.h</li>
<li>cache_aligned_allocator.h</li>
</ul>
</div><!-- contents -->
<hr>
+25 -64
View File
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.4"/>
<title>tbb::blocked_range3d&lt; PageValue, RowValue, ColValue &gt; Class Template Reference</title>
<title>tbb::cache_aligned_allocator&lt; void &gt; Class Template Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -33,87 +33,48 @@
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="a00237.html">tbb</a></li><li class="navelem"><a class="el" href="a00028.html">blocked_range3d</a></li> </ul>
<li class="navelem"><a class="el" href="a00234.html">tbb</a></li><li class="navelem"><a class="el" href="a00028.html">cache_aligned_allocator< void ></a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#nested-classes">Classes</a> &#124;
<a href="#pub-types">Public Types</a> &#124;
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#pub-static-attribs">Static Public Attributes</a> &#124;
<a href="a00271.html">List of all members</a> </div>
<a href="a00270.html">List of all members</a> </div>
<div class="headertitle">
<div class="title">tbb::blocked_range3d&lt; PageValue, RowValue, ColValue &gt; Class Template Reference<div class="ingroups"><a class="el" href="a00257.html">Algorithms</a></div></div> </div>
<div class="title">tbb::cache_aligned_allocator&lt; void &gt; Class Template Reference<div class="ingroups"><a class="el" href="a00255.html">Memory Allocation</a></div></div> </div>
</div><!--header-->
<div class="contents">
<p>A 3-dimensional range that models the Range concept.
<p>Analogous to std::allocator&lt;void&gt;, as defined in ISO C++ Standard, Section 20.4.1.
<a href="a00028.html#details">More...</a></p>
<p><code>#include &lt;blocked_range3d.h&gt;</code></p>
<p><code>#include &lt;cache_aligned_allocator.h&gt;</code></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
Classes</h2></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00118.html">rebind</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-types"></a>
Public Types</h2></td></tr>
<tr class="memitem:a8cdc866378a12ce198da870d0439676f"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a8cdc866378a12ce198da870d0439676f"></a>
typedef <a class="el" href="a00026.html">blocked_range</a>&lt; PageValue &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00028.html#a8cdc866378a12ce198da870d0439676f">page_range_type</a></td></tr>
<tr class="memdesc:a8cdc866378a12ce198da870d0439676f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Type for size of an iteration range. <br/></td></tr>
<tr class="separator:a8cdc866378a12ce198da870d0439676f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abe15e1e06f47809a477272f733a8abf8"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="abe15e1e06f47809a477272f733a8abf8"></a>
typedef <a class="el" href="a00026.html">blocked_range</a>&lt; RowValue &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>row_range_type</b></td></tr>
<tr class="separator:abe15e1e06f47809a477272f733a8abf8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab3bffd5ffb14ad9897b1a9bf22980768"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ab3bffd5ffb14ad9897b1a9bf22980768"></a>
typedef <a class="el" href="a00026.html">blocked_range</a>&lt; ColValue &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>col_range_type</b></td></tr>
<tr class="separator:ab3bffd5ffb14ad9897b1a9bf22980768"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:aa5159e07e2d601319eece538edb8add0"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aa5159e07e2d601319eece538edb8add0"></a>
&#160;</td><td class="memItemRight" valign="bottom"><b>blocked_range3d</b> (PageValue page_begin, PageValue page_end, RowValue row_begin, RowValue row_end, ColValue col_begin, ColValue col_end)</td></tr>
<tr class="separator:aa5159e07e2d601319eece538edb8add0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a671a22033260fa02734c5a1113dcf1ac"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a671a22033260fa02734c5a1113dcf1ac"></a>
&#160;</td><td class="memItemRight" valign="bottom"><b>blocked_range3d</b> (PageValue page_begin, PageValue page_end, typename <a class="el" href="a00026.html#a89b300cecd9d617e4ee801c786756e55">page_range_type::size_type</a> page_grainsize, RowValue row_begin, RowValue row_end, typename <a class="el" href="a00026.html#a89b300cecd9d617e4ee801c786756e55">row_range_type::size_type</a> row_grainsize, ColValue col_begin, ColValue col_end, typename <a class="el" href="a00026.html#a89b300cecd9d617e4ee801c786756e55">col_range_type::size_type</a> col_grainsize)</td></tr>
<tr class="separator:a671a22033260fa02734c5a1113dcf1ac"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aea992e0cd3d105f964a633b1a0a1a05f"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aea992e0cd3d105f964a633b1a0a1a05f"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00028.html#aea992e0cd3d105f964a633b1a0a1a05f">empty</a> () const </td></tr>
<tr class="memdesc:aea992e0cd3d105f964a633b1a0a1a05f"><td class="mdescLeft">&#160;</td><td class="mdescRight">True if range is empty. <br/></td></tr>
<tr class="separator:aea992e0cd3d105f964a633b1a0a1a05f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0fce6bcae6269c37623c3a2cdbb8bcf0"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a0fce6bcae6269c37623c3a2cdbb8bcf0"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00028.html#a0fce6bcae6269c37623c3a2cdbb8bcf0">is_divisible</a> () const </td></tr>
<tr class="memdesc:a0fce6bcae6269c37623c3a2cdbb8bcf0"><td class="mdescLeft">&#160;</td><td class="mdescRight">True if range is divisible into two pieces. <br/></td></tr>
<tr class="separator:a0fce6bcae6269c37623c3a2cdbb8bcf0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a788ebedfb4a2eaa4bee11c2c967e0768"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a788ebedfb4a2eaa4bee11c2c967e0768"></a>
&#160;</td><td class="memItemRight" valign="bottom"><b>blocked_range3d</b> (<a class="el" href="a00028.html">blocked_range3d</a> &amp;r, split)</td></tr>
<tr class="separator:a788ebedfb4a2eaa4bee11c2c967e0768"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0e5fdb794ec7bfc5f21a59ddd466d8e0"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a0e5fdb794ec7bfc5f21a59ddd466d8e0"></a>
&#160;</td><td class="memItemRight" valign="bottom"><b>blocked_range3d</b> (<a class="el" href="a00028.html">blocked_range3d</a> &amp;r, proportional_split &amp;proportion)</td></tr>
<tr class="separator:a0e5fdb794ec7bfc5f21a59ddd466d8e0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5b794fd53ba92106aeafa4eed85731d4"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a5b794fd53ba92106aeafa4eed85731d4"></a>
const <a class="el" href="a00028.html#a8cdc866378a12ce198da870d0439676f">page_range_type</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00028.html#a5b794fd53ba92106aeafa4eed85731d4">pages</a> () const </td></tr>
<tr class="memdesc:a5b794fd53ba92106aeafa4eed85731d4"><td class="mdescLeft">&#160;</td><td class="mdescRight">The pages of the iteration space. <br/></td></tr>
<tr class="separator:a5b794fd53ba92106aeafa4eed85731d4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aeac1def585af81467573f30ebb42cb4f"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aeac1def585af81467573f30ebb42cb4f"></a>
const <a class="el" href="a00026.html">row_range_type</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00028.html#aeac1def585af81467573f30ebb42cb4f">rows</a> () const </td></tr>
<tr class="memdesc:aeac1def585af81467573f30ebb42cb4f"><td class="mdescLeft">&#160;</td><td class="mdescRight">The rows of the iteration space. <br/></td></tr>
<tr class="separator:aeac1def585af81467573f30ebb42cb4f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a308d7089a1d53ff26770a7040ed817cd"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a308d7089a1d53ff26770a7040ed817cd"></a>
const <a class="el" href="a00026.html">col_range_type</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00028.html#a308d7089a1d53ff26770a7040ed817cd">cols</a> () const </td></tr>
<tr class="memdesc:a308d7089a1d53ff26770a7040ed817cd"><td class="mdescLeft">&#160;</td><td class="mdescRight">The columns of the iteration space. <br/></td></tr>
<tr class="separator:a308d7089a1d53ff26770a7040ed817cd"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-static-attribs"></a>
Static Public Attributes</h2></td></tr>
<tr class="memitem:a5940c1bd6ba0e8184ef83dea0ae56884"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a5940c1bd6ba0e8184ef83dea0ae56884"></a>
static const bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00028.html#a5940c1bd6ba0e8184ef83dea0ae56884">is_splittable_in_proportion</a> = true</td></tr>
<tr class="memdesc:a5940c1bd6ba0e8184ef83dea0ae56884"><td class="mdescLeft">&#160;</td><td class="mdescRight">Static field to support proportional split. <br/></td></tr>
<tr class="separator:a5940c1bd6ba0e8184ef83dea0ae56884"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a630325567e2ede3937a0d2e0f2da6a3f"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a630325567e2ede3937a0d2e0f2da6a3f"></a>
typedef void *&#160;</td><td class="memItemRight" valign="bottom"><b>pointer</b></td></tr>
<tr class="separator:a630325567e2ede3937a0d2e0f2da6a3f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a36f63efa0a37d205705b9d5944432864"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a36f63efa0a37d205705b9d5944432864"></a>
typedef const void *&#160;</td><td class="memItemRight" valign="bottom"><b>const_pointer</b></td></tr>
<tr class="separator:a36f63efa0a37d205705b9d5944432864"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af7f973d0bb12319600505cf9c1fb35b0"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="af7f973d0bb12319600505cf9c1fb35b0"></a>
typedef void&#160;</td><td class="memItemRight" valign="bottom"><b>value_type</b></td></tr>
<tr class="separator:af7f973d0bb12319600505cf9c1fb35b0"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><h3>template&lt;typename PageValue, typename RowValue = PageValue, typename ColValue = RowValue&gt;<br/>
class tbb::blocked_range3d&lt; PageValue, RowValue, ColValue &gt;</h3>
<div class="textblock"><h3>template&lt;&gt;<br/>
class tbb::cache_aligned_allocator&lt; void &gt;</h3>
<p>A 3-dimensional range that models the Range concept. </p>
<p>Analogous to std::allocator&lt;void&gt;, as defined in ISO C++ Standard, Section 20.4.1. </p>
</div><hr/>The documentation for this class was generated from the following file:<ul>
<li>blocked_range3d.h</li>
<li>cache_aligned_allocator.h</li>
</ul>
</div><!-- contents -->
<hr>
+25 -5
View File
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.4"/>
<title>tbb::flow::interface10::internal::broadcast_cache&lt; T, M &gt; Class Template Reference</title>
<title>tbb::interface5::concurrent_hash_map&lt; Key, T, HashCompare, A &gt;::call_clear_on_leave Struct Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -33,16 +33,36 @@
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="a00237.html">tbb</a></li><li class="navelem"><b>flow</b></li><li class="navelem"><b>interface10</b></li><li class="navelem"><b>internal</b></li><li class="navelem"><a class="el" href="a00029.html">broadcast_cache</a></li> </ul>
<li class="navelem"><a class="el" href="a00234.html">tbb</a></li><li class="navelem"><b>interface5</b></li><li class="navelem"><a class="el" href="a00036.html">concurrent_hash_map</a></li><li class="navelem"><a class="el" href="a00029.html">call_clear_on_leave</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#pub-attribs">Public Attributes</a> &#124;
<a href="a00360.html">List of all members</a> </div>
<div class="headertitle">
<div class="title">tbb::flow::interface10::internal::broadcast_cache&lt; T, M &gt; Class Template Reference</div> </div>
<div class="title">tbb::interface5::concurrent_hash_map&lt; Key, T, HashCompare, A &gt;::call_clear_on_leave Struct Reference</div> </div>
</div><!--header-->
<div class="contents">
<hr/>The documentation for this class was generated from the following file:<ul>
<li><a class="el" href="a00191.html">flow_graph.h</a></li>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:a4b242f28514cb0e4fb2e462c8fead03e"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a4b242f28514cb0e4fb2e462c8fead03e"></a>
&#160;</td><td class="memItemRight" valign="bottom"><b>call_clear_on_leave</b> (<a class="el" href="a00036.html">concurrent_hash_map</a> *a_ch_map)</td></tr>
<tr class="separator:a4b242f28514cb0e4fb2e462c8fead03e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0e56acf6cbc5a9bc38018a8640050054"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a0e56acf6cbc5a9bc38018a8640050054"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>dismiss</b> ()</td></tr>
<tr class="separator:a0e56acf6cbc5a9bc38018a8640050054"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
Public Attributes</h2></td></tr>
<tr class="memitem:a22e1559dccd2fd4345ca0ff389c6ad29"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a22e1559dccd2fd4345ca0ff389c6ad29"></a>
<a class="el" href="a00036.html">concurrent_hash_map</a> *&#160;</td><td class="memItemRight" valign="bottom"><b>my_ch_map</b></td></tr>
<tr class="separator:a22e1559dccd2fd4345ca0ff389c6ad29"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<hr/>The documentation for this struct was generated from the following file:<ul>
<li>concurrent_hash_map.h</li>
</ul>
</div><!-- contents -->
<hr>
+16 -34
View File
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.4"/>
<title>tbb::interface5::concurrent_hash_map&lt; Key, T, HashCompare, A &gt;::bucket_accessor Class Reference</title>
<title>tbb::flow::interface9::callback&lt; Callback, T &gt; Class Template Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -33,56 +33,38 @@
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="a00237.html">tbb</a></li><li class="navelem"><b>interface5</b></li><li class="navelem"><a class="el" href="a00040.html">concurrent_hash_map</a></li><li class="navelem"><a class="el" href="a00030.html">bucket_accessor</a></li> </ul>
<li class="navelem"><a class="el" href="a00234.html">tbb</a></li><li class="navelem"><b>flow</b></li><li class="navelem"><b>interface9</b></li><li class="navelem"><a class="el" href="a00030.html">callback</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="a00364.html">List of all members</a> </div>
<a href="a00338.html">List of all members</a> </div>
<div class="headertitle">
<div class="title">tbb::interface5::concurrent_hash_map&lt; Key, T, HashCompare, A &gt;::bucket_accessor Class Reference</div> </div>
<div class="title">tbb::flow::interface9::callback&lt; Callback, T &gt; Class Template Reference</div> </div>
</div><!--header-->
<div class="contents">
<p>bucket accessor is to find, rehash, acquire a lock, and access a bucket
<a href="a00030.html#details">More...</a></p>
<p><code>#include &lt;concurrent_hash_map.h&gt;</code></p>
<div class="dynheader">
Inheritance diagram for tbb::interface5::concurrent_hash_map&lt; Key, T, HashCompare, A &gt;::bucket_accessor:</div>
Inheritance diagram for tbb::flow::interface9::callback&lt; Callback, T &gt;:</div>
<div class="dyncontent">
<div class="center">
<img src="a00030.png" usemap="#tbb::interface5::concurrent_hash_map&lt; Key, T, HashCompare, A &gt;::bucket_accessor_map" alt=""/>
<map id="tbb::interface5::concurrent_hash_map&lt; Key, T, HashCompare, A &gt;::bucket_accessor_map" name="tbb::interface5::concurrent_hash_map&lt; Key, T, HashCompare, A &gt;::bucket_accessor_map">
<img src="a00030.png" usemap="#tbb::flow::interface9::callback&lt; Callback, T &gt;_map" alt=""/>
<map id="tbb::flow::interface9::callback&lt; Callback, T &gt;_map" name="tbb::flow::interface9::callback&lt; Callback, T &gt;_map">
<area href="a00031.html" alt="tbb::flow::interface9::callback_base" shape="rect" coords="0,56,263,80"/>
</map>
</div></div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:ab8dc51ef88ff53cc6cc4e40e2c2818eb"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ab8dc51ef88ff53cc6cc4e40e2c2818eb"></a>
&#160;</td><td class="memItemRight" valign="bottom"><b>bucket_accessor</b> (<a class="el" href="a00040.html">concurrent_hash_map</a> *base, const hashcode_t h, bool writer=false)</td></tr>
<tr class="separator:ab8dc51ef88ff53cc6cc4e40e2c2818eb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0d7d8f3d101bb18056b8e5d4d2c8b079"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a0d7d8f3d101bb18056b8e5d4d2c8b079"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00030.html#a0d7d8f3d101bb18056b8e5d4d2c8b079">acquire</a> (<a class="el" href="a00040.html">concurrent_hash_map</a> *base, const hashcode_t h, bool writer=false)</td></tr>
<tr class="memdesc:a0d7d8f3d101bb18056b8e5d4d2c8b079"><td class="mdescLeft">&#160;</td><td class="mdescRight">find a bucket by masked hashcode, optionally rehash, and acquire the lock <br/></td></tr>
<tr class="separator:a0d7d8f3d101bb18056b8e5d4d2c8b079"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aaa8167e2961330435fd23eb92127805c"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aaa8167e2961330435fd23eb92127805c"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00030.html#aaa8167e2961330435fd23eb92127805c">is_writer</a> ()</td></tr>
<tr class="memdesc:aaa8167e2961330435fd23eb92127805c"><td class="mdescLeft">&#160;</td><td class="mdescRight">check whether bucket is locked for write <br/></td></tr>
<tr class="separator:aaa8167e2961330435fd23eb92127805c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a16e714a5e77dbf8daf81973df30722d4"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a16e714a5e77dbf8daf81973df30722d4"></a>
bucket *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00030.html#a16e714a5e77dbf8daf81973df30722d4">operator()</a> ()</td></tr>
<tr class="memdesc:a16e714a5e77dbf8daf81973df30722d4"><td class="mdescLeft">&#160;</td><td class="mdescRight">get bucket pointer <br/></td></tr>
<tr class="separator:a16e714a5e77dbf8daf81973df30722d4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af315d63ace9c432a0b03e818115fec18"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="af315d63ace9c432a0b03e818115fec18"></a>
&#160;</td><td class="memItemRight" valign="bottom"><b>callback</b> (graph &amp;g, Callback c, const T &amp;t)</td></tr>
<tr class="separator:af315d63ace9c432a0b03e818115fec18"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0d80c268cef66f86bc973a26b936abcb"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a0d80c268cef66f86bc973a26b936abcb"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>call</b> () __TBB_override</td></tr>
<tr class="separator:a0d80c268cef66f86bc973a26b936abcb"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><h3>template&lt;typename Key, typename T, typename HashCompare = tbb_hash_compare&lt;Key&gt;, typename A = tbb_allocator&lt;std::pair&lt;Key, T&gt; &gt;&gt;<br/>
class tbb::interface5::concurrent_hash_map&lt; Key, T, HashCompare, A &gt;::bucket_accessor</h3>
<p>bucket accessor is to find, rehash, acquire a lock, and access a bucket </p>
</div><hr/>The documentation for this class was generated from the following file:<ul>
<li>concurrent_hash_map.h</li>
<hr/>The documentation for this class was generated from the following file:<ul>
<li>flow_graph_opencl_node.h</li>
</ul>
</div><!-- contents -->
<hr>
Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 1.1 KiB

+18 -90
View File
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.4"/>
<title>tbb::cache_aligned_allocator&lt; T &gt; Class Template Reference</title>
<title>tbb::flow::interface9::callback_base Class Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -33,107 +33,35 @@
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="a00237.html">tbb</a></li><li class="navelem"><a class="el" href="a00031.html">cache_aligned_allocator</a></li> </ul>
<li class="navelem"><a class="el" href="a00234.html">tbb</a></li><li class="navelem"><b>flow</b></li><li class="navelem"><b>interface9</b></li><li class="navelem"><a class="el" href="a00031.html">callback_base</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#nested-classes">Classes</a> &#124;
<a href="#pub-types">Public Types</a> &#124;
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="a00272.html">List of all members</a> </div>
<a href="a00337.html">List of all members</a> </div>
<div class="headertitle">
<div class="title">tbb::cache_aligned_allocator&lt; T &gt; Class Template Reference<div class="ingroups"><a class="el" href="a00259.html">Memory Allocation</a></div></div> </div>
<div class="title">tbb::flow::interface9::callback_base Class Reference<span class="mlabels"><span class="mlabel">abstract</span></span></div> </div>
</div><!--header-->
<div class="contents">
<p>Meets "allocator" requirements of ISO C++ Standard, Section 20.1.5.
<a href="a00031.html#details">More...</a></p>
<p><code>#include &lt;cache_aligned_allocator.h&gt;</code></p>
<div class="dynheader">
Inheritance diagram for tbb::flow::interface9::callback_base:</div>
<div class="dyncontent">
<div class="center">
<img src="a00031.png" usemap="#tbb::flow::interface9::callback_base_map" alt=""/>
<map id="tbb::flow::interface9::callback_base_map" name="tbb::flow::interface9::callback_base_map">
<area href="a00030.html" alt="tbb::flow::interface9::callback&lt; Callback, T &gt;" shape="rect" coords="0,112,263,136"/>
</map>
</div></div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
Classes</h2></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00113.html">rebind</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-types"></a>
Public Types</h2></td></tr>
<tr class="memitem:a7aba3042b0a1c934879d5299f0c20e7e"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a7aba3042b0a1c934879d5299f0c20e7e"></a>
typedef <br class="typebreak"/>
internal::allocator_type&lt; T &gt;<br class="typebreak"/>
::value_type&#160;</td><td class="memItemRight" valign="bottom"><b>value_type</b></td></tr>
<tr class="separator:a7aba3042b0a1c934879d5299f0c20e7e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6fabbb51a8fd7b270b94fc4d9548847b"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a6fabbb51a8fd7b270b94fc4d9548847b"></a>
typedef value_type *&#160;</td><td class="memItemRight" valign="bottom"><b>pointer</b></td></tr>
<tr class="separator:a6fabbb51a8fd7b270b94fc4d9548847b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a35edf40f1bb3418f61e7d33c9f796824"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a35edf40f1bb3418f61e7d33c9f796824"></a>
typedef const value_type *&#160;</td><td class="memItemRight" valign="bottom"><b>const_pointer</b></td></tr>
<tr class="separator:a35edf40f1bb3418f61e7d33c9f796824"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac9f2f6c7ca74e1f3968d838eec2c4dcb"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ac9f2f6c7ca74e1f3968d838eec2c4dcb"></a>
typedef value_type &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>reference</b></td></tr>
<tr class="separator:ac9f2f6c7ca74e1f3968d838eec2c4dcb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af50d27e385aea41dbb8a9cd0734f1c84"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="af50d27e385aea41dbb8a9cd0734f1c84"></a>
typedef const value_type &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>const_reference</b></td></tr>
<tr class="separator:af50d27e385aea41dbb8a9cd0734f1c84"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a51eed827a49fd636d1d6c73908f9635b"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a51eed827a49fd636d1d6c73908f9635b"></a>
typedef size_t&#160;</td><td class="memItemRight" valign="bottom"><b>size_type</b></td></tr>
<tr class="separator:a51eed827a49fd636d1d6c73908f9635b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8bf47c52cdeee1bc0dcd410cc97faeec"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a8bf47c52cdeee1bc0dcd410cc97faeec"></a>
typedef ptrdiff_t&#160;</td><td class="memItemRight" valign="bottom"><b>difference_type</b></td></tr>
<tr class="separator:a8bf47c52cdeee1bc0dcd410cc97faeec"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:a11b1921251262137671599e99fbe8d4e"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a11b1921251262137671599e99fbe8d4e"></a>
&#160;</td><td class="memItemRight" valign="bottom"><b>cache_aligned_allocator</b> (const <a class="el" href="a00031.html">cache_aligned_allocator</a> &amp;) throw ()</td></tr>
<tr class="separator:a11b1921251262137671599e99fbe8d4e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab5a78cc56dcc0851117b3c88bb3af16a"><td class="memTemplParams" colspan="2"><a class="anchor" id="ab5a78cc56dcc0851117b3c88bb3af16a"></a>
template&lt;typename U &gt; </td></tr>
<tr class="memitem:ab5a78cc56dcc0851117b3c88bb3af16a"><td class="memTemplItemLeft" align="right" valign="top">&#160;</td><td class="memTemplItemRight" valign="bottom"><b>cache_aligned_allocator</b> (const <a class="el" href="a00031.html">cache_aligned_allocator</a>&lt; U &gt; &amp;) throw ()</td></tr>
<tr class="separator:ab5a78cc56dcc0851117b3c88bb3af16a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a39aa68042abff22210f801eab98f6dfa"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a39aa68042abff22210f801eab98f6dfa"></a>
pointer&#160;</td><td class="memItemRight" valign="bottom"><b>address</b> (reference x) const </td></tr>
<tr class="separator:a39aa68042abff22210f801eab98f6dfa"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5bd8fe0e5de894404c8b868b37a0fe53"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a5bd8fe0e5de894404c8b868b37a0fe53"></a>
const_pointer&#160;</td><td class="memItemRight" valign="bottom"><b>address</b> (const_reference x) const </td></tr>
<tr class="separator:a5bd8fe0e5de894404c8b868b37a0fe53"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a99d05096f80877849cb31d80247e0f85"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a99d05096f80877849cb31d80247e0f85"></a>
pointer&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00031.html#a99d05096f80877849cb31d80247e0f85">allocate</a> (size_type n, const void *hint=0)</td></tr>
<tr class="memdesc:a99d05096f80877849cb31d80247e0f85"><td class="mdescLeft">&#160;</td><td class="mdescRight">Allocate space for n objects, starting on a cache/sector line. <br/></td></tr>
<tr class="separator:a99d05096f80877849cb31d80247e0f85"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7f7310e046c4b6b8618864de8e27a471"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a7f7310e046c4b6b8618864de8e27a471"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00031.html#a7f7310e046c4b6b8618864de8e27a471">deallocate</a> (pointer p, size_type)</td></tr>
<tr class="memdesc:a7f7310e046c4b6b8618864de8e27a471"><td class="mdescLeft">&#160;</td><td class="mdescRight">Free block of memory that starts on a cache line. <br/></td></tr>
<tr class="separator:a7f7310e046c4b6b8618864de8e27a471"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4b945b3180ea3dfe16dfa048f4591c6d"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a4b945b3180ea3dfe16dfa048f4591c6d"></a>
size_type&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00031.html#a4b945b3180ea3dfe16dfa048f4591c6d">max_size</a> () const throw ()</td></tr>
<tr class="memdesc:a4b945b3180ea3dfe16dfa048f4591c6d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Largest value for which method allocate might succeed. <br/></td></tr>
<tr class="separator:a4b945b3180ea3dfe16dfa048f4591c6d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab316f80a66b991801b4ec4ea88b852d9"><td class="memTemplParams" colspan="2"><a class="anchor" id="ab316f80a66b991801b4ec4ea88b852d9"></a>
template&lt;typename U , typename... Args&gt; </td></tr>
<tr class="memitem:ab316f80a66b991801b4ec4ea88b852d9"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00031.html#ab316f80a66b991801b4ec4ea88b852d9">construct</a> (U *p, Args &amp;&amp;...args)</td></tr>
<tr class="memdesc:ab316f80a66b991801b4ec4ea88b852d9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Copy-construct value at location pointed to by p. <br/></td></tr>
<tr class="separator:ab316f80a66b991801b4ec4ea88b852d9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac5b39984a3eee60e5bf0f10ef609dc4c"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ac5b39984a3eee60e5bf0f10ef609dc4c"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>construct</b> (pointer p, value_type &amp;&amp;value)</td></tr>
<tr class="separator:ac5b39984a3eee60e5bf0f10ef609dc4c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5086d395a952eb13eb7d72bb0cb26937"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a5086d395a952eb13eb7d72bb0cb26937"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>construct</b> (pointer p, const value_type &amp;value)</td></tr>
<tr class="separator:a5086d395a952eb13eb7d72bb0cb26937"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af2fd054d055403d4ea669fd3af661cc8"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="af2fd054d055403d4ea669fd3af661cc8"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00031.html#af2fd054d055403d4ea669fd3af661cc8">destroy</a> (pointer p)</td></tr>
<tr class="memdesc:af2fd054d055403d4ea669fd3af661cc8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Destroy value at location pointed to by p. <br/></td></tr>
<tr class="separator:af2fd054d055403d4ea669fd3af661cc8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:add25d1a45260a57bf1486a702a3ab583"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="add25d1a45260a57bf1486a702a3ab583"></a>
virtual void&#160;</td><td class="memItemRight" valign="bottom"><b>call</b> ()=0</td></tr>
<tr class="separator:add25d1a45260a57bf1486a702a3ab583"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><h3>template&lt;typename T&gt;<br/>
class tbb::cache_aligned_allocator&lt; T &gt;</h3>
<p>Meets "allocator" requirements of ISO C++ Standard, Section 20.1.5. </p>
<p>The members are ordered the same way they are in section 20.4.1 of the ISO C++ standard. </p>
</div><hr/>The documentation for this class was generated from the following file:<ul>
<li>cache_aligned_allocator.h</li>
<hr/>The documentation for this class was generated from the following file:<ul>
<li>flow_graph_opencl_node.h</li>
</ul>
</div><!-- contents -->
<hr>
Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

+155 -29
View File
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.4"/>
<title>tbb::cache_aligned_allocator&lt; void &gt; Class Template Reference</title>
<title>tbb::captured_exception Class Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -33,48 +33,174 @@
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="a00237.html">tbb</a></li><li class="navelem"><a class="el" href="a00032.html">cache_aligned_allocator< void ></a></li> </ul>
<li class="navelem"><a class="el" href="a00234.html">tbb</a></li><li class="navelem"><a class="el" href="a00032.html">captured_exception</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#nested-classes">Classes</a> &#124;
<a href="#pub-types">Public Types</a> &#124;
<a href="a00274.html">List of all members</a> </div>
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="a00320.html">List of all members</a> </div>
<div class="headertitle">
<div class="title">tbb::cache_aligned_allocator&lt; void &gt; Class Template Reference<div class="ingroups"><a class="el" href="a00259.html">Memory Allocation</a></div></div> </div>
<div class="title">tbb::captured_exception Class Reference</div> </div>
</div><!--header-->
<div class="contents">
<p>Analogous to std::allocator&lt;void&gt;, as defined in ISO C++ Standard, Section 20.4.1.
<p>This class is used by TBB to propagate information about unhandled exceptions into the root thread.
<a href="a00032.html#details">More...</a></p>
<p><code>#include &lt;cache_aligned_allocator.h&gt;</code></p>
<p><code>#include &lt;tbb_exception.h&gt;</code></p>
<div class="dynheader">
Inheritance diagram for tbb::captured_exception:</div>
<div class="dyncontent">
<div class="center">
<img src="a00032.png" usemap="#tbb::captured_exception_map" alt=""/>
<map id="tbb::captured_exception_map" name="tbb::captured_exception_map">
<area href="a00155.html" title="Interface to be implemented by all exceptions TBB recognizes and propagates across the threads..." alt="tbb::tbb_exception" shape="rect" coords="0,56,146,80"/>
</map>
</div></div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
Classes</h2></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00112.html">rebind</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-types"></a>
Public Types</h2></td></tr>
<tr class="memitem:a630325567e2ede3937a0d2e0f2da6a3f"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a630325567e2ede3937a0d2e0f2da6a3f"></a>
typedef void *&#160;</td><td class="memItemRight" valign="bottom"><b>pointer</b></td></tr>
<tr class="separator:a630325567e2ede3937a0d2e0f2da6a3f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a36f63efa0a37d205705b9d5944432864"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a36f63efa0a37d205705b9d5944432864"></a>
typedef const void *&#160;</td><td class="memItemRight" valign="bottom"><b>const_pointer</b></td></tr>
<tr class="separator:a36f63efa0a37d205705b9d5944432864"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af7f973d0bb12319600505cf9c1fb35b0"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="af7f973d0bb12319600505cf9c1fb35b0"></a>
typedef void&#160;</td><td class="memItemRight" valign="bottom"><b>value_type</b></td></tr>
<tr class="separator:af7f973d0bb12319600505cf9c1fb35b0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:a56f6c51b6d4f8ce31669457ff8f0c07f"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a56f6c51b6d4f8ce31669457ff8f0c07f"></a>
&#160;</td><td class="memItemRight" valign="bottom"><b>captured_exception</b> (const <a class="el" href="a00032.html">captured_exception</a> &amp;src)</td></tr>
<tr class="separator:a56f6c51b6d4f8ce31669457ff8f0c07f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab3d72662db6a2badffa95a649a6c0bdd"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ab3d72662db6a2badffa95a649a6c0bdd"></a>
&#160;</td><td class="memItemRight" valign="bottom"><b>captured_exception</b> (const char *name_, const char *info)</td></tr>
<tr class="separator:ab3d72662db6a2badffa95a649a6c0bdd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a78a66603238d40da9ec6a750b6a2425c"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a78a66603238d40da9ec6a750b6a2425c"></a>
<a class="el" href="a00032.html">captured_exception</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>operator=</b> (const <a class="el" href="a00032.html">captured_exception</a> &amp;src)</td></tr>
<tr class="separator:a78a66603238d40da9ec6a750b6a2425c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3b75205c631b51a00faf98c9e107f78a"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00032.html">captured_exception</a> <br class="typebreak"/>
*__TBB_EXPORTED_METHOD&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00032.html#a3b75205c631b51a00faf98c9e107f78a">move</a> () __TBB_override throw ()</td></tr>
<tr class="memdesc:a3b75205c631b51a00faf98c9e107f78a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates and returns pointer to the deep copy of this exception object. <a href="#a3b75205c631b51a00faf98c9e107f78a">More...</a><br/></td></tr>
<tr class="separator:a3b75205c631b51a00faf98c9e107f78a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abfc1220a6f9da0361082a3f3ad80cdc9"><td class="memItemLeft" align="right" valign="top">void __TBB_EXPORTED_METHOD&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00032.html#abfc1220a6f9da0361082a3f3ad80cdc9">destroy</a> () __TBB_override throw ()</td></tr>
<tr class="memdesc:abfc1220a6f9da0361082a3f3ad80cdc9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Destroys objects created by the <a class="el" href="a00032.html#a3b75205c631b51a00faf98c9e107f78a" title="Creates and returns pointer to the deep copy of this exception object. ">move()</a> method. <a href="#abfc1220a6f9da0361082a3f3ad80cdc9">More...</a><br/></td></tr>
<tr class="separator:abfc1220a6f9da0361082a3f3ad80cdc9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6df0d3a1943ca6f84a9a9aca25e9633d"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00032.html#a6df0d3a1943ca6f84a9a9aca25e9633d">throw_self</a> () __TBB_override</td></tr>
<tr class="memdesc:a6df0d3a1943ca6f84a9a9aca25e9633d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Throws this exception object. <a href="#a6df0d3a1943ca6f84a9a9aca25e9633d">More...</a><br/></td></tr>
<tr class="separator:a6df0d3a1943ca6f84a9a9aca25e9633d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a543e1a18c9a3f3b093c8c2bd927a6d12"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a543e1a18c9a3f3b093c8c2bd927a6d12"></a>
const char *__TBB_EXPORTED_METHOD&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00032.html#a543e1a18c9a3f3b093c8c2bd927a6d12">name</a> () const __TBB_override throw ()</td></tr>
<tr class="memdesc:a543e1a18c9a3f3b093c8c2bd927a6d12"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns RTTI name of the originally intercepted exception. <br/></td></tr>
<tr class="separator:a543e1a18c9a3f3b093c8c2bd927a6d12"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1e9d36a304dd7e49906754a0cb72da2e"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a1e9d36a304dd7e49906754a0cb72da2e"></a>
const char *__TBB_EXPORTED_METHOD&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00032.html#a1e9d36a304dd7e49906754a0cb72da2e">what</a> () const __TBB_override throw ()</td></tr>
<tr class="memdesc:a1e9d36a304dd7e49906754a0cb72da2e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the result of originally intercepted exception's <a class="el" href="a00032.html#a1e9d36a304dd7e49906754a0cb72da2e" title="Returns the result of originally intercepted exception&#39;s what() method. ">what()</a> method. <br/></td></tr>
<tr class="separator:a1e9d36a304dd7e49906754a0cb72da2e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa72deb29316e8c08700f7e6afa4a48e8"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aa72deb29316e8c08700f7e6afa4a48e8"></a>
void __TBB_EXPORTED_METHOD&#160;</td><td class="memItemRight" valign="bottom"><b>set</b> (const char *<a class="el" href="a00032.html#a543e1a18c9a3f3b093c8c2bd927a6d12">name</a>, const char *info) throw ()</td></tr>
<tr class="separator:aa72deb29316e8c08700f7e6afa4a48e8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0b160c0fc5d2fab90df2be96ea14088a"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a0b160c0fc5d2fab90df2be96ea14088a"></a>
void __TBB_EXPORTED_METHOD&#160;</td><td class="memItemRight" valign="bottom"><b>clear</b> () throw ()</td></tr>
<tr class="separator:a0b160c0fc5d2fab90df2be96ea14088a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_methods_a00155"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_a00155')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="a00155.html">tbb::tbb_exception</a></td></tr>
<tr class="memitem:a6a973c37078afedf7d457ff4704bf8cd inherit pub_methods_a00155"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00155.html#a6a973c37078afedf7d457ff4704bf8cd">operator delete</a> (void *p)</td></tr>
<tr class="separator:a6a973c37078afedf7d457ff4704bf8cd inherit pub_methods_a00155"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><h3>template&lt;&gt;<br/>
class tbb::cache_aligned_allocator&lt; void &gt;</h3>
<div class="textblock"><p>This class is used by TBB to propagate information about unhandled exceptions into the root thread. </p>
<p>Exception of this type is thrown by TBB in the root thread (thread that started a parallel algorithm ) if an unhandled exception was intercepted during the algorithm execution in one of the workers. </p>
<dl class="section see"><dt>See Also</dt><dd><a class="el" href="a00155.html" title="Interface to be implemented by all exceptions TBB recognizes and propagates across the threads...">tbb::tbb_exception</a> </dd></dl>
</div><h2 class="groupheader">Member Function Documentation</h2>
<a class="anchor" id="abfc1220a6f9da0361082a3f3ad80cdc9"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void __TBB_EXPORTED_METHOD tbb::captured_exception::destroy </td>
<td>(</td>
<td class="paramname">)</td><td></td>
<td></td>
</tr>
<tr>
<td align="right">throw </td><td>(</td><td colspan="2"></td>
</tr>
<tr>
<td align="right"></td><td>)</td><td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Analogous to std::allocator&lt;void&gt;, as defined in ISO C++ Standard, Section 20.4.1. </p>
</div><hr/>The documentation for this class was generated from the following file:<ul>
<li>cache_aligned_allocator.h</li>
<p>Destroys objects created by the <a class="el" href="a00032.html#a3b75205c631b51a00faf98c9e107f78a" title="Creates and returns pointer to the deep copy of this exception object. ">move()</a> method. </p>
<p>Frees memory and calls destructor for this exception object. Can and must be used only on objects created by the move method. </p>
<p>Implements <a class="el" href="a00155.html#ad3bc09bf78c33f19a0bcdf882fdf9d41">tbb::tbb_exception</a>.</p>
</div>
</div>
<a class="anchor" id="a3b75205c631b51a00faf98c9e107f78a"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="a00032.html">captured_exception</a>* __TBB_EXPORTED_METHOD tbb::captured_exception::move </td>
<td>(</td>
<td class="paramname">)</td><td></td>
<td></td>
</tr>
<tr>
<td align="right">throw </td><td>(</td><td colspan="2"></td>
</tr>
<tr>
<td align="right"></td><td>)</td><td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Creates and returns pointer to the deep copy of this exception object. </p>
<p>Move semantics is allowed. </p>
<p>Implements <a class="el" href="a00155.html#a4bd4ba0d501021013d1473d21b020b69">tbb::tbb_exception</a>.</p>
</div>
</div>
<a class="anchor" id="a6df0d3a1943ca6f84a9a9aca25e9633d"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void tbb::captured_exception::throw_self </td>
<td>(</td>
<td class="paramname">)</td><td></td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Throws this exception object. </p>
<p>Make sure that if you have several levels of derivation from this interface you implement or override this method on the most derived level. The implementation is as simple as "throw *this;". Failure to do this will result in exception of a base class type being thrown. </p>
<p>Implements <a class="el" href="a00155.html#ae45c08d36c7ec7ae91785da3515a8828">tbb::tbb_exception</a>.</p>
</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
<li>tbb_exception.h</li>
</ul>
</div><!-- contents -->
<hr>
Binary file not shown.

After

Width:  |  Height:  |  Size: 835 B

+53 -19
View File
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.4"/>
<title>tbb::interface5::concurrent_hash_map&lt; Key, T, HashCompare, A &gt;::call_clear_on_leave Struct Reference</title>
<title>tbb::combinable&lt; T &gt; Class Template Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -33,36 +33,70 @@
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="a00237.html">tbb</a></li><li class="navelem"><b>interface5</b></li><li class="navelem"><a class="el" href="a00040.html">concurrent_hash_map</a></li><li class="navelem"><a class="el" href="a00033.html">call_clear_on_leave</a></li> </ul>
<li class="navelem"><a class="el" href="a00234.html">tbb</a></li><li class="navelem"><a class="el" href="a00033.html">combinable</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#pub-attribs">Public Attributes</a> &#124;
<a href="a00365.html">List of all members</a> </div>
<a href="a00272.html">List of all members</a> </div>
<div class="headertitle">
<div class="title">tbb::interface5::concurrent_hash_map&lt; Key, T, HashCompare, A &gt;::call_clear_on_leave Struct Reference</div> </div>
<div class="title">tbb::combinable&lt; T &gt; Class Template Reference<div class="ingroups"><a class="el" href="a00254.html">Containers</a></div></div> </div>
</div><!--header-->
<div class="contents">
<p>Thread-local storage with optional reduction.
<a href="a00033.html#details">More...</a></p>
<p><code>#include &lt;combinable.h&gt;</code></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:a4b242f28514cb0e4fb2e462c8fead03e"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a4b242f28514cb0e4fb2e462c8fead03e"></a>
&#160;</td><td class="memItemRight" valign="bottom"><b>call_clear_on_leave</b> (<a class="el" href="a00040.html">concurrent_hash_map</a> *a_ch_map)</td></tr>
<tr class="separator:a4b242f28514cb0e4fb2e462c8fead03e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0e56acf6cbc5a9bc38018a8640050054"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a0e56acf6cbc5a9bc38018a8640050054"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>dismiss</b> ()</td></tr>
<tr class="separator:a0e56acf6cbc5a9bc38018a8640050054"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
Public Attributes</h2></td></tr>
<tr class="memitem:a22e1559dccd2fd4345ca0ff389c6ad29"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a22e1559dccd2fd4345ca0ff389c6ad29"></a>
<a class="el" href="a00040.html">concurrent_hash_map</a> *&#160;</td><td class="memItemRight" valign="bottom"><b>my_ch_map</b></td></tr>
<tr class="separator:a22e1559dccd2fd4345ca0ff389c6ad29"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab3c539d5731faaafd81979b207a4fa1f"><td class="memTemplParams" colspan="2"><a class="anchor" id="ab3c539d5731faaafd81979b207a4fa1f"></a>
template&lt;typename finit &gt; </td></tr>
<tr class="memitem:ab3c539d5731faaafd81979b207a4fa1f"><td class="memTemplItemLeft" align="right" valign="top">&#160;</td><td class="memTemplItemRight" valign="bottom"><b>combinable</b> (finit _finit)</td></tr>
<tr class="separator:ab3c539d5731faaafd81979b207a4fa1f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a52f00cf262d768048db72ab73c8f3ca4"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a52f00cf262d768048db72ab73c8f3ca4"></a>
&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00033.html#a52f00cf262d768048db72ab73c8f3ca4">~combinable</a> ()</td></tr>
<tr class="memdesc:a52f00cf262d768048db72ab73c8f3ca4"><td class="mdescLeft">&#160;</td><td class="mdescRight">destructor <br/></td></tr>
<tr class="separator:a52f00cf262d768048db72ab73c8f3ca4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a376f44cba71450fc18ccddaad61b76cc"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a376f44cba71450fc18ccddaad61b76cc"></a>
&#160;</td><td class="memItemRight" valign="bottom"><b>combinable</b> (const <a class="el" href="a00033.html">combinable</a> &amp;other)</td></tr>
<tr class="separator:a376f44cba71450fc18ccddaad61b76cc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae227b3906cd4ee6e5e2e5e840a3ff8e6"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ae227b3906cd4ee6e5e2e5e840a3ff8e6"></a>
&#160;</td><td class="memItemRight" valign="bottom"><b>combinable</b> (<a class="el" href="a00033.html">combinable</a> &amp;&amp;other)</td></tr>
<tr class="separator:ae227b3906cd4ee6e5e2e5e840a3ff8e6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab011fbe2f0600900b6e1b9760d82aead"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ab011fbe2f0600900b6e1b9760d82aead"></a>
<a class="el" href="a00033.html">combinable</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>operator=</b> (const <a class="el" href="a00033.html">combinable</a> &amp;other)</td></tr>
<tr class="separator:ab011fbe2f0600900b6e1b9760d82aead"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a780f6aeeed80b1c974f22c76907df8c9"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a780f6aeeed80b1c974f22c76907df8c9"></a>
<a class="el" href="a00033.html">combinable</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>operator=</b> (<a class="el" href="a00033.html">combinable</a> &amp;&amp;other)</td></tr>
<tr class="separator:a780f6aeeed80b1c974f22c76907df8c9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8ecfe80161a59f04ffd9676e79701de6"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a8ecfe80161a59f04ffd9676e79701de6"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>clear</b> ()</td></tr>
<tr class="separator:a8ecfe80161a59f04ffd9676e79701de6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae47f982dbd396d225f0f546e60690d42"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ae47f982dbd396d225f0f546e60690d42"></a>
T &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>local</b> ()</td></tr>
<tr class="separator:ae47f982dbd396d225f0f546e60690d42"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2433d2b3b53b9979d0b3bb2a175abc9b"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a2433d2b3b53b9979d0b3bb2a175abc9b"></a>
T &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>local</b> (bool &amp;exists)</td></tr>
<tr class="separator:a2433d2b3b53b9979d0b3bb2a175abc9b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3d564f6d480e0c7fe8e756d1de1cf0e2"><td class="memTemplParams" colspan="2"><a class="anchor" id="a3d564f6d480e0c7fe8e756d1de1cf0e2"></a>
template&lt;typename combine_func_t &gt; </td></tr>
<tr class="memitem:a3d564f6d480e0c7fe8e756d1de1cf0e2"><td class="memTemplItemLeft" align="right" valign="top">T&#160;</td><td class="memTemplItemRight" valign="bottom"><b>combine</b> (combine_func_t f_combine)</td></tr>
<tr class="separator:a3d564f6d480e0c7fe8e756d1de1cf0e2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aadadee714004d977f0e95a479bfb80ac"><td class="memTemplParams" colspan="2"><a class="anchor" id="aadadee714004d977f0e95a479bfb80ac"></a>
template&lt;typename combine_func_t &gt; </td></tr>
<tr class="memitem:aadadee714004d977f0e95a479bfb80ac"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><b>combine_each</b> (combine_func_t f_combine)</td></tr>
<tr class="separator:aadadee714004d977f0e95a479bfb80ac"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<hr/>The documentation for this struct was generated from the following file:<ul>
<li>concurrent_hash_map.h</li>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><h3>template&lt;typename T&gt;<br/>
class tbb::combinable&lt; T &gt;</h3>
<p>Thread-local storage with optional reduction. </p>
</div><hr/>The documentation for this class was generated from the following file:<ul>
<li>combinable.h</li>
</ul>
</div><!-- contents -->
<hr>
+4 -26
View File
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.4"/>
<title>tbb::flow::interface10::callback&lt; Callback, T &gt; Class Template Reference</title>
<title>tbb::interface6::internal::concrete_filter&lt; T, U, Body &gt; Class Template Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -33,38 +33,16 @@
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="a00237.html">tbb</a></li><li class="navelem"><b>flow</b></li><li class="navelem"><b>interface10</b></li><li class="navelem"><a class="el" href="a00034.html">callback</a></li> </ul>
<li class="navelem"><a class="el" href="a00234.html">tbb</a></li><li class="navelem"><b>interface6</b></li><li class="navelem"><b>internal</b></li><li class="navelem"><a class="el" href="a00034.html">concrete_filter</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="a00339.html">List of all members</a> </div>
<div class="headertitle">
<div class="title">tbb::flow::interface10::callback&lt; Callback, T &gt; Class Template Reference</div> </div>
<div class="title">tbb::interface6::internal::concrete_filter&lt; T, U, Body &gt; Class Template Reference</div> </div>
</div><!--header-->
<div class="contents">
<div class="dynheader">
Inheritance diagram for tbb::flow::interface10::callback&lt; Callback, T &gt;:</div>
<div class="dyncontent">
<div class="center">
<img src="a00034.png" usemap="#tbb::flow::interface10::callback&lt; Callback, T &gt;_map" alt=""/>
<map id="tbb::flow::interface10::callback&lt; Callback, T &gt;_map" name="tbb::flow::interface10::callback&lt; Callback, T &gt;_map">
<area href="a00035.html" alt="tbb::flow::interface10::callback_base" shape="rect" coords="0,56,270,80"/>
</map>
</div></div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:a4dc2b032a93148fd48a7034532328e18"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a4dc2b032a93148fd48a7034532328e18"></a>
&#160;</td><td class="memItemRight" valign="bottom"><b>callback</b> (Callback c, const T &amp;t)</td></tr>
<tr class="separator:a4dc2b032a93148fd48a7034532328e18"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa0b459c3cb4e56835c06434ee769c156"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aa0b459c3cb4e56835c06434ee769c156"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>call</b> () __TBB_override</td></tr>
<tr class="separator:aa0b459c3cb4e56835c06434ee769c156"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<hr/>The documentation for this class was generated from the following file:<ul>
<li>flow_graph_opencl_node.h</li>
<li>pipeline.h</li>
</ul>
</div><!-- contents -->
<hr>
Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 KiB

+348 -12
View File
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.4"/>
<title>tbb::flow::interface10::callback_base Class Reference</title>
<title>tbb::concurrent_bounded_queue&lt; T, A &gt; Class Template Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -33,35 +33,371 @@
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="a00237.html">tbb</a></li><li class="navelem"><b>flow</b></li><li class="navelem"><b>interface10</b></li><li class="navelem"><a class="el" href="a00035.html">callback_base</a></li> </ul>
<li class="navelem"><a class="el" href="a00234.html">tbb</a></li><li class="navelem"><a class="el" href="a00035.html">concurrent_bounded_queue</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#nested-classes">Classes</a> &#124;
<a href="#pub-types">Public Types</a> &#124;
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="a00338.html">List of all members</a> </div>
<a href="#friends">Friends</a> &#124;
<a href="a00273.html">List of all members</a> </div>
<div class="headertitle">
<div class="title">tbb::flow::interface10::callback_base Class Reference<span class="mlabels"><span class="mlabel">abstract</span></span></div> </div>
<div class="title">tbb::concurrent_bounded_queue&lt; T, A &gt; Class Template Reference<div class="ingroups"><a class="el" href="a00254.html">Containers</a></div></div> </div>
</div><!--header-->
<div class="contents">
<p>A high-performance thread-safe blocking concurrent bounded queue.
<a href="a00035.html#details">More...</a></p>
<p><code>#include &lt;concurrent_queue.h&gt;</code></p>
<div class="dynheader">
Inheritance diagram for tbb::flow::interface10::callback_base:</div>
Inheritance diagram for tbb::concurrent_bounded_queue&lt; T, A &gt;:</div>
<div class="dyncontent">
<div class="center">
<img src="a00035.png" usemap="#tbb::flow::interface10::callback_base_map" alt=""/>
<map id="tbb::flow::interface10::callback_base_map" name="tbb::flow::interface10::callback_base_map">
<area href="a00034.html" alt="tbb::flow::interface10::callback&lt; Callback, T &gt;" shape="rect" coords="0,112,270,136"/>
<img src="a00035.png" usemap="#tbb::concurrent_bounded_queue&lt; T, A &gt;_map" alt=""/>
<map id="tbb::concurrent_bounded_queue&lt; T, A &gt;_map" name="tbb::concurrent_bounded_queue&lt; T, A &gt;_map">
</map>
</div></div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-types"></a>
Public Types</h2></td></tr>
<tr class="memitem:a6eb564625fef03dd9a5881d5d4e52f9f"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a6eb564625fef03dd9a5881d5d4e52f9f"></a>
typedef T&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00035.html#a6eb564625fef03dd9a5881d5d4e52f9f">value_type</a></td></tr>
<tr class="memdesc:a6eb564625fef03dd9a5881d5d4e52f9f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Element type in the queue. <br/></td></tr>
<tr class="separator:a6eb564625fef03dd9a5881d5d4e52f9f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acbfceb845de1c770e2b56409f09b0364"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="acbfceb845de1c770e2b56409f09b0364"></a>
typedef A&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00035.html#acbfceb845de1c770e2b56409f09b0364">allocator_type</a></td></tr>
<tr class="memdesc:acbfceb845de1c770e2b56409f09b0364"><td class="mdescLeft">&#160;</td><td class="mdescRight">Allocator type. <br/></td></tr>
<tr class="separator:acbfceb845de1c770e2b56409f09b0364"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5fa4002bcd265d9d3ed305e3b686f1da"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a5fa4002bcd265d9d3ed305e3b686f1da"></a>
typedef T &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00035.html#a5fa4002bcd265d9d3ed305e3b686f1da">reference</a></td></tr>
<tr class="memdesc:a5fa4002bcd265d9d3ed305e3b686f1da"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reference type. <br/></td></tr>
<tr class="separator:a5fa4002bcd265d9d3ed305e3b686f1da"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af838e520ce0db2c22369748c019b11cb"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="af838e520ce0db2c22369748c019b11cb"></a>
typedef const T &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00035.html#af838e520ce0db2c22369748c019b11cb">const_reference</a></td></tr>
<tr class="memdesc:af838e520ce0db2c22369748c019b11cb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Const reference type. <br/></td></tr>
<tr class="separator:af838e520ce0db2c22369748c019b11cb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae73fa352d781bdb9d01bfb77f2a8bc28"><td class="memItemLeft" align="right" valign="top">typedef std::ptrdiff_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00035.html#ae73fa352d781bdb9d01bfb77f2a8bc28">size_type</a></td></tr>
<tr class="memdesc:ae73fa352d781bdb9d01bfb77f2a8bc28"><td class="mdescLeft">&#160;</td><td class="mdescRight">Integral type for representing size of the queue. <a href="#ae73fa352d781bdb9d01bfb77f2a8bc28">More...</a><br/></td></tr>
<tr class="separator:ae73fa352d781bdb9d01bfb77f2a8bc28"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a72725361e050c5a981035a20ef1b773e"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a72725361e050c5a981035a20ef1b773e"></a>
typedef std::ptrdiff_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00035.html#a72725361e050c5a981035a20ef1b773e">difference_type</a></td></tr>
<tr class="memdesc:a72725361e050c5a981035a20ef1b773e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Difference type for iterator. <br/></td></tr>
<tr class="separator:a72725361e050c5a981035a20ef1b773e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a42dfb71b1e4bdc0da3c1217d0d40ddd5"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a42dfb71b1e4bdc0da3c1217d0d40ddd5"></a>
typedef <br class="typebreak"/>
internal::concurrent_queue_iterator<br class="typebreak"/>
&lt; <a class="el" href="a00035.html">concurrent_bounded_queue</a>, T &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>iterator</b></td></tr>
<tr class="separator:a42dfb71b1e4bdc0da3c1217d0d40ddd5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a18049841284051e18b854692bd04602c"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a18049841284051e18b854692bd04602c"></a>
typedef <br class="typebreak"/>
internal::concurrent_queue_iterator<br class="typebreak"/>
&lt; <a class="el" href="a00035.html">concurrent_bounded_queue</a>, <br class="typebreak"/>
const T &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>const_iterator</b></td></tr>
<tr class="separator:a18049841284051e18b854692bd04602c"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:ad46b9f76e7c7f26d23698935bb6d7f39"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ad46b9f76e7c7f26d23698935bb6d7f39"></a>
virtual void&#160;</td><td class="memItemRight" valign="bottom"><b>call</b> ()=0</td></tr>
<tr class="separator:ad46b9f76e7c7f26d23698935bb6d7f39"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a85f8a800cae02b601f36ad7a655a0126"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a85f8a800cae02b601f36ad7a655a0126"></a>
&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00035.html#a85f8a800cae02b601f36ad7a655a0126">concurrent_bounded_queue</a> (const <a class="el" href="a00035.html#acbfceb845de1c770e2b56409f09b0364">allocator_type</a> &amp;a=<a class="el" href="a00035.html#acbfceb845de1c770e2b56409f09b0364">allocator_type</a>())</td></tr>
<tr class="memdesc:a85f8a800cae02b601f36ad7a655a0126"><td class="mdescLeft">&#160;</td><td class="mdescRight">Construct empty queue. <br/></td></tr>
<tr class="separator:a85f8a800cae02b601f36ad7a655a0126"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aad6fd2353d64c2c31d074cd99df58c02"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aad6fd2353d64c2c31d074cd99df58c02"></a>
&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00035.html#aad6fd2353d64c2c31d074cd99df58c02">concurrent_bounded_queue</a> (const <a class="el" href="a00035.html">concurrent_bounded_queue</a> &amp;src, const <a class="el" href="a00035.html#acbfceb845de1c770e2b56409f09b0364">allocator_type</a> &amp;a=<a class="el" href="a00035.html#acbfceb845de1c770e2b56409f09b0364">allocator_type</a>())</td></tr>
<tr class="memdesc:aad6fd2353d64c2c31d074cd99df58c02"><td class="mdescLeft">&#160;</td><td class="mdescRight">Copy constructor. <br/></td></tr>
<tr class="separator:aad6fd2353d64c2c31d074cd99df58c02"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a228b9d3bf3158a9379748894a93fbe55"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a228b9d3bf3158a9379748894a93fbe55"></a>
&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00035.html#a228b9d3bf3158a9379748894a93fbe55">concurrent_bounded_queue</a> (<a class="el" href="a00035.html">concurrent_bounded_queue</a> &amp;&amp;src)</td></tr>
<tr class="memdesc:a228b9d3bf3158a9379748894a93fbe55"><td class="mdescLeft">&#160;</td><td class="mdescRight">Move constructors. <br/></td></tr>
<tr class="separator:a228b9d3bf3158a9379748894a93fbe55"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aed0303dafc38c5088ae62ac023fffb4e"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aed0303dafc38c5088ae62ac023fffb4e"></a>
&#160;</td><td class="memItemRight" valign="bottom"><b>concurrent_bounded_queue</b> (<a class="el" href="a00035.html">concurrent_bounded_queue</a> &amp;&amp;src, const <a class="el" href="a00035.html#acbfceb845de1c770e2b56409f09b0364">allocator_type</a> &amp;a)</td></tr>
<tr class="separator:aed0303dafc38c5088ae62ac023fffb4e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afcfdc998e106fdb7b2dfa5df880cd9cf"><td class="memTemplParams" colspan="2"><a class="anchor" id="afcfdc998e106fdb7b2dfa5df880cd9cf"></a>
template&lt;typename InputIterator &gt; </td></tr>
<tr class="memitem:afcfdc998e106fdb7b2dfa5df880cd9cf"><td class="memTemplItemLeft" align="right" valign="top">&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00035.html#afcfdc998e106fdb7b2dfa5df880cd9cf">concurrent_bounded_queue</a> (InputIterator begin, InputIterator end, const <a class="el" href="a00035.html#acbfceb845de1c770e2b56409f09b0364">allocator_type</a> &amp;a=<a class="el" href="a00035.html#acbfceb845de1c770e2b56409f09b0364">allocator_type</a>())</td></tr>
<tr class="memdesc:afcfdc998e106fdb7b2dfa5df880cd9cf"><td class="mdescLeft">&#160;</td><td class="mdescRight">[begin,end) constructor <br/></td></tr>
<tr class="separator:afcfdc998e106fdb7b2dfa5df880cd9cf"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab1291bf6837ecfb8836c24dde5dd80b5"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ab1291bf6837ecfb8836c24dde5dd80b5"></a>
&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00035.html#ab1291bf6837ecfb8836c24dde5dd80b5">~concurrent_bounded_queue</a> ()</td></tr>
<tr class="memdesc:ab1291bf6837ecfb8836c24dde5dd80b5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Destroy queue. <br/></td></tr>
<tr class="separator:ab1291bf6837ecfb8836c24dde5dd80b5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae5e9051772bbc93b2ccb8fd0a98a21f5"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ae5e9051772bbc93b2ccb8fd0a98a21f5"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00035.html#ae5e9051772bbc93b2ccb8fd0a98a21f5">push</a> (const T &amp;source)</td></tr>
<tr class="memdesc:ae5e9051772bbc93b2ccb8fd0a98a21f5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Enqueue an item at tail of queue. <br/></td></tr>
<tr class="separator:ae5e9051772bbc93b2ccb8fd0a98a21f5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a62a03e9c185562254ecb4104f38c106d"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a62a03e9c185562254ecb4104f38c106d"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00035.html#a62a03e9c185562254ecb4104f38c106d">push</a> (T &amp;&amp;source)</td></tr>
<tr class="memdesc:a62a03e9c185562254ecb4104f38c106d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Move an item at tail of queue. <br/></td></tr>
<tr class="separator:a62a03e9c185562254ecb4104f38c106d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab9009e8a1bdf70623f6480681bb6b56a"><td class="memTemplParams" colspan="2"><a class="anchor" id="ab9009e8a1bdf70623f6480681bb6b56a"></a>
template&lt;typename... Arguments&gt; </td></tr>
<tr class="memitem:ab9009e8a1bdf70623f6480681bb6b56a"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><b>emplace</b> (Arguments &amp;&amp;...args)</td></tr>
<tr class="separator:ab9009e8a1bdf70623f6480681bb6b56a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a87926c31967a918ce80690a9ed5d6fa8"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00035.html#a87926c31967a918ce80690a9ed5d6fa8">pop</a> (T &amp;destination)</td></tr>
<tr class="memdesc:a87926c31967a918ce80690a9ed5d6fa8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Dequeue item from head of queue. <a href="#a87926c31967a918ce80690a9ed5d6fa8">More...</a><br/></td></tr>
<tr class="separator:a87926c31967a918ce80690a9ed5d6fa8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a77a755d94cabf5208905d10d5b57419c"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a77a755d94cabf5208905d10d5b57419c"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00035.html#a77a755d94cabf5208905d10d5b57419c">abort</a> ()</td></tr>
<tr class="memdesc:a77a755d94cabf5208905d10d5b57419c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Abort all pending queue operations. <br/></td></tr>
<tr class="separator:a77a755d94cabf5208905d10d5b57419c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a03d93a240841a21788396bebd71c51bd"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00035.html#a03d93a240841a21788396bebd71c51bd">try_push</a> (const T &amp;source)</td></tr>
<tr class="memdesc:a03d93a240841a21788396bebd71c51bd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Enqueue an item at tail of queue if queue is not already full. <a href="#a03d93a240841a21788396bebd71c51bd">More...</a><br/></td></tr>
<tr class="separator:a03d93a240841a21788396bebd71c51bd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a93f35e9d9381629e0a2993f9fdd96d92"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00035.html#a93f35e9d9381629e0a2993f9fdd96d92">try_push</a> (T &amp;&amp;source)</td></tr>
<tr class="memdesc:a93f35e9d9381629e0a2993f9fdd96d92"><td class="mdescLeft">&#160;</td><td class="mdescRight">Move an item at tail of queue if queue is not already full. <a href="#a93f35e9d9381629e0a2993f9fdd96d92">More...</a><br/></td></tr>
<tr class="separator:a93f35e9d9381629e0a2993f9fdd96d92"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0a4351eb8c93b6b2d9feaff0c7088ee8"><td class="memTemplParams" colspan="2"><a class="anchor" id="a0a4351eb8c93b6b2d9feaff0c7088ee8"></a>
template&lt;typename... Arguments&gt; </td></tr>
<tr class="memitem:a0a4351eb8c93b6b2d9feaff0c7088ee8"><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><b>try_emplace</b> (Arguments &amp;&amp;...args)</td></tr>
<tr class="separator:a0a4351eb8c93b6b2d9feaff0c7088ee8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3086cb4dcdeee245ef5cf34f72fb3e10"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00035.html#a3086cb4dcdeee245ef5cf34f72fb3e10">try_pop</a> (T &amp;destination)</td></tr>
<tr class="memdesc:a3086cb4dcdeee245ef5cf34f72fb3e10"><td class="mdescLeft">&#160;</td><td class="mdescRight">Attempt to dequeue an item from head of queue. <a href="#a3086cb4dcdeee245ef5cf34f72fb3e10">More...</a><br/></td></tr>
<tr class="separator:a3086cb4dcdeee245ef5cf34f72fb3e10"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9d6c20fd8c193c12b6a7b0c3101fd966"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00035.html#ae73fa352d781bdb9d01bfb77f2a8bc28">size_type</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00035.html#a9d6c20fd8c193c12b6a7b0c3101fd966">size</a> () const </td></tr>
<tr class="memdesc:a9d6c20fd8c193c12b6a7b0c3101fd966"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return number of pushes minus number of pops. <a href="#a9d6c20fd8c193c12b6a7b0c3101fd966">More...</a><br/></td></tr>
<tr class="separator:a9d6c20fd8c193c12b6a7b0c3101fd966"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8c59578f28c5fb4718b0eff43776e879"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a8c59578f28c5fb4718b0eff43776e879"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00035.html#a8c59578f28c5fb4718b0eff43776e879">empty</a> () const </td></tr>
<tr class="memdesc:a8c59578f28c5fb4718b0eff43776e879"><td class="mdescLeft">&#160;</td><td class="mdescRight">Equivalent to <a class="el" href="a00035.html#a9d6c20fd8c193c12b6a7b0c3101fd966" title="Return number of pushes minus number of pops. ">size()</a>&lt;=0. <br/></td></tr>
<tr class="separator:a8c59578f28c5fb4718b0eff43776e879"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a526487063242569685af8c8d778d39e0"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a526487063242569685af8c8d778d39e0"></a>
<a class="el" href="a00035.html#ae73fa352d781bdb9d01bfb77f2a8bc28">size_type</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00035.html#a526487063242569685af8c8d778d39e0">capacity</a> () const </td></tr>
<tr class="memdesc:a526487063242569685af8c8d778d39e0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Maximum number of allowed elements. <br/></td></tr>
<tr class="separator:a526487063242569685af8c8d778d39e0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a768699675813575eec08c1f43afda395"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00035.html#a768699675813575eec08c1f43afda395">set_capacity</a> (<a class="el" href="a00035.html#ae73fa352d781bdb9d01bfb77f2a8bc28">size_type</a> new_capacity)</td></tr>
<tr class="memdesc:a768699675813575eec08c1f43afda395"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the capacity. <a href="#a768699675813575eec08c1f43afda395">More...</a><br/></td></tr>
<tr class="separator:a768699675813575eec08c1f43afda395"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aaeba11bbcd368a7a3a6e6e2dd3082c9c"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aaeba11bbcd368a7a3a6e6e2dd3082c9c"></a>
<a class="el" href="a00035.html#acbfceb845de1c770e2b56409f09b0364">allocator_type</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00035.html#aaeba11bbcd368a7a3a6e6e2dd3082c9c">get_allocator</a> () const </td></tr>
<tr class="memdesc:aaeba11bbcd368a7a3a6e6e2dd3082c9c"><td class="mdescLeft">&#160;</td><td class="mdescRight">return allocator object <br/></td></tr>
<tr class="separator:aaeba11bbcd368a7a3a6e6e2dd3082c9c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a246be3920e079ea4847933f106baa98f"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a246be3920e079ea4847933f106baa98f"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00035.html#a246be3920e079ea4847933f106baa98f">clear</a> ()</td></tr>
<tr class="memdesc:a246be3920e079ea4847933f106baa98f"><td class="mdescLeft">&#160;</td><td class="mdescRight">clear the queue. not thread-safe. <br/></td></tr>
<tr class="separator:a246be3920e079ea4847933f106baa98f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac0c931eaa1ddc30025e49d06cc383703"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ac0c931eaa1ddc30025e49d06cc383703"></a>
iterator&#160;</td><td class="memItemRight" valign="bottom"><b>unsafe_begin</b> ()</td></tr>
<tr class="separator:ac0c931eaa1ddc30025e49d06cc383703"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a634cece9742cbaba56ba6f7777568e4c"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a634cece9742cbaba56ba6f7777568e4c"></a>
iterator&#160;</td><td class="memItemRight" valign="bottom"><b>unsafe_end</b> ()</td></tr>
<tr class="separator:a634cece9742cbaba56ba6f7777568e4c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2ed2f8130fd679e89327cb292fb25510"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a2ed2f8130fd679e89327cb292fb25510"></a>
const_iterator&#160;</td><td class="memItemRight" valign="bottom"><b>unsafe_begin</b> () const </td></tr>
<tr class="separator:a2ed2f8130fd679e89327cb292fb25510"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a873d62f59fd79959c0204f5fb44c774d"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a873d62f59fd79959c0204f5fb44c774d"></a>
const_iterator&#160;</td><td class="memItemRight" valign="bottom"><b>unsafe_end</b> () const </td></tr>
<tr class="separator:a873d62f59fd79959c0204f5fb44c774d"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="friends"></a>
Friends</h2></td></tr>
<tr class="memitem:a1f5eec0de2e660ea5372d19393f0920b"><td class="memTemplParams" colspan="2"><a class="anchor" id="a1f5eec0de2e660ea5372d19393f0920b"></a>
template&lt;typename Container , typename Value &gt; </td></tr>
<tr class="memitem:a1f5eec0de2e660ea5372d19393f0920b"><td class="memTemplItemLeft" align="right" valign="top">class&#160;</td><td class="memTemplItemRight" valign="bottom"><b>internal::concurrent_queue_iterator</b></td></tr>
<tr class="separator:a1f5eec0de2e660ea5372d19393f0920b"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><h3>template&lt;typename T, class A = cache_aligned_allocator&lt;T&gt;&gt;<br/>
class tbb::concurrent_bounded_queue&lt; T, A &gt;</h3>
<p>A high-performance thread-safe blocking concurrent bounded queue. </p>
<p>This is the pre-PPL TBB concurrent queue which supports boundedness and blocking semantics. Note that method names agree with the PPL-style concurrent queue. Multiple threads may each push and pop concurrently. Assignment construction is not allowed. </p>
</div><h2 class="groupheader">Member Typedef Documentation</h2>
<a class="anchor" id="ae73fa352d781bdb9d01bfb77f2a8bc28"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T , class A = cache_aligned_allocator&lt;T&gt;&gt; </div>
<table class="memname">
<tr>
<td class="memname">typedef std::ptrdiff_t <a class="el" href="a00035.html">tbb::concurrent_bounded_queue</a>&lt; T, A &gt;::<a class="el" href="a00035.html#ae73fa352d781bdb9d01bfb77f2a8bc28">size_type</a></td>
</tr>
</table>
</div><div class="memdoc">
<p>Integral type for representing size of the queue. </p>
<p>Note that the size_type is a signed integral type. This is because the size can be negative if there are pending pops without corresponding pushes. </p>
</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a class="anchor" id="a87926c31967a918ce80690a9ed5d6fa8"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T , class A = cache_aligned_allocator&lt;T&gt;&gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void <a class="el" href="a00035.html">tbb::concurrent_bounded_queue</a>&lt; T, A &gt;::pop </td>
<td>(</td>
<td class="paramtype">T &amp;&#160;</td>
<td class="paramname"><em>destination</em>)</td><td></td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Dequeue item from head of queue. </p>
<p>Block until an item becomes available, and then dequeue it. </p>
</div>
</div>
<a class="anchor" id="a768699675813575eec08c1f43afda395"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T , class A = cache_aligned_allocator&lt;T&gt;&gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void <a class="el" href="a00035.html">tbb::concurrent_bounded_queue</a>&lt; T, A &gt;::set_capacity </td>
<td>(</td>
<td class="paramtype"><a class="el" href="a00035.html#ae73fa352d781bdb9d01bfb77f2a8bc28">size_type</a>&#160;</td>
<td class="paramname"><em>new_capacity</em>)</td><td></td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Set the capacity. </p>
<p>Setting the capacity to 0 causes subsequent try_push operations to always fail, and subsequent push operations to block forever. </p>
</div>
</div>
<a class="anchor" id="a9d6c20fd8c193c12b6a7b0c3101fd966"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T , class A = cache_aligned_allocator&lt;T&gt;&gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="a00035.html#ae73fa352d781bdb9d01bfb77f2a8bc28">size_type</a> <a class="el" href="a00035.html">tbb::concurrent_bounded_queue</a>&lt; T, A &gt;::size </td>
<td>(</td>
<td class="paramname">)</td><td></td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Return number of pushes minus number of pops. </p>
<p>Note that the result can be negative if there are pops waiting for the corresponding pushes. The result can also exceed <a class="el" href="a00035.html#a526487063242569685af8c8d778d39e0" title="Maximum number of allowed elements. ">capacity()</a> if there are push operations in flight. </p>
</div>
</div>
<a class="anchor" id="a3086cb4dcdeee245ef5cf34f72fb3e10"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T , class A = cache_aligned_allocator&lt;T&gt;&gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">bool <a class="el" href="a00035.html">tbb::concurrent_bounded_queue</a>&lt; T, A &gt;::try_pop </td>
<td>(</td>
<td class="paramtype">T &amp;&#160;</td>
<td class="paramname"><em>destination</em>)</td><td></td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Attempt to dequeue an item from head of queue. </p>
<p>Does not wait for item to become available. Returns true if successful; false otherwise. </p>
</div>
</div>
<a class="anchor" id="a03d93a240841a21788396bebd71c51bd"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T , class A = cache_aligned_allocator&lt;T&gt;&gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">bool <a class="el" href="a00035.html">tbb::concurrent_bounded_queue</a>&lt; T, A &gt;::try_push </td>
<td>(</td>
<td class="paramtype">const T &amp;&#160;</td>
<td class="paramname"><em>source</em>)</td><td></td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Enqueue an item at tail of queue if queue is not already full. </p>
<p>Does not wait for queue to become not full. Returns true if item is pushed; false if queue was already full. </p>
</div>
</div>
<a class="anchor" id="a93f35e9d9381629e0a2993f9fdd96d92"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T , class A = cache_aligned_allocator&lt;T&gt;&gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">bool <a class="el" href="a00035.html">tbb::concurrent_bounded_queue</a>&lt; T, A &gt;::try_push </td>
<td>(</td>
<td class="paramtype">T &amp;&amp;&#160;</td>
<td class="paramname"><em>source</em>)</td><td></td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Move an item at tail of queue if queue is not already full. </p>
<p>Does not wait for queue to become not full. Returns true if item is pushed; false if queue was already full. </p>
</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
<li>flow_graph_opencl_node.h</li>
<li>concurrent_queue.h</li>
</ul>
</div><!-- contents -->
<hr>
Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 KiB

After

Width:  |  Height:  |  Size: 766 B

+956 -81
View File
File diff suppressed because it is too large Load Diff
Binary file not shown.

Before

Width:  |  Height:  |  Size: 835 B

After

Width:  |  Height:  |  Size: 1.0 KiB

+35 -53
View File
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.4"/>
<title>tbb::combinable&lt; T &gt; Class Template Reference</title>
<title>tbb::interface6::concurrent_lru_cache&lt; key_type, value_type, value_functor_type &gt; Class Template Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -33,70 +33,52 @@
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="a00237.html">tbb</a></li><li class="navelem"><a class="el" href="a00037.html">combinable</a></li> </ul>
<li class="navelem"><a class="el" href="a00234.html">tbb</a></li><li class="navelem"><b>interface6</b></li><li class="navelem"><a class="el" href="a00037.html">concurrent_lru_cache</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#nested-classes">Classes</a> &#124;
<a href="#pub-types">Public Types</a> &#124;
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="a00276.html">List of all members</a> </div>
<a href="#friends">Friends</a> &#124;
<a href="a00379.html">List of all members</a> </div>
<div class="headertitle">
<div class="title">tbb::combinable&lt; T &gt; Class Template Reference<div class="ingroups"><a class="el" href="a00258.html">Containers</a></div></div> </div>
<div class="title">tbb::interface6::concurrent_lru_cache&lt; key_type, value_type, value_functor_type &gt; Class Template Reference</div> </div>
</div><!--header-->
<div class="contents">
<p>Thread-local storage with optional reduction.
<a href="a00037.html#details">More...</a></p>
<p><code>#include &lt;combinable.h&gt;</code></p>
<div class="dynheader">
Inheritance diagram for tbb::interface6::concurrent_lru_cache&lt; key_type, value_type, value_functor_type &gt;:</div>
<div class="dyncontent">
<div class="center">
<img src="a00037.png" usemap="#tbb::interface6::concurrent_lru_cache&lt; key_type, value_type, value_functor_type &gt;_map" alt=""/>
<map id="tbb::interface6::concurrent_lru_cache&lt; key_type, value_type, value_functor_type &gt;_map" name="tbb::interface6::concurrent_lru_cache&lt; key_type, value_type, value_functor_type &gt;_map">
</map>
</div></div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-types"></a>
Public Types</h2></td></tr>
<tr class="memitem:ac498dc4d73a75cbc0d50a15622f06e13"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ac498dc4d73a75cbc0d50a15622f06e13"></a>
typedef handle_object&#160;</td><td class="memItemRight" valign="bottom"><b>handle</b></td></tr>
<tr class="separator:ac498dc4d73a75cbc0d50a15622f06e13"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:ab3c539d5731faaafd81979b207a4fa1f"><td class="memTemplParams" colspan="2"><a class="anchor" id="ab3c539d5731faaafd81979b207a4fa1f"></a>
template&lt;typename finit &gt; </td></tr>
<tr class="memitem:ab3c539d5731faaafd81979b207a4fa1f"><td class="memTemplItemLeft" align="right" valign="top">&#160;</td><td class="memTemplItemRight" valign="bottom"><b>combinable</b> (finit _finit)</td></tr>
<tr class="separator:ab3c539d5731faaafd81979b207a4fa1f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a52f00cf262d768048db72ab73c8f3ca4"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a52f00cf262d768048db72ab73c8f3ca4"></a>
&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00037.html#a52f00cf262d768048db72ab73c8f3ca4">~combinable</a> ()</td></tr>
<tr class="memdesc:a52f00cf262d768048db72ab73c8f3ca4"><td class="mdescLeft">&#160;</td><td class="mdescRight">destructor <br/></td></tr>
<tr class="separator:a52f00cf262d768048db72ab73c8f3ca4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a376f44cba71450fc18ccddaad61b76cc"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a376f44cba71450fc18ccddaad61b76cc"></a>
&#160;</td><td class="memItemRight" valign="bottom"><b>combinable</b> (const <a class="el" href="a00037.html">combinable</a> &amp;other)</td></tr>
<tr class="separator:a376f44cba71450fc18ccddaad61b76cc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae227b3906cd4ee6e5e2e5e840a3ff8e6"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ae227b3906cd4ee6e5e2e5e840a3ff8e6"></a>
&#160;</td><td class="memItemRight" valign="bottom"><b>combinable</b> (<a class="el" href="a00037.html">combinable</a> &amp;&amp;other)</td></tr>
<tr class="separator:ae227b3906cd4ee6e5e2e5e840a3ff8e6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab011fbe2f0600900b6e1b9760d82aead"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ab011fbe2f0600900b6e1b9760d82aead"></a>
<a class="el" href="a00037.html">combinable</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>operator=</b> (const <a class="el" href="a00037.html">combinable</a> &amp;other)</td></tr>
<tr class="separator:ab011fbe2f0600900b6e1b9760d82aead"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a780f6aeeed80b1c974f22c76907df8c9"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a780f6aeeed80b1c974f22c76907df8c9"></a>
<a class="el" href="a00037.html">combinable</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>operator=</b> (<a class="el" href="a00037.html">combinable</a> &amp;&amp;other)</td></tr>
<tr class="separator:a780f6aeeed80b1c974f22c76907df8c9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8ecfe80161a59f04ffd9676e79701de6"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a8ecfe80161a59f04ffd9676e79701de6"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>clear</b> ()</td></tr>
<tr class="separator:a8ecfe80161a59f04ffd9676e79701de6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae47f982dbd396d225f0f546e60690d42"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ae47f982dbd396d225f0f546e60690d42"></a>
T &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>local</b> ()</td></tr>
<tr class="separator:ae47f982dbd396d225f0f546e60690d42"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2433d2b3b53b9979d0b3bb2a175abc9b"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a2433d2b3b53b9979d0b3bb2a175abc9b"></a>
T &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>local</b> (bool &amp;exists)</td></tr>
<tr class="separator:a2433d2b3b53b9979d0b3bb2a175abc9b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3d564f6d480e0c7fe8e756d1de1cf0e2"><td class="memTemplParams" colspan="2"><a class="anchor" id="a3d564f6d480e0c7fe8e756d1de1cf0e2"></a>
template&lt;typename combine_func_t &gt; </td></tr>
<tr class="memitem:a3d564f6d480e0c7fe8e756d1de1cf0e2"><td class="memTemplItemLeft" align="right" valign="top">T&#160;</td><td class="memTemplItemRight" valign="bottom"><b>combine</b> (combine_func_t f_combine)</td></tr>
<tr class="separator:a3d564f6d480e0c7fe8e756d1de1cf0e2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aadadee714004d977f0e95a479bfb80ac"><td class="memTemplParams" colspan="2"><a class="anchor" id="aadadee714004d977f0e95a479bfb80ac"></a>
template&lt;typename combine_func_t &gt; </td></tr>
<tr class="memitem:aadadee714004d977f0e95a479bfb80ac"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><b>combine_each</b> (combine_func_t f_combine)</td></tr>
<tr class="separator:aadadee714004d977f0e95a479bfb80ac"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad4c0b512bb4ad5109eaae1519ba06d98"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ad4c0b512bb4ad5109eaae1519ba06d98"></a>
&#160;</td><td class="memItemRight" valign="bottom"><b>concurrent_lru_cache</b> (value_function_type f, std::size_t number_of_lru_history_items)</td></tr>
<tr class="separator:ad4c0b512bb4ad5109eaae1519ba06d98"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a632c3911a55cfda997acce279c471ec3"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a632c3911a55cfda997acce279c471ec3"></a>
handle_object&#160;</td><td class="memItemRight" valign="bottom"><b>operator[]</b> (key_type k)</td></tr>
<tr class="separator:a632c3911a55cfda997acce279c471ec3"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="friends"></a>
Friends</h2></td></tr>
<tr class="memitem:ab9fb998ff3f90c4dc7cefd09f8ff1365"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ab9fb998ff3f90c4dc7cefd09f8ff1365"></a>
class&#160;</td><td class="memItemRight" valign="bottom"><b>tbb::internal::aggregating_functor&lt; self_type, aggregated_operation_type &gt;</b></td></tr>
<tr class="separator:ab9fb998ff3f90c4dc7cefd09f8ff1365"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><h3>template&lt;typename T&gt;<br/>
class tbb::combinable&lt; T &gt;</h3>
<p>Thread-local storage with optional reduction. </p>
</div><hr/>The documentation for this class was generated from the following file:<ul>
<li>combinable.h</li>
<hr/>The documentation for this class was generated from the following file:<ul>
<li>concurrent_lru_cache.h</li>
</ul>
</div><!-- contents -->
<hr>

Before

Width:  |  Height:  |  Size: 1.0 KiB

After

Width:  |  Height:  |  Size: 1.0 KiB

+554 -4
View File
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.4"/>
<title>tbb::interface6::internal::concrete_filter&lt; T, U, Body &gt; Class Template Reference</title>
<title>tbb::interface5::concurrent_priority_queue&lt; T, Compare, A &gt; Class Template Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -33,16 +33,566 @@
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="a00237.html">tbb</a></li><li class="navelem"><b>interface6</b></li><li class="navelem"><b>internal</b></li><li class="navelem"><a class="el" href="a00038.html">concrete_filter</a></li> </ul>
<li class="navelem"><a class="el" href="a00234.html">tbb</a></li><li class="navelem"><b>interface5</b></li><li class="navelem"><a class="el" href="a00038.html">concurrent_priority_queue</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#nested-classes">Classes</a> &#124;
<a href="#pub-types">Public Types</a> &#124;
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="a00363.html">List of all members</a> </div>
<div class="headertitle">
<div class="title">tbb::interface6::internal::concrete_filter&lt; T, U, Body &gt; Class Template Reference</div> </div>
<div class="title">tbb::interface5::concurrent_priority_queue&lt; T, Compare, A &gt; Class Template Reference</div> </div>
</div><!--header-->
<div class="contents">
<p>Concurrent priority queue.
<a href="a00038.html#details">More...</a></p>
<p><code>#include &lt;concurrent_priority_queue.h&gt;</code></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-types"></a>
Public Types</h2></td></tr>
<tr class="memitem:a2c75d97ae429019363ab6fd1a872512e"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a2c75d97ae429019363ab6fd1a872512e"></a>
typedef T&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00038.html#a2c75d97ae429019363ab6fd1a872512e">value_type</a></td></tr>
<tr class="memdesc:a2c75d97ae429019363ab6fd1a872512e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Element type in the queue. <br/></td></tr>
<tr class="separator:a2c75d97ae429019363ab6fd1a872512e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae4b7ed2ddc8ec6cc910f935c9d299c7a"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ae4b7ed2ddc8ec6cc910f935c9d299c7a"></a>
typedef T &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00038.html#ae4b7ed2ddc8ec6cc910f935c9d299c7a">reference</a></td></tr>
<tr class="memdesc:ae4b7ed2ddc8ec6cc910f935c9d299c7a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reference type. <br/></td></tr>
<tr class="separator:ae4b7ed2ddc8ec6cc910f935c9d299c7a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0bd617fe8e4657777e86f0ae15d8094f"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a0bd617fe8e4657777e86f0ae15d8094f"></a>
typedef const T &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00038.html#a0bd617fe8e4657777e86f0ae15d8094f">const_reference</a></td></tr>
<tr class="memdesc:a0bd617fe8e4657777e86f0ae15d8094f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Const reference type. <br/></td></tr>
<tr class="separator:a0bd617fe8e4657777e86f0ae15d8094f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7d3da9b47ec58e1c09e3550f702edcfc"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a7d3da9b47ec58e1c09e3550f702edcfc"></a>
typedef size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00038.html#a7d3da9b47ec58e1c09e3550f702edcfc">size_type</a></td></tr>
<tr class="memdesc:a7d3da9b47ec58e1c09e3550f702edcfc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Integral type for representing size of the queue. <br/></td></tr>
<tr class="separator:a7d3da9b47ec58e1c09e3550f702edcfc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae010b1fa9c0942504737228474b51a0b"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ae010b1fa9c0942504737228474b51a0b"></a>
typedef ptrdiff_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00038.html#ae010b1fa9c0942504737228474b51a0b">difference_type</a></td></tr>
<tr class="memdesc:ae010b1fa9c0942504737228474b51a0b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Difference type for iterator. <br/></td></tr>
<tr class="separator:ae010b1fa9c0942504737228474b51a0b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1d2cebf242fa83d88eebdc3ad6891fb1"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a1d2cebf242fa83d88eebdc3ad6891fb1"></a>
typedef A&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00038.html#a1d2cebf242fa83d88eebdc3ad6891fb1">allocator_type</a></td></tr>
<tr class="memdesc:a1d2cebf242fa83d88eebdc3ad6891fb1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Allocator type. <br/></td></tr>
<tr class="separator:a1d2cebf242fa83d88eebdc3ad6891fb1"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:a405be01bac4048f214797c287e2571a1"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a405be01bac4048f214797c287e2571a1"></a>
&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00038.html#a405be01bac4048f214797c287e2571a1">concurrent_priority_queue</a> (const <a class="el" href="a00038.html#a1d2cebf242fa83d88eebdc3ad6891fb1">allocator_type</a> &amp;a=<a class="el" href="a00038.html#a1d2cebf242fa83d88eebdc3ad6891fb1">allocator_type</a>())</td></tr>
<tr class="memdesc:a405be01bac4048f214797c287e2571a1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructs a new <a class="el" href="a00038.html" title="Concurrent priority queue. ">concurrent_priority_queue</a> with default capacity. <br/></td></tr>
<tr class="separator:a405be01bac4048f214797c287e2571a1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a43c3917ea8a19cf1fec947e29ad4ff3e"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a43c3917ea8a19cf1fec947e29ad4ff3e"></a>
&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00038.html#a43c3917ea8a19cf1fec947e29ad4ff3e">concurrent_priority_queue</a> (<a class="el" href="a00038.html#a7d3da9b47ec58e1c09e3550f702edcfc">size_type</a> init_capacity, const <a class="el" href="a00038.html#a1d2cebf242fa83d88eebdc3ad6891fb1">allocator_type</a> &amp;a=<a class="el" href="a00038.html#a1d2cebf242fa83d88eebdc3ad6891fb1">allocator_type</a>())</td></tr>
<tr class="memdesc:a43c3917ea8a19cf1fec947e29ad4ff3e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructs a new <a class="el" href="a00038.html" title="Concurrent priority queue. ">concurrent_priority_queue</a> with init_sz capacity. <br/></td></tr>
<tr class="separator:a43c3917ea8a19cf1fec947e29ad4ff3e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0cebee26cc0d00d4dcbb1c74e08029f7"><td class="memTemplParams" colspan="2"><a class="anchor" id="a0cebee26cc0d00d4dcbb1c74e08029f7"></a>
template&lt;typename InputIterator &gt; </td></tr>
<tr class="memitem:a0cebee26cc0d00d4dcbb1c74e08029f7"><td class="memTemplItemLeft" align="right" valign="top">&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00038.html#a0cebee26cc0d00d4dcbb1c74e08029f7">concurrent_priority_queue</a> (InputIterator begin, InputIterator end, const <a class="el" href="a00038.html#a1d2cebf242fa83d88eebdc3ad6891fb1">allocator_type</a> &amp;a=<a class="el" href="a00038.html#a1d2cebf242fa83d88eebdc3ad6891fb1">allocator_type</a>())</td></tr>
<tr class="memdesc:a0cebee26cc0d00d4dcbb1c74e08029f7"><td class="mdescLeft">&#160;</td><td class="mdescRight">[begin,end) constructor <br/></td></tr>
<tr class="separator:a0cebee26cc0d00d4dcbb1c74e08029f7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aaa8ac175143e12db29a014674a392b38"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aaa8ac175143e12db29a014674a392b38"></a>
&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00038.html#aaa8ac175143e12db29a014674a392b38">concurrent_priority_queue</a> (std::initializer_list&lt; T &gt; init_list, const <a class="el" href="a00038.html#a1d2cebf242fa83d88eebdc3ad6891fb1">allocator_type</a> &amp;a=<a class="el" href="a00038.html#a1d2cebf242fa83d88eebdc3ad6891fb1">allocator_type</a>())</td></tr>
<tr class="memdesc:aaa8ac175143e12db29a014674a392b38"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructor from std::initializer_list. <br/></td></tr>
<tr class="separator:aaa8ac175143e12db29a014674a392b38"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a332d26234f9c37a6b7ba269c648815d0"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00038.html#a332d26234f9c37a6b7ba269c648815d0">concurrent_priority_queue</a> (const <a class="el" href="a00038.html">concurrent_priority_queue</a> &amp;src)</td></tr>
<tr class="memdesc:a332d26234f9c37a6b7ba269c648815d0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Copy constructor. <a href="#a332d26234f9c37a6b7ba269c648815d0">More...</a><br/></td></tr>
<tr class="separator:a332d26234f9c37a6b7ba269c648815d0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa52cea369b6630699ee78cc42622be9d"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00038.html#aa52cea369b6630699ee78cc42622be9d">concurrent_priority_queue</a> (const <a class="el" href="a00038.html">concurrent_priority_queue</a> &amp;src, const <a class="el" href="a00038.html#a1d2cebf242fa83d88eebdc3ad6891fb1">allocator_type</a> &amp;a)</td></tr>
<tr class="memdesc:aa52cea369b6630699ee78cc42622be9d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Copy constructor with specific allocator. <a href="#aa52cea369b6630699ee78cc42622be9d">More...</a><br/></td></tr>
<tr class="separator:aa52cea369b6630699ee78cc42622be9d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac0c3f41b10f04547f3438517c40cf8a5"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00038.html">concurrent_priority_queue</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00038.html#ac0c3f41b10f04547f3438517c40cf8a5">operator=</a> (const <a class="el" href="a00038.html">concurrent_priority_queue</a> &amp;src)</td></tr>
<tr class="memdesc:ac0c3f41b10f04547f3438517c40cf8a5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Assignment operator. <a href="#ac0c3f41b10f04547f3438517c40cf8a5">More...</a><br/></td></tr>
<tr class="separator:ac0c3f41b10f04547f3438517c40cf8a5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae9ac965bbac3933c7db89f512adfcbcb"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00038.html#ae9ac965bbac3933c7db89f512adfcbcb">concurrent_priority_queue</a> (<a class="el" href="a00038.html">concurrent_priority_queue</a> &amp;&amp;src)</td></tr>
<tr class="memdesc:ae9ac965bbac3933c7db89f512adfcbcb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Move constructor. <a href="#ae9ac965bbac3933c7db89f512adfcbcb">More...</a><br/></td></tr>
<tr class="separator:ae9ac965bbac3933c7db89f512adfcbcb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a14dd20a4673f77cff3eb6f269a888016"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00038.html#a14dd20a4673f77cff3eb6f269a888016">concurrent_priority_queue</a> (<a class="el" href="a00038.html">concurrent_priority_queue</a> &amp;&amp;src, const <a class="el" href="a00038.html#a1d2cebf242fa83d88eebdc3ad6891fb1">allocator_type</a> &amp;a)</td></tr>
<tr class="memdesc:a14dd20a4673f77cff3eb6f269a888016"><td class="mdescLeft">&#160;</td><td class="mdescRight">Move constructor with specific allocator. <a href="#a14dd20a4673f77cff3eb6f269a888016">More...</a><br/></td></tr>
<tr class="separator:a14dd20a4673f77cff3eb6f269a888016"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9b21bd56aff8c412c5fcdd0d88b48c98"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00038.html">concurrent_priority_queue</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00038.html#a9b21bd56aff8c412c5fcdd0d88b48c98">operator=</a> (<a class="el" href="a00038.html">concurrent_priority_queue</a> &amp;&amp;src)</td></tr>
<tr class="memdesc:a9b21bd56aff8c412c5fcdd0d88b48c98"><td class="mdescLeft">&#160;</td><td class="mdescRight">Move assignment operator. <a href="#a9b21bd56aff8c412c5fcdd0d88b48c98">More...</a><br/></td></tr>
<tr class="separator:a9b21bd56aff8c412c5fcdd0d88b48c98"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac64c7b627708f0d6b2e5421fb0d49150"><td class="memTemplParams" colspan="2"><a class="anchor" id="ac64c7b627708f0d6b2e5421fb0d49150"></a>
template&lt;typename InputIterator &gt; </td></tr>
<tr class="memitem:ac64c7b627708f0d6b2e5421fb0d49150"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00038.html#ac64c7b627708f0d6b2e5421fb0d49150">assign</a> (InputIterator begin, InputIterator end)</td></tr>
<tr class="memdesc:ac64c7b627708f0d6b2e5421fb0d49150"><td class="mdescLeft">&#160;</td><td class="mdescRight">Assign the queue from [begin,end) range, not thread-safe. <br/></td></tr>
<tr class="separator:ac64c7b627708f0d6b2e5421fb0d49150"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac1b3a945aac5a17c85d56756cc6aa3d1"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ac1b3a945aac5a17c85d56756cc6aa3d1"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00038.html#ac1b3a945aac5a17c85d56756cc6aa3d1">assign</a> (std::initializer_list&lt; T &gt; il)</td></tr>
<tr class="memdesc:ac1b3a945aac5a17c85d56756cc6aa3d1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Assign the queue from std::initializer_list, not thread-safe. <br/></td></tr>
<tr class="separator:ac1b3a945aac5a17c85d56756cc6aa3d1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7eaa05dcb74604e45e0e2c55e1e456e9"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a7eaa05dcb74604e45e0e2c55e1e456e9"></a>
<a class="el" href="a00038.html">concurrent_priority_queue</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00038.html#a7eaa05dcb74604e45e0e2c55e1e456e9">operator=</a> (std::initializer_list&lt; T &gt; il)</td></tr>
<tr class="memdesc:a7eaa05dcb74604e45e0e2c55e1e456e9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Assign from std::initializer_list, not thread-safe. <br/></td></tr>
<tr class="separator:a7eaa05dcb74604e45e0e2c55e1e456e9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8dec2dd0e8b22af14f1753eaef1bf5eb"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00038.html#a8dec2dd0e8b22af14f1753eaef1bf5eb">empty</a> () const </td></tr>
<tr class="memdesc:a8dec2dd0e8b22af14f1753eaef1bf5eb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns true if empty, false otherwise. <a href="#a8dec2dd0e8b22af14f1753eaef1bf5eb">More...</a><br/></td></tr>
<tr class="separator:a8dec2dd0e8b22af14f1753eaef1bf5eb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7d86ba200474b51ec99a6b917429c6bb"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00038.html#a7d3da9b47ec58e1c09e3550f702edcfc">size_type</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00038.html#a7d86ba200474b51ec99a6b917429c6bb">size</a> () const </td></tr>
<tr class="memdesc:a7d86ba200474b51ec99a6b917429c6bb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the current number of elements contained in the queue. <a href="#a7d86ba200474b51ec99a6b917429c6bb">More...</a><br/></td></tr>
<tr class="separator:a7d86ba200474b51ec99a6b917429c6bb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1bfa0e7269b3407d6bb5c706264d2406"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00038.html#a1bfa0e7269b3407d6bb5c706264d2406">push</a> (<a class="el" href="a00038.html#a0bd617fe8e4657777e86f0ae15d8094f">const_reference</a> elem)</td></tr>
<tr class="memdesc:a1bfa0e7269b3407d6bb5c706264d2406"><td class="mdescLeft">&#160;</td><td class="mdescRight">Pushes elem onto the queue, increasing capacity of queue if necessary. <a href="#a1bfa0e7269b3407d6bb5c706264d2406">More...</a><br/></td></tr>
<tr class="separator:a1bfa0e7269b3407d6bb5c706264d2406"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a72ff26945c61b4ce3ce7ca0f9b9aaa48"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00038.html#a72ff26945c61b4ce3ce7ca0f9b9aaa48">push</a> (<a class="el" href="a00038.html#a2c75d97ae429019363ab6fd1a872512e">value_type</a> &amp;&amp;elem)</td></tr>
<tr class="memdesc:a72ff26945c61b4ce3ce7ca0f9b9aaa48"><td class="mdescLeft">&#160;</td><td class="mdescRight">Pushes elem onto the queue, increasing capacity of queue if necessary. <a href="#a72ff26945c61b4ce3ce7ca0f9b9aaa48">More...</a><br/></td></tr>
<tr class="separator:a72ff26945c61b4ce3ce7ca0f9b9aaa48"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a278d208cd92e5aeccc9c7f6fc192e3ce"><td class="memTemplParams" colspan="2">template&lt;typename... Args&gt; </td></tr>
<tr class="memitem:a278d208cd92e5aeccc9c7f6fc192e3ce"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00038.html#a278d208cd92e5aeccc9c7f6fc192e3ce">emplace</a> (Args &amp;&amp;...args)</td></tr>
<tr class="memdesc:a278d208cd92e5aeccc9c7f6fc192e3ce"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructs a new element using args as the arguments for its construction and pushes it onto the queue */. <a href="#a278d208cd92e5aeccc9c7f6fc192e3ce">More...</a><br/></td></tr>
<tr class="separator:a278d208cd92e5aeccc9c7f6fc192e3ce"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a954177b09e184cf3db47f1b180a7ef5e"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00038.html#a954177b09e184cf3db47f1b180a7ef5e">try_pop</a> (<a class="el" href="a00038.html#ae4b7ed2ddc8ec6cc910f935c9d299c7a">reference</a> elem)</td></tr>
<tr class="memdesc:a954177b09e184cf3db47f1b180a7ef5e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets a reference to and removes highest priority element. <a href="#a954177b09e184cf3db47f1b180a7ef5e">More...</a><br/></td></tr>
<tr class="separator:a954177b09e184cf3db47f1b180a7ef5e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2459166998a4103880d603b237c429e6"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00038.html#a2459166998a4103880d603b237c429e6">clear</a> ()</td></tr>
<tr class="memdesc:a2459166998a4103880d603b237c429e6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Clear the queue; not thread-safe. <a href="#a2459166998a4103880d603b237c429e6">More...</a><br/></td></tr>
<tr class="separator:a2459166998a4103880d603b237c429e6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa6ee6d356e538b67a7cb4e242e6e36c9"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00038.html#aa6ee6d356e538b67a7cb4e242e6e36c9">swap</a> (<a class="el" href="a00038.html">concurrent_priority_queue</a> &amp;q)</td></tr>
<tr class="memdesc:aa6ee6d356e538b67a7cb4e242e6e36c9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Swap this queue with another; not thread-safe. <a href="#aa6ee6d356e538b67a7cb4e242e6e36c9">More...</a><br/></td></tr>
<tr class="separator:aa6ee6d356e538b67a7cb4e242e6e36c9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a312e88e51246da4c516d35abbb30721a"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a312e88e51246da4c516d35abbb30721a"></a>
<a class="el" href="a00038.html#a1d2cebf242fa83d88eebdc3ad6891fb1">allocator_type</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00038.html#a312e88e51246da4c516d35abbb30721a">get_allocator</a> () const </td></tr>
<tr class="memdesc:a312e88e51246da4c516d35abbb30721a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return allocator object. <br/></td></tr>
<tr class="separator:a312e88e51246da4c516d35abbb30721a"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><h3>template&lt;typename T, typename Compare = std::less&lt;T&gt;, typename A = cache_aligned_allocator&lt;T&gt;&gt;<br/>
class tbb::interface5::concurrent_priority_queue&lt; T, Compare, A &gt;</h3>
<p>Concurrent priority queue. </p>
</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a class="anchor" id="a332d26234f9c37a6b7ba269c648815d0"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T , typename Compare = std::less&lt;T&gt;, typename A = cache_aligned_allocator&lt;T&gt;&gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="a00038.html">tbb::interface5::concurrent_priority_queue</a>&lt; T, Compare, A &gt;::<a class="el" href="a00038.html">concurrent_priority_queue</a> </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="a00038.html">concurrent_priority_queue</a>&lt; T, Compare, A &gt; &amp;&#160;</td>
<td class="paramname"><em>src</em>)</td><td></td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">explicit</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Copy constructor. </p>
<p>This operation is unsafe if there are pending concurrent operations on the src queue. </p>
</div>
</div>
<a class="anchor" id="aa52cea369b6630699ee78cc42622be9d"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T , typename Compare = std::less&lt;T&gt;, typename A = cache_aligned_allocator&lt;T&gt;&gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="a00038.html">tbb::interface5::concurrent_priority_queue</a>&lt; T, Compare, A &gt;::<a class="el" href="a00038.html">concurrent_priority_queue</a> </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="a00038.html">concurrent_priority_queue</a>&lt; T, Compare, A &gt; &amp;&#160;</td>
<td class="paramname"><em>src</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="a00038.html#a1d2cebf242fa83d88eebdc3ad6891fb1">allocator_type</a> &amp;&#160;</td>
<td class="paramname"><em>a</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Copy constructor with specific allocator. </p>
<p>This operation is unsafe if there are pending concurrent operations on the src queue. </p>
</div>
</div>
<a class="anchor" id="ae9ac965bbac3933c7db89f512adfcbcb"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T , typename Compare = std::less&lt;T&gt;, typename A = cache_aligned_allocator&lt;T&gt;&gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="a00038.html">tbb::interface5::concurrent_priority_queue</a>&lt; T, Compare, A &gt;::<a class="el" href="a00038.html">concurrent_priority_queue</a> </td>
<td>(</td>
<td class="paramtype"><a class="el" href="a00038.html">concurrent_priority_queue</a>&lt; T, Compare, A &gt; &amp;&amp;&#160;</td>
<td class="paramname"><em>src</em>)</td><td></td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Move constructor. </p>
<p>This operation is unsafe if there are pending concurrent operations on the src queue. </p>
</div>
</div>
<a class="anchor" id="a14dd20a4673f77cff3eb6f269a888016"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T , typename Compare = std::less&lt;T&gt;, typename A = cache_aligned_allocator&lt;T&gt;&gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="a00038.html">tbb::interface5::concurrent_priority_queue</a>&lt; T, Compare, A &gt;::<a class="el" href="a00038.html">concurrent_priority_queue</a> </td>
<td>(</td>
<td class="paramtype"><a class="el" href="a00038.html">concurrent_priority_queue</a>&lt; T, Compare, A &gt; &amp;&amp;&#160;</td>
<td class="paramname"><em>src</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="a00038.html#a1d2cebf242fa83d88eebdc3ad6891fb1">allocator_type</a> &amp;&#160;</td>
<td class="paramname"><em>a</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Move constructor with specific allocator. </p>
<p>This operation is unsafe if there are pending concurrent operations on the src queue. </p>
</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a class="anchor" id="a2459166998a4103880d603b237c429e6"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T , typename Compare = std::less&lt;T&gt;, typename A = cache_aligned_allocator&lt;T&gt;&gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void <a class="el" href="a00038.html">tbb::interface5::concurrent_priority_queue</a>&lt; T, Compare, A &gt;::clear </td>
<td>(</td>
<td class="paramname">)</td><td></td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Clear the queue; not thread-safe. </p>
<p>This operation is unsafe if there are pending concurrent operations on the queue. Resets size, effectively emptying queue; does not free space. May not clear elements added in pending operations. </p>
</div>
</div>
<a class="anchor" id="a278d208cd92e5aeccc9c7f6fc192e3ce"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T , typename Compare = std::less&lt;T&gt;, typename A = cache_aligned_allocator&lt;T&gt;&gt; </div>
<div class="memtemplate">
template&lt;typename... Args&gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void <a class="el" href="a00038.html">tbb::interface5::concurrent_priority_queue</a>&lt; T, Compare, A &gt;::emplace </td>
<td>(</td>
<td class="paramtype">Args &amp;&amp;...&#160;</td>
<td class="paramname"><em>args</em>)</td><td></td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Constructs a new element using args as the arguments for its construction and pushes it onto the queue */. </p>
<p>This operation can be safely used concurrently with other push, try_pop or emplace operations. </p>
</div>
</div>
<a class="anchor" id="a8dec2dd0e8b22af14f1753eaef1bf5eb"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T , typename Compare = std::less&lt;T&gt;, typename A = cache_aligned_allocator&lt;T&gt;&gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">bool <a class="el" href="a00038.html">tbb::interface5::concurrent_priority_queue</a>&lt; T, Compare, A &gt;::empty </td>
<td>(</td>
<td class="paramname">)</td><td></td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns true if empty, false otherwise. </p>
<p>Returned value may not reflect results of pending operations. This operation reads shared data and will trigger a race condition. </p>
</div>
</div>
<a class="anchor" id="ac0c3f41b10f04547f3438517c40cf8a5"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T , typename Compare = std::less&lt;T&gt;, typename A = cache_aligned_allocator&lt;T&gt;&gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="a00038.html">concurrent_priority_queue</a>&amp; <a class="el" href="a00038.html">tbb::interface5::concurrent_priority_queue</a>&lt; T, Compare, A &gt;::operator= </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="a00038.html">concurrent_priority_queue</a>&lt; T, Compare, A &gt; &amp;&#160;</td>
<td class="paramname"><em>src</em>)</td><td></td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Assignment operator. </p>
<p>This operation is unsafe if there are pending concurrent operations on the src queue. </p>
</div>
</div>
<a class="anchor" id="a9b21bd56aff8c412c5fcdd0d88b48c98"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T , typename Compare = std::less&lt;T&gt;, typename A = cache_aligned_allocator&lt;T&gt;&gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="a00038.html">concurrent_priority_queue</a>&amp; <a class="el" href="a00038.html">tbb::interface5::concurrent_priority_queue</a>&lt; T, Compare, A &gt;::operator= </td>
<td>(</td>
<td class="paramtype"><a class="el" href="a00038.html">concurrent_priority_queue</a>&lt; T, Compare, A &gt; &amp;&amp;&#160;</td>
<td class="paramname"><em>src</em>)</td><td></td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Move assignment operator. </p>
<p>This operation is unsafe if there are pending concurrent operations on the src queue. </p>
</div>
</div>
<a class="anchor" id="a1bfa0e7269b3407d6bb5c706264d2406"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T , typename Compare = std::less&lt;T&gt;, typename A = cache_aligned_allocator&lt;T&gt;&gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void <a class="el" href="a00038.html">tbb::interface5::concurrent_priority_queue</a>&lt; T, Compare, A &gt;::push </td>
<td>(</td>
<td class="paramtype"><a class="el" href="a00038.html#a0bd617fe8e4657777e86f0ae15d8094f">const_reference</a>&#160;</td>
<td class="paramname"><em>elem</em>)</td><td></td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Pushes elem onto the queue, increasing capacity of queue if necessary. </p>
<p>This operation can be safely used concurrently with other push, try_pop or emplace operations. </p>
</div>
</div>
<a class="anchor" id="a72ff26945c61b4ce3ce7ca0f9b9aaa48"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T , typename Compare = std::less&lt;T&gt;, typename A = cache_aligned_allocator&lt;T&gt;&gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void <a class="el" href="a00038.html">tbb::interface5::concurrent_priority_queue</a>&lt; T, Compare, A &gt;::push </td>
<td>(</td>
<td class="paramtype"><a class="el" href="a00038.html#a2c75d97ae429019363ab6fd1a872512e">value_type</a> &amp;&amp;&#160;</td>
<td class="paramname"><em>elem</em>)</td><td></td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Pushes elem onto the queue, increasing capacity of queue if necessary. </p>
<p>This operation can be safely used concurrently with other push, try_pop or emplace operations. </p>
</div>
</div>
<a class="anchor" id="a7d86ba200474b51ec99a6b917429c6bb"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T , typename Compare = std::less&lt;T&gt;, typename A = cache_aligned_allocator&lt;T&gt;&gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="a00038.html#a7d3da9b47ec58e1c09e3550f702edcfc">size_type</a> <a class="el" href="a00038.html">tbb::interface5::concurrent_priority_queue</a>&lt; T, Compare, A &gt;::size </td>
<td>(</td>
<td class="paramname">)</td><td></td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns the current number of elements contained in the queue. </p>
<p>Returned value may not reflect results of pending operations. This operation reads shared data and will trigger a race condition. </p>
</div>
</div>
<a class="anchor" id="aa6ee6d356e538b67a7cb4e242e6e36c9"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T , typename Compare = std::less&lt;T&gt;, typename A = cache_aligned_allocator&lt;T&gt;&gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void <a class="el" href="a00038.html">tbb::interface5::concurrent_priority_queue</a>&lt; T, Compare, A &gt;::swap </td>
<td>(</td>
<td class="paramtype"><a class="el" href="a00038.html">concurrent_priority_queue</a>&lt; T, Compare, A &gt; &amp;&#160;</td>
<td class="paramname"><em>q</em>)</td><td></td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Swap this queue with another; not thread-safe. </p>
<p>This operation is unsafe if there are pending concurrent operations on the queue. </p>
</div>
</div>
<a class="anchor" id="a954177b09e184cf3db47f1b180a7ef5e"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T , typename Compare = std::less&lt;T&gt;, typename A = cache_aligned_allocator&lt;T&gt;&gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">bool <a class="el" href="a00038.html">tbb::interface5::concurrent_priority_queue</a>&lt; T, Compare, A &gt;::try_pop </td>
<td>(</td>
<td class="paramtype"><a class="el" href="a00038.html#ae4b7ed2ddc8ec6cc910f935c9d299c7a">reference</a>&#160;</td>
<td class="paramname"><em>elem</em>)</td><td></td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Gets a reference to and removes highest priority element. </p>
<p>If a highest priority element was found, sets elem and returns true, otherwise returns false. This operation can be safely used concurrently with other push, try_pop or emplace operations. </p>
</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
<li>pipeline.h</li>
<li>concurrent_priority_queue.h</li>
</ul>
</div><!-- contents -->
<hr>
+107 -294
View File
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.4"/>
<title>tbb::concurrent_bounded_queue&lt; T, A &gt; Class Template Reference</title>
<title>tbb::strict_ppl::concurrent_queue&lt; T, A &gt; Class Template Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -33,163 +33,138 @@
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="a00237.html">tbb</a></li><li class="navelem"><a class="el" href="a00039.html">concurrent_bounded_queue</a></li> </ul>
<li class="navelem"><a class="el" href="a00234.html">tbb</a></li><li class="navelem"><b>strict_ppl</b></li><li class="navelem"><a class="el" href="a00039.html">concurrent_queue</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#nested-classes">Classes</a> &#124;
<a href="#pub-types">Public Types</a> &#124;
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#friends">Friends</a> &#124;
<a href="a00277.html">List of all members</a> </div>
<a href="a00409.html">List of all members</a> </div>
<div class="headertitle">
<div class="title">tbb::concurrent_bounded_queue&lt; T, A &gt; Class Template Reference<div class="ingroups"><a class="el" href="a00258.html">Containers</a></div></div> </div>
<div class="title">tbb::strict_ppl::concurrent_queue&lt; T, A &gt; Class Template Reference<div class="ingroups"><a class="el" href="a00254.html">Containers</a></div></div> </div>
</div><!--header-->
<div class="contents">
<p>A high-performance thread-safe blocking concurrent bounded queue.
<p>A high-performance thread-safe non-blocking concurrent queue.
<a href="a00039.html#details">More...</a></p>
<p><code>#include &lt;concurrent_queue.h&gt;</code></p>
<div class="dynheader">
Inheritance diagram for tbb::concurrent_bounded_queue&lt; T, A &gt;:</div>
Inheritance diagram for tbb::strict_ppl::concurrent_queue&lt; T, A &gt;:</div>
<div class="dyncontent">
<div class="center">
<img src="a00039.png" usemap="#tbb::concurrent_bounded_queue&lt; T, A &gt;_map" alt=""/>
<map id="tbb::concurrent_bounded_queue&lt; T, A &gt;_map" name="tbb::concurrent_bounded_queue&lt; T, A &gt;_map">
<img src="a00039.png" usemap="#tbb::strict_ppl::concurrent_queue&lt; T, A &gt;_map" alt=""/>
<map id="tbb::strict_ppl::concurrent_queue&lt; T, A &gt;_map" name="tbb::strict_ppl::concurrent_queue&lt; T, A &gt;_map">
</map>
</div></div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-types"></a>
Public Types</h2></td></tr>
<tr class="memitem:a6eb564625fef03dd9a5881d5d4e52f9f"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a6eb564625fef03dd9a5881d5d4e52f9f"></a>
typedef T&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00039.html#a6eb564625fef03dd9a5881d5d4e52f9f">value_type</a></td></tr>
<tr class="memdesc:a6eb564625fef03dd9a5881d5d4e52f9f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Element type in the queue. <br/></td></tr>
<tr class="separator:a6eb564625fef03dd9a5881d5d4e52f9f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acbfceb845de1c770e2b56409f09b0364"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="acbfceb845de1c770e2b56409f09b0364"></a>
typedef A&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00039.html#acbfceb845de1c770e2b56409f09b0364">allocator_type</a></td></tr>
<tr class="memdesc:acbfceb845de1c770e2b56409f09b0364"><td class="mdescLeft">&#160;</td><td class="mdescRight">Allocator type. <br/></td></tr>
<tr class="separator:acbfceb845de1c770e2b56409f09b0364"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5fa4002bcd265d9d3ed305e3b686f1da"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a5fa4002bcd265d9d3ed305e3b686f1da"></a>
typedef T &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00039.html#a5fa4002bcd265d9d3ed305e3b686f1da">reference</a></td></tr>
<tr class="memdesc:a5fa4002bcd265d9d3ed305e3b686f1da"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reference type. <br/></td></tr>
<tr class="separator:a5fa4002bcd265d9d3ed305e3b686f1da"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af838e520ce0db2c22369748c019b11cb"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="af838e520ce0db2c22369748c019b11cb"></a>
typedef const T &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00039.html#af838e520ce0db2c22369748c019b11cb">const_reference</a></td></tr>
<tr class="memdesc:af838e520ce0db2c22369748c019b11cb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Const reference type. <br/></td></tr>
<tr class="separator:af838e520ce0db2c22369748c019b11cb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae73fa352d781bdb9d01bfb77f2a8bc28"><td class="memItemLeft" align="right" valign="top">typedef std::ptrdiff_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00039.html#ae73fa352d781bdb9d01bfb77f2a8bc28">size_type</a></td></tr>
<tr class="memdesc:ae73fa352d781bdb9d01bfb77f2a8bc28"><td class="mdescLeft">&#160;</td><td class="mdescRight">Integral type for representing size of the queue. <a href="#ae73fa352d781bdb9d01bfb77f2a8bc28">More...</a><br/></td></tr>
<tr class="separator:ae73fa352d781bdb9d01bfb77f2a8bc28"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a72725361e050c5a981035a20ef1b773e"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a72725361e050c5a981035a20ef1b773e"></a>
typedef std::ptrdiff_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00039.html#a72725361e050c5a981035a20ef1b773e">difference_type</a></td></tr>
<tr class="memdesc:a72725361e050c5a981035a20ef1b773e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Difference type for iterator. <br/></td></tr>
<tr class="separator:a72725361e050c5a981035a20ef1b773e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a42dfb71b1e4bdc0da3c1217d0d40ddd5"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a42dfb71b1e4bdc0da3c1217d0d40ddd5"></a>
<tr class="memitem:aeeee93a7ac2eecc80bbf3e857e900538"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aeeee93a7ac2eecc80bbf3e857e900538"></a>
typedef T&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00039.html#aeeee93a7ac2eecc80bbf3e857e900538">value_type</a></td></tr>
<tr class="memdesc:aeeee93a7ac2eecc80bbf3e857e900538"><td class="mdescLeft">&#160;</td><td class="mdescRight">Element type in the queue. <br/></td></tr>
<tr class="separator:aeeee93a7ac2eecc80bbf3e857e900538"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab26ddf11b15d61ac87e6c1ae67af92a2"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ab26ddf11b15d61ac87e6c1ae67af92a2"></a>
typedef T &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00039.html#ab26ddf11b15d61ac87e6c1ae67af92a2">reference</a></td></tr>
<tr class="memdesc:ab26ddf11b15d61ac87e6c1ae67af92a2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reference type. <br/></td></tr>
<tr class="separator:ab26ddf11b15d61ac87e6c1ae67af92a2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a478c2b7f763b2e821e01cc14e13baf4c"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a478c2b7f763b2e821e01cc14e13baf4c"></a>
typedef const T &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00039.html#a478c2b7f763b2e821e01cc14e13baf4c">const_reference</a></td></tr>
<tr class="memdesc:a478c2b7f763b2e821e01cc14e13baf4c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Const reference type. <br/></td></tr>
<tr class="separator:a478c2b7f763b2e821e01cc14e13baf4c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9f883e49afea16293ba92da779981bb8"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a9f883e49afea16293ba92da779981bb8"></a>
typedef size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00039.html#a9f883e49afea16293ba92da779981bb8">size_type</a></td></tr>
<tr class="memdesc:a9f883e49afea16293ba92da779981bb8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Integral type for representing size of the queue. <br/></td></tr>
<tr class="separator:a9f883e49afea16293ba92da779981bb8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a63b42d83a9ed13fc6741e0b4388b0e96"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a63b42d83a9ed13fc6741e0b4388b0e96"></a>
typedef ptrdiff_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00039.html#a63b42d83a9ed13fc6741e0b4388b0e96">difference_type</a></td></tr>
<tr class="memdesc:a63b42d83a9ed13fc6741e0b4388b0e96"><td class="mdescLeft">&#160;</td><td class="mdescRight">Difference type for iterator. <br/></td></tr>
<tr class="separator:a63b42d83a9ed13fc6741e0b4388b0e96"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acbdd1a5bd034358fb0774b322a66b1ed"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="acbdd1a5bd034358fb0774b322a66b1ed"></a>
typedef A&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00039.html#acbdd1a5bd034358fb0774b322a66b1ed">allocator_type</a></td></tr>
<tr class="memdesc:acbdd1a5bd034358fb0774b322a66b1ed"><td class="mdescLeft">&#160;</td><td class="mdescRight">Allocator type. <br/></td></tr>
<tr class="separator:acbdd1a5bd034358fb0774b322a66b1ed"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab1361aa7fd454fe593609be740ab8a4c"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ab1361aa7fd454fe593609be740ab8a4c"></a>
typedef <br class="typebreak"/>
internal::concurrent_queue_iterator<br class="typebreak"/>
&lt; <a class="el" href="a00039.html">concurrent_bounded_queue</a>, T &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>iterator</b></td></tr>
<tr class="separator:a42dfb71b1e4bdc0da3c1217d0d40ddd5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a18049841284051e18b854692bd04602c"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a18049841284051e18b854692bd04602c"></a>
&lt; <a class="el" href="a00039.html">concurrent_queue</a>, T &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>iterator</b></td></tr>
<tr class="separator:ab1361aa7fd454fe593609be740ab8a4c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a674e375edf0a3463ae1cec5d6158593d"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a674e375edf0a3463ae1cec5d6158593d"></a>
typedef <br class="typebreak"/>
internal::concurrent_queue_iterator<br class="typebreak"/>
&lt; <a class="el" href="a00039.html">concurrent_bounded_queue</a>, <br class="typebreak"/>
const T &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>const_iterator</b></td></tr>
<tr class="separator:a18049841284051e18b854692bd04602c"><td class="memSeparator" colspan="2">&#160;</td></tr>
&lt; <a class="el" href="a00039.html">concurrent_queue</a>, const T &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>const_iterator</b></td></tr>
<tr class="separator:a674e375edf0a3463ae1cec5d6158593d"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:a85f8a800cae02b601f36ad7a655a0126"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a85f8a800cae02b601f36ad7a655a0126"></a>
&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00039.html#a85f8a800cae02b601f36ad7a655a0126">concurrent_bounded_queue</a> (const <a class="el" href="a00039.html#acbfceb845de1c770e2b56409f09b0364">allocator_type</a> &amp;a=<a class="el" href="a00039.html#acbfceb845de1c770e2b56409f09b0364">allocator_type</a>())</td></tr>
<tr class="memdesc:a85f8a800cae02b601f36ad7a655a0126"><td class="mdescLeft">&#160;</td><td class="mdescRight">Construct empty queue. <br/></td></tr>
<tr class="separator:a85f8a800cae02b601f36ad7a655a0126"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aad6fd2353d64c2c31d074cd99df58c02"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aad6fd2353d64c2c31d074cd99df58c02"></a>
&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00039.html#aad6fd2353d64c2c31d074cd99df58c02">concurrent_bounded_queue</a> (const <a class="el" href="a00039.html">concurrent_bounded_queue</a> &amp;src, const <a class="el" href="a00039.html#acbfceb845de1c770e2b56409f09b0364">allocator_type</a> &amp;a=<a class="el" href="a00039.html#acbfceb845de1c770e2b56409f09b0364">allocator_type</a>())</td></tr>
<tr class="memdesc:aad6fd2353d64c2c31d074cd99df58c02"><td class="mdescLeft">&#160;</td><td class="mdescRight">Copy constructor. <br/></td></tr>
<tr class="separator:aad6fd2353d64c2c31d074cd99df58c02"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a228b9d3bf3158a9379748894a93fbe55"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a228b9d3bf3158a9379748894a93fbe55"></a>
&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00039.html#a228b9d3bf3158a9379748894a93fbe55">concurrent_bounded_queue</a> (<a class="el" href="a00039.html">concurrent_bounded_queue</a> &amp;&amp;src)</td></tr>
<tr class="memdesc:a228b9d3bf3158a9379748894a93fbe55"><td class="mdescLeft">&#160;</td><td class="mdescRight">Move constructors. <br/></td></tr>
<tr class="separator:a228b9d3bf3158a9379748894a93fbe55"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aed0303dafc38c5088ae62ac023fffb4e"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aed0303dafc38c5088ae62ac023fffb4e"></a>
&#160;</td><td class="memItemRight" valign="bottom"><b>concurrent_bounded_queue</b> (<a class="el" href="a00039.html">concurrent_bounded_queue</a> &amp;&amp;src, const <a class="el" href="a00039.html#acbfceb845de1c770e2b56409f09b0364">allocator_type</a> &amp;a)</td></tr>
<tr class="separator:aed0303dafc38c5088ae62ac023fffb4e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afcfdc998e106fdb7b2dfa5df880cd9cf"><td class="memTemplParams" colspan="2"><a class="anchor" id="afcfdc998e106fdb7b2dfa5df880cd9cf"></a>
<tr class="memitem:a49b2e16902577cd3174355be0fa684e5"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a49b2e16902577cd3174355be0fa684e5"></a>
&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00039.html#a49b2e16902577cd3174355be0fa684e5">concurrent_queue</a> (const <a class="el" href="a00039.html#acbdd1a5bd034358fb0774b322a66b1ed">allocator_type</a> &amp;a=<a class="el" href="a00039.html#acbdd1a5bd034358fb0774b322a66b1ed">allocator_type</a>())</td></tr>
<tr class="memdesc:a49b2e16902577cd3174355be0fa684e5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Construct empty queue. <br/></td></tr>
<tr class="separator:a49b2e16902577cd3174355be0fa684e5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a43ac953152e60815c09fe4a4d4a623a9"><td class="memTemplParams" colspan="2"><a class="anchor" id="a43ac953152e60815c09fe4a4d4a623a9"></a>
template&lt;typename InputIterator &gt; </td></tr>
<tr class="memitem:afcfdc998e106fdb7b2dfa5df880cd9cf"><td class="memTemplItemLeft" align="right" valign="top">&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00039.html#afcfdc998e106fdb7b2dfa5df880cd9cf">concurrent_bounded_queue</a> (InputIterator begin, InputIterator end, const <a class="el" href="a00039.html#acbfceb845de1c770e2b56409f09b0364">allocator_type</a> &amp;a=<a class="el" href="a00039.html#acbfceb845de1c770e2b56409f09b0364">allocator_type</a>())</td></tr>
<tr class="memdesc:afcfdc998e106fdb7b2dfa5df880cd9cf"><td class="mdescLeft">&#160;</td><td class="mdescRight">[begin,end) constructor <br/></td></tr>
<tr class="separator:afcfdc998e106fdb7b2dfa5df880cd9cf"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab1291bf6837ecfb8836c24dde5dd80b5"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ab1291bf6837ecfb8836c24dde5dd80b5"></a>
&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00039.html#ab1291bf6837ecfb8836c24dde5dd80b5">~concurrent_bounded_queue</a> ()</td></tr>
<tr class="memdesc:ab1291bf6837ecfb8836c24dde5dd80b5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Destroy queue. <br/></td></tr>
<tr class="separator:ab1291bf6837ecfb8836c24dde5dd80b5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae5e9051772bbc93b2ccb8fd0a98a21f5"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ae5e9051772bbc93b2ccb8fd0a98a21f5"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00039.html#ae5e9051772bbc93b2ccb8fd0a98a21f5">push</a> (const T &amp;source)</td></tr>
<tr class="memdesc:ae5e9051772bbc93b2ccb8fd0a98a21f5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Enqueue an item at tail of queue. <br/></td></tr>
<tr class="separator:ae5e9051772bbc93b2ccb8fd0a98a21f5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a62a03e9c185562254ecb4104f38c106d"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a62a03e9c185562254ecb4104f38c106d"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00039.html#a62a03e9c185562254ecb4104f38c106d">push</a> (T &amp;&amp;source)</td></tr>
<tr class="memdesc:a62a03e9c185562254ecb4104f38c106d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Move an item at tail of queue. <br/></td></tr>
<tr class="separator:a62a03e9c185562254ecb4104f38c106d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab9009e8a1bdf70623f6480681bb6b56a"><td class="memTemplParams" colspan="2"><a class="anchor" id="ab9009e8a1bdf70623f6480681bb6b56a"></a>
<tr class="memitem:a43ac953152e60815c09fe4a4d4a623a9"><td class="memTemplItemLeft" align="right" valign="top">&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00039.html#a43ac953152e60815c09fe4a4d4a623a9">concurrent_queue</a> (InputIterator begin, InputIterator end, const <a class="el" href="a00039.html#acbdd1a5bd034358fb0774b322a66b1ed">allocator_type</a> &amp;a=<a class="el" href="a00039.html#acbdd1a5bd034358fb0774b322a66b1ed">allocator_type</a>())</td></tr>
<tr class="memdesc:a43ac953152e60815c09fe4a4d4a623a9"><td class="mdescLeft">&#160;</td><td class="mdescRight">[begin,end) constructor <br/></td></tr>
<tr class="separator:a43ac953152e60815c09fe4a4d4a623a9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae918807d098d5d5b41cc6d606fa2e7a1"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ae918807d098d5d5b41cc6d606fa2e7a1"></a>
&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00039.html#ae918807d098d5d5b41cc6d606fa2e7a1">concurrent_queue</a> (const <a class="el" href="a00039.html">concurrent_queue</a> &amp;src, const <a class="el" href="a00039.html#acbdd1a5bd034358fb0774b322a66b1ed">allocator_type</a> &amp;a=<a class="el" href="a00039.html#acbdd1a5bd034358fb0774b322a66b1ed">allocator_type</a>())</td></tr>
<tr class="memdesc:ae918807d098d5d5b41cc6d606fa2e7a1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Copy constructor. <br/></td></tr>
<tr class="separator:ae918807d098d5d5b41cc6d606fa2e7a1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acc04574f4d7d41fd5cad779508394740"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="acc04574f4d7d41fd5cad779508394740"></a>
&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00039.html#acc04574f4d7d41fd5cad779508394740">concurrent_queue</a> (<a class="el" href="a00039.html">concurrent_queue</a> &amp;&amp;src)</td></tr>
<tr class="memdesc:acc04574f4d7d41fd5cad779508394740"><td class="mdescLeft">&#160;</td><td class="mdescRight">Move constructors. <br/></td></tr>
<tr class="separator:acc04574f4d7d41fd5cad779508394740"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a22f35cb396178d494a3756d5700e2865"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a22f35cb396178d494a3756d5700e2865"></a>
&#160;</td><td class="memItemRight" valign="bottom"><b>concurrent_queue</b> (<a class="el" href="a00039.html">concurrent_queue</a> &amp;&amp;src, const <a class="el" href="a00039.html#acbdd1a5bd034358fb0774b322a66b1ed">allocator_type</a> &amp;a)</td></tr>
<tr class="separator:a22f35cb396178d494a3756d5700e2865"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa0056b242f280f5e25332ce998f9f670"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aa0056b242f280f5e25332ce998f9f670"></a>
&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00039.html#aa0056b242f280f5e25332ce998f9f670">~concurrent_queue</a> ()</td></tr>
<tr class="memdesc:aa0056b242f280f5e25332ce998f9f670"><td class="mdescLeft">&#160;</td><td class="mdescRight">Destroy queue. <br/></td></tr>
<tr class="separator:aa0056b242f280f5e25332ce998f9f670"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9330ca6590980d80ef7b1ea3613a699a"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a9330ca6590980d80ef7b1ea3613a699a"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00039.html#a9330ca6590980d80ef7b1ea3613a699a">push</a> (const T &amp;source)</td></tr>
<tr class="memdesc:a9330ca6590980d80ef7b1ea3613a699a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Enqueue an item at tail of queue. <br/></td></tr>
<tr class="separator:a9330ca6590980d80ef7b1ea3613a699a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a40f743f7eb92bb709cb7feb86d340885"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a40f743f7eb92bb709cb7feb86d340885"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>push</b> (T &amp;&amp;source)</td></tr>
<tr class="separator:a40f743f7eb92bb709cb7feb86d340885"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4647d9bf5fd03b0850ada381916e9728"><td class="memTemplParams" colspan="2"><a class="anchor" id="a4647d9bf5fd03b0850ada381916e9728"></a>
template&lt;typename... Arguments&gt; </td></tr>
<tr class="memitem:ab9009e8a1bdf70623f6480681bb6b56a"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><b>emplace</b> (Arguments &amp;&amp;...args)</td></tr>
<tr class="separator:ab9009e8a1bdf70623f6480681bb6b56a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a87926c31967a918ce80690a9ed5d6fa8"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00039.html#a87926c31967a918ce80690a9ed5d6fa8">pop</a> (T &amp;destination)</td></tr>
<tr class="memdesc:a87926c31967a918ce80690a9ed5d6fa8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Dequeue item from head of queue. <a href="#a87926c31967a918ce80690a9ed5d6fa8">More...</a><br/></td></tr>
<tr class="separator:a87926c31967a918ce80690a9ed5d6fa8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a77a755d94cabf5208905d10d5b57419c"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a77a755d94cabf5208905d10d5b57419c"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00039.html#a77a755d94cabf5208905d10d5b57419c">abort</a> ()</td></tr>
<tr class="memdesc:a77a755d94cabf5208905d10d5b57419c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Abort all pending queue operations. <br/></td></tr>
<tr class="separator:a77a755d94cabf5208905d10d5b57419c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a03d93a240841a21788396bebd71c51bd"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00039.html#a03d93a240841a21788396bebd71c51bd">try_push</a> (const T &amp;source)</td></tr>
<tr class="memdesc:a03d93a240841a21788396bebd71c51bd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Enqueue an item at tail of queue if queue is not already full. <a href="#a03d93a240841a21788396bebd71c51bd">More...</a><br/></td></tr>
<tr class="separator:a03d93a240841a21788396bebd71c51bd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a93f35e9d9381629e0a2993f9fdd96d92"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00039.html#a93f35e9d9381629e0a2993f9fdd96d92">try_push</a> (T &amp;&amp;source)</td></tr>
<tr class="memdesc:a93f35e9d9381629e0a2993f9fdd96d92"><td class="mdescLeft">&#160;</td><td class="mdescRight">Move an item at tail of queue if queue is not already full. <a href="#a93f35e9d9381629e0a2993f9fdd96d92">More...</a><br/></td></tr>
<tr class="separator:a93f35e9d9381629e0a2993f9fdd96d92"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0a4351eb8c93b6b2d9feaff0c7088ee8"><td class="memTemplParams" colspan="2"><a class="anchor" id="a0a4351eb8c93b6b2d9feaff0c7088ee8"></a>
template&lt;typename... Arguments&gt; </td></tr>
<tr class="memitem:a0a4351eb8c93b6b2d9feaff0c7088ee8"><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><b>try_emplace</b> (Arguments &amp;&amp;...args)</td></tr>
<tr class="separator:a0a4351eb8c93b6b2d9feaff0c7088ee8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3086cb4dcdeee245ef5cf34f72fb3e10"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00039.html#a3086cb4dcdeee245ef5cf34f72fb3e10">try_pop</a> (T &amp;destination)</td></tr>
<tr class="memdesc:a3086cb4dcdeee245ef5cf34f72fb3e10"><td class="mdescLeft">&#160;</td><td class="mdescRight">Attempt to dequeue an item from head of queue. <a href="#a3086cb4dcdeee245ef5cf34f72fb3e10">More...</a><br/></td></tr>
<tr class="separator:a3086cb4dcdeee245ef5cf34f72fb3e10"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9d6c20fd8c193c12b6a7b0c3101fd966"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00039.html#ae73fa352d781bdb9d01bfb77f2a8bc28">size_type</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00039.html#a9d6c20fd8c193c12b6a7b0c3101fd966">size</a> () const </td></tr>
<tr class="memdesc:a9d6c20fd8c193c12b6a7b0c3101fd966"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return number of pushes minus number of pops. <a href="#a9d6c20fd8c193c12b6a7b0c3101fd966">More...</a><br/></td></tr>
<tr class="separator:a9d6c20fd8c193c12b6a7b0c3101fd966"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8c59578f28c5fb4718b0eff43776e879"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a8c59578f28c5fb4718b0eff43776e879"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00039.html#a8c59578f28c5fb4718b0eff43776e879">empty</a> () const </td></tr>
<tr class="memdesc:a8c59578f28c5fb4718b0eff43776e879"><td class="mdescLeft">&#160;</td><td class="mdescRight">Equivalent to <a class="el" href="a00039.html#a9d6c20fd8c193c12b6a7b0c3101fd966" title="Return number of pushes minus number of pops. ">size()</a>&lt;=0. <br/></td></tr>
<tr class="separator:a8c59578f28c5fb4718b0eff43776e879"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a526487063242569685af8c8d778d39e0"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a526487063242569685af8c8d778d39e0"></a>
<a class="el" href="a00039.html#ae73fa352d781bdb9d01bfb77f2a8bc28">size_type</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00039.html#a526487063242569685af8c8d778d39e0">capacity</a> () const </td></tr>
<tr class="memdesc:a526487063242569685af8c8d778d39e0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Maximum number of allowed elements. <br/></td></tr>
<tr class="separator:a526487063242569685af8c8d778d39e0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a768699675813575eec08c1f43afda395"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00039.html#a768699675813575eec08c1f43afda395">set_capacity</a> (<a class="el" href="a00039.html#ae73fa352d781bdb9d01bfb77f2a8bc28">size_type</a> new_capacity)</td></tr>
<tr class="memdesc:a768699675813575eec08c1f43afda395"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the capacity. <a href="#a768699675813575eec08c1f43afda395">More...</a><br/></td></tr>
<tr class="separator:a768699675813575eec08c1f43afda395"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aaeba11bbcd368a7a3a6e6e2dd3082c9c"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aaeba11bbcd368a7a3a6e6e2dd3082c9c"></a>
<a class="el" href="a00039.html#acbfceb845de1c770e2b56409f09b0364">allocator_type</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00039.html#aaeba11bbcd368a7a3a6e6e2dd3082c9c">get_allocator</a> () const </td></tr>
<tr class="memdesc:aaeba11bbcd368a7a3a6e6e2dd3082c9c"><td class="mdescLeft">&#160;</td><td class="mdescRight">return allocator object <br/></td></tr>
<tr class="separator:aaeba11bbcd368a7a3a6e6e2dd3082c9c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a246be3920e079ea4847933f106baa98f"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a246be3920e079ea4847933f106baa98f"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00039.html#a246be3920e079ea4847933f106baa98f">clear</a> ()</td></tr>
<tr class="memdesc:a246be3920e079ea4847933f106baa98f"><td class="mdescLeft">&#160;</td><td class="mdescRight">clear the queue. not thread-safe. <br/></td></tr>
<tr class="separator:a246be3920e079ea4847933f106baa98f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac0c931eaa1ddc30025e49d06cc383703"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ac0c931eaa1ddc30025e49d06cc383703"></a>
<tr class="memitem:a4647d9bf5fd03b0850ada381916e9728"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><b>emplace</b> (Arguments &amp;&amp;...args)</td></tr>
<tr class="separator:a4647d9bf5fd03b0850ada381916e9728"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aabb1acef18196fa11ed7db8e046c3943"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00039.html#aabb1acef18196fa11ed7db8e046c3943">try_pop</a> (T &amp;result)</td></tr>
<tr class="memdesc:aabb1acef18196fa11ed7db8e046c3943"><td class="mdescLeft">&#160;</td><td class="mdescRight">Attempt to dequeue an item from head of queue. <a href="#aabb1acef18196fa11ed7db8e046c3943">More...</a><br/></td></tr>
<tr class="separator:aabb1acef18196fa11ed7db8e046c3943"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aad4b253ba595637b0b146eb6565556f2"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aad4b253ba595637b0b146eb6565556f2"></a>
<a class="el" href="a00039.html#a9f883e49afea16293ba92da779981bb8">size_type</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00039.html#aad4b253ba595637b0b146eb6565556f2">unsafe_size</a> () const </td></tr>
<tr class="memdesc:aad4b253ba595637b0b146eb6565556f2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the number of items in the queue; thread unsafe. <br/></td></tr>
<tr class="separator:aad4b253ba595637b0b146eb6565556f2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aeda3156929d0c250faed7b807ca6ab0e"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aeda3156929d0c250faed7b807ca6ab0e"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00039.html#aeda3156929d0c250faed7b807ca6ab0e">empty</a> () const </td></tr>
<tr class="memdesc:aeda3156929d0c250faed7b807ca6ab0e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Equivalent to size()==0. <br/></td></tr>
<tr class="separator:aeda3156929d0c250faed7b807ca6ab0e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad3384818fb6350a494d5ec62445e59ee"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ad3384818fb6350a494d5ec62445e59ee"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00039.html#ad3384818fb6350a494d5ec62445e59ee">clear</a> ()</td></tr>
<tr class="memdesc:ad3384818fb6350a494d5ec62445e59ee"><td class="mdescLeft">&#160;</td><td class="mdescRight">Clear the queue. not thread-safe. <br/></td></tr>
<tr class="separator:ad3384818fb6350a494d5ec62445e59ee"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7f2b39f350281590b86db906eca6c480"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a7f2b39f350281590b86db906eca6c480"></a>
<a class="el" href="a00039.html#acbdd1a5bd034358fb0774b322a66b1ed">allocator_type</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00039.html#a7f2b39f350281590b86db906eca6c480">get_allocator</a> () const </td></tr>
<tr class="memdesc:a7f2b39f350281590b86db906eca6c480"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return allocator object. <br/></td></tr>
<tr class="separator:a7f2b39f350281590b86db906eca6c480"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6658faeae3c10135a553fedadddde239"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a6658faeae3c10135a553fedadddde239"></a>
iterator&#160;</td><td class="memItemRight" valign="bottom"><b>unsafe_begin</b> ()</td></tr>
<tr class="separator:ac0c931eaa1ddc30025e49d06cc383703"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a634cece9742cbaba56ba6f7777568e4c"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a634cece9742cbaba56ba6f7777568e4c"></a>
<tr class="separator:a6658faeae3c10135a553fedadddde239"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa7593de5e76006ed3adef4d060f0009c"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aa7593de5e76006ed3adef4d060f0009c"></a>
iterator&#160;</td><td class="memItemRight" valign="bottom"><b>unsafe_end</b> ()</td></tr>
<tr class="separator:a634cece9742cbaba56ba6f7777568e4c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2ed2f8130fd679e89327cb292fb25510"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a2ed2f8130fd679e89327cb292fb25510"></a>
<tr class="separator:aa7593de5e76006ed3adef4d060f0009c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0f84b37020f4267f17c7e91acfc0c446"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a0f84b37020f4267f17c7e91acfc0c446"></a>
const_iterator&#160;</td><td class="memItemRight" valign="bottom"><b>unsafe_begin</b> () const </td></tr>
<tr class="separator:a2ed2f8130fd679e89327cb292fb25510"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a873d62f59fd79959c0204f5fb44c774d"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a873d62f59fd79959c0204f5fb44c774d"></a>
<tr class="separator:a0f84b37020f4267f17c7e91acfc0c446"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a118a79d7e20cdbd807fa7fccc2a5b848"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a118a79d7e20cdbd807fa7fccc2a5b848"></a>
const_iterator&#160;</td><td class="memItemRight" valign="bottom"><b>unsafe_end</b> () const </td></tr>
<tr class="separator:a873d62f59fd79959c0204f5fb44c774d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="separator:a118a79d7e20cdbd807fa7fccc2a5b848"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="friends"></a>
Friends</h2></td></tr>
@@ -199,130 +174,26 @@ template&lt;typename Container , typename Value &gt; </td></tr>
<tr class="separator:a1f5eec0de2e660ea5372d19393f0920b"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><h3>template&lt;typename T, class A = cache_aligned_allocator&lt;T&gt;&gt;<br/>
class tbb::concurrent_bounded_queue&lt; T, A &gt;</h3>
<div class="textblock"><h3>template&lt;typename T, typename A = cache_aligned_allocator&lt;T&gt;&gt;<br/>
class tbb::strict_ppl::concurrent_queue&lt; T, A &gt;</h3>
<p>A high-performance thread-safe blocking concurrent bounded queue. </p>
<p>This is the pre-PPL TBB concurrent queue which supports boundedness and blocking semantics. Note that method names agree with the PPL-style concurrent queue. Multiple threads may each push and pop concurrently. Assignment construction is not allowed. </p>
</div><h2 class="groupheader">Member Typedef Documentation</h2>
<a class="anchor" id="ae73fa352d781bdb9d01bfb77f2a8bc28"></a>
<p>A high-performance thread-safe non-blocking concurrent queue. </p>
<p>Multiple threads may each push and pop concurrently. Assignment construction is not allowed. </p>
</div><h2 class="groupheader">Member Function Documentation</h2>
<a class="anchor" id="aabb1acef18196fa11ed7db8e046c3943"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T , class A = cache_aligned_allocator&lt;T&gt;&gt; </div>
<table class="memname">
<tr>
<td class="memname">typedef std::ptrdiff_t <a class="el" href="a00039.html">tbb::concurrent_bounded_queue</a>&lt; T, A &gt;::<a class="el" href="a00039.html#ae73fa352d781bdb9d01bfb77f2a8bc28">size_type</a></td>
</tr>
</table>
</div><div class="memdoc">
<p>Integral type for representing size of the queue. </p>
<p>Note that the size_type is a signed integral type. This is because the size can be negative if there are pending pops without corresponding pushes. </p>
</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a class="anchor" id="a87926c31967a918ce80690a9ed5d6fa8"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T , class A = cache_aligned_allocator&lt;T&gt;&gt; </div>
template&lt;typename T , typename A = cache_aligned_allocator&lt;T&gt;&gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void <a class="el" href="a00039.html">tbb::concurrent_bounded_queue</a>&lt; T, A &gt;::pop </td>
<td class="memname">bool <a class="el" href="a00039.html">tbb::strict_ppl::concurrent_queue</a>&lt; T, A &gt;::try_pop </td>
<td>(</td>
<td class="paramtype">T &amp;&#160;</td>
<td class="paramname"><em>destination</em>)</td><td></td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Dequeue item from head of queue. </p>
<p>Block until an item becomes available, and then dequeue it. </p>
</div>
</div>
<a class="anchor" id="a768699675813575eec08c1f43afda395"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T , class A = cache_aligned_allocator&lt;T&gt;&gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void <a class="el" href="a00039.html">tbb::concurrent_bounded_queue</a>&lt; T, A &gt;::set_capacity </td>
<td>(</td>
<td class="paramtype"><a class="el" href="a00039.html#ae73fa352d781bdb9d01bfb77f2a8bc28">size_type</a>&#160;</td>
<td class="paramname"><em>new_capacity</em>)</td><td></td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Set the capacity. </p>
<p>Setting the capacity to 0 causes subsequent try_push operations to always fail, and subsequent push operations to block forever. </p>
</div>
</div>
<a class="anchor" id="a9d6c20fd8c193c12b6a7b0c3101fd966"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T , class A = cache_aligned_allocator&lt;T&gt;&gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="a00039.html#ae73fa352d781bdb9d01bfb77f2a8bc28">size_type</a> <a class="el" href="a00039.html">tbb::concurrent_bounded_queue</a>&lt; T, A &gt;::size </td>
<td>(</td>
<td class="paramname">)</td><td></td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Return number of pushes minus number of pops. </p>
<p>Note that the result can be negative if there are pops waiting for the corresponding pushes. The result can also exceed <a class="el" href="a00039.html#a526487063242569685af8c8d778d39e0" title="Maximum number of allowed elements. ">capacity()</a> if there are push operations in flight. </p>
</div>
</div>
<a class="anchor" id="a3086cb4dcdeee245ef5cf34f72fb3e10"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T , class A = cache_aligned_allocator&lt;T&gt;&gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">bool <a class="el" href="a00039.html">tbb::concurrent_bounded_queue</a>&lt; T, A &gt;::try_pop </td>
<td>(</td>
<td class="paramtype">T &amp;&#160;</td>
<td class="paramname"><em>destination</em>)</td><td></td>
<td class="paramname"><em>result</em>)</td><td></td>
<td></td>
</tr>
</table>
@@ -336,64 +207,6 @@ template&lt;typename T , class A = cache_aligned_allocator&lt;T&gt;&gt; </div>
<p>Attempt to dequeue an item from head of queue. </p>
<p>Does not wait for item to become available. Returns true if successful; false otherwise. </p>
</div>
</div>
<a class="anchor" id="a03d93a240841a21788396bebd71c51bd"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T , class A = cache_aligned_allocator&lt;T&gt;&gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">bool <a class="el" href="a00039.html">tbb::concurrent_bounded_queue</a>&lt; T, A &gt;::try_push </td>
<td>(</td>
<td class="paramtype">const T &amp;&#160;</td>
<td class="paramname"><em>source</em>)</td><td></td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Enqueue an item at tail of queue if queue is not already full. </p>
<p>Does not wait for queue to become not full. Returns true if item is pushed; false if queue was already full. </p>
</div>
</div>
<a class="anchor" id="a93f35e9d9381629e0a2993f9fdd96d92"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T , class A = cache_aligned_allocator&lt;T&gt;&gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">bool <a class="el" href="a00039.html">tbb::concurrent_bounded_queue</a>&lt; T, A &gt;::try_push </td>
<td>(</td>
<td class="paramtype">T &amp;&amp;&#160;</td>
<td class="paramname"><em>source</em>)</td><td></td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Move an item at tail of queue if queue is not already full. </p>
<p>Does not wait for queue to become not full. Returns true if item is pushed; false if queue was already full. </p>
</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
Binary file not shown.

Before

Width:  |  Height:  |  Size: 766 B

After

Width:  |  Height:  |  Size: 872 B

+98 -1020
View File
File diff suppressed because it is too large Load Diff
Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.0 KiB

After

Width:  |  Height:  |  Size: 2.1 KiB

+49 -34
View File
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.4"/>
<title>tbb::interface6::concurrent_lru_cache&lt; key_type, value_type, value_functor_type &gt; Class Template Reference</title>
<title>tbb::interface5::concurrent_unordered_map_traits&lt; Key, T, Hash_compare, Allocator, Allow_multimapping &gt; Class Template Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -33,52 +33,67 @@
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="a00237.html">tbb</a></li><li class="navelem"><b>interface6</b></li><li class="navelem"><a class="el" href="a00041.html">concurrent_lru_cache</a></li> </ul>
<li class="navelem"><a class="el" href="a00234.html">tbb</a></li><li class="navelem"><b>interface5</b></li><li class="navelem"><a class="el" href="a00041.html">concurrent_unordered_map_traits</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#nested-classes">Classes</a> &#124;
<a href="#pub-types">Public Types</a> &#124;
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#friends">Friends</a> &#124;
<a href="a00383.html">List of all members</a> </div>
<a href="#pro-types">Protected Types</a> &#124;
<a href="#pro-methods">Protected Member Functions</a> &#124;
<a href="#pro-static-methods">Static Protected Member Functions</a> &#124;
<a href="#pro-attribs">Protected Attributes</a> &#124;
<a href="a00364.html">List of all members</a> </div>
<div class="headertitle">
<div class="title">tbb::interface6::concurrent_lru_cache&lt; key_type, value_type, value_functor_type &gt; Class Template Reference</div> </div>
<div class="title">tbb::interface5::concurrent_unordered_map_traits&lt; Key, T, Hash_compare, Allocator, Allow_multimapping &gt; Class Template Reference</div> </div>
</div><!--header-->
<div class="contents">
<div class="dynheader">
Inheritance diagram for tbb::interface6::concurrent_lru_cache&lt; key_type, value_type, value_functor_type &gt;:</div>
<div class="dyncontent">
<div class="center">
<img src="a00041.png" usemap="#tbb::interface6::concurrent_lru_cache&lt; key_type, value_type, value_functor_type &gt;_map" alt=""/>
<map id="tbb::interface6::concurrent_lru_cache&lt; key_type, value_type, value_functor_type &gt;_map" name="tbb::interface6::concurrent_lru_cache&lt; key_type, value_type, value_functor_type &gt;_map">
</map>
</div></div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-types"></a>
Public Types</h2></td></tr>
<tr class="memitem:ac498dc4d73a75cbc0d50a15622f06e13"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ac498dc4d73a75cbc0d50a15622f06e13"></a>
typedef handle_object&#160;</td><td class="memItemRight" valign="bottom"><b>handle</b></td></tr>
<tr class="separator:ac498dc4d73a75cbc0d50a15622f06e13"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
Classes</h2></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00169.html">value_compare</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:ad4c0b512bb4ad5109eaae1519ba06d98"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ad4c0b512bb4ad5109eaae1519ba06d98"></a>
&#160;</td><td class="memItemRight" valign="bottom"><b>concurrent_lru_cache</b> (value_function_type f, std::size_t number_of_lru_history_items)</td></tr>
<tr class="separator:ad4c0b512bb4ad5109eaae1519ba06d98"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a632c3911a55cfda997acce279c471ec3"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a632c3911a55cfda997acce279c471ec3"></a>
handle_object&#160;</td><td class="memItemRight" valign="bottom"><b>operator[]</b> (key_type k)</td></tr>
<tr class="separator:a632c3911a55cfda997acce279c471ec3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-types"></a>
Protected Types</h2></td></tr>
<tr class="memitem:a3a4d3aae580451e86649ce3a3ae38894"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom">{ <b>allow_multimapping</b> = Allow_multimapping
}</td></tr>
<tr class="separator:a3a4d3aae580451e86649ce3a3ae38894"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0c77b12f17473e24cda4b60b38e847fd"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a0c77b12f17473e24cda4b60b38e847fd"></a>
typedef std::pair&lt; const Key, T &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>value_type</b></td></tr>
<tr class="separator:a0c77b12f17473e24cda4b60b38e847fd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a133cf0868239271387488f6067ce56ee"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a133cf0868239271387488f6067ce56ee"></a>
typedef Key&#160;</td><td class="memItemRight" valign="bottom"><b>key_type</b></td></tr>
<tr class="separator:a133cf0868239271387488f6067ce56ee"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afdf65dc261abb44bd733ebab0f54f01b"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="afdf65dc261abb44bd733ebab0f54f01b"></a>
typedef Hash_compare&#160;</td><td class="memItemRight" valign="bottom"><b>hash_compare</b></td></tr>
<tr class="separator:afdf65dc261abb44bd733ebab0f54f01b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5f015ac2f9770d8cd69d0656447b66ac"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a5f015ac2f9770d8cd69d0656447b66ac"></a>
typedef Allocator::template <br class="typebreak"/>
rebind&lt; value_type &gt;::other&#160;</td><td class="memItemRight" valign="bottom"><b>allocator_type</b></td></tr>
<tr class="separator:a5f015ac2f9770d8cd69d0656447b66ac"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="friends"></a>
Friends</h2></td></tr>
<tr class="memitem:ab9fb998ff3f90c4dc7cefd09f8ff1365"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ab9fb998ff3f90c4dc7cefd09f8ff1365"></a>
class&#160;</td><td class="memItemRight" valign="bottom"><b>tbb::internal::aggregating_functor&lt; self_type, aggregated_operation_type &gt;</b></td></tr>
<tr class="separator:ab9fb998ff3f90c4dc7cefd09f8ff1365"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-methods"></a>
Protected Member Functions</h2></td></tr>
<tr class="memitem:ae9e1e3147bd444fb77c544ef7ecb5bef"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ae9e1e3147bd444fb77c544ef7ecb5bef"></a>
&#160;</td><td class="memItemRight" valign="bottom"><b>concurrent_unordered_map_traits</b> (const hash_compare &amp;hc)</td></tr>
<tr class="separator:ae9e1e3147bd444fb77c544ef7ecb5bef"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-static-methods"></a>
Static Protected Member Functions</h2></td></tr>
<tr class="memitem:a561f2cf05060387c8282ad57f5c816ca"><td class="memTemplParams" colspan="2"><a class="anchor" id="a561f2cf05060387c8282ad57f5c816ca"></a>
template&lt;class Type1 , class Type2 &gt; </td></tr>
<tr class="memitem:a561f2cf05060387c8282ad57f5c816ca"><td class="memTemplItemLeft" align="right" valign="top">static const Key &amp;&#160;</td><td class="memTemplItemRight" valign="bottom"><b>get_key</b> (const std::pair&lt; Type1, Type2 &gt; &amp;value)</td></tr>
<tr class="separator:a561f2cf05060387c8282ad57f5c816ca"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-attribs"></a>
Protected Attributes</h2></td></tr>
<tr class="memitem:ad8f108aa7fc21e9e38050a9d56e691b7"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ad8f108aa7fc21e9e38050a9d56e691b7"></a>
hash_compare&#160;</td><td class="memItemRight" valign="bottom"><b>my_hash_compare</b></td></tr>
<tr class="separator:ad8f108aa7fc21e9e38050a9d56e691b7"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<hr/>The documentation for this class was generated from the following file:<ul>
<li>concurrent_lru_cache.h</li>
<li>concurrent_unordered_map.h</li>
</ul>
</div><!-- contents -->
<hr>
+96 -544
View File
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.4"/>
<title>tbb::interface5::concurrent_priority_queue&lt; T, Compare, A &gt; Class Template Reference</title>
<title>tbb::interface5::concurrent_unordered_multimap&lt; Key, T, Hasher, Key_equality, Allocator &gt; Class Template Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -33,566 +33,118 @@
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="a00237.html">tbb</a></li><li class="navelem"><b>interface5</b></li><li class="navelem"><a class="el" href="a00042.html">concurrent_priority_queue</a></li> </ul>
<li class="navelem"><a class="el" href="a00234.html">tbb</a></li><li class="navelem"><b>interface5</b></li><li class="navelem"><a class="el" href="a00042.html">concurrent_unordered_multimap</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#nested-classes">Classes</a> &#124;
<a href="#pub-types">Public Types</a> &#124;
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="a00368.html">List of all members</a> </div>
<a href="a00367.html">List of all members</a> </div>
<div class="headertitle">
<div class="title">tbb::interface5::concurrent_priority_queue&lt; T, Compare, A &gt; Class Template Reference</div> </div>
<div class="title">tbb::interface5::concurrent_unordered_multimap&lt; Key, T, Hasher, Key_equality, Allocator &gt; Class Template Reference</div> </div>
</div><!--header-->
<div class="contents">
<p>Concurrent priority queue.
<a href="a00042.html#details">More...</a></p>
<p><code>#include &lt;concurrent_priority_queue.h&gt;</code></p>
<div class="dynheader">
Inheritance diagram for tbb::interface5::concurrent_unordered_multimap&lt; Key, T, Hasher, Key_equality, Allocator &gt;:</div>
<div class="dyncontent">
<div class="center">
<img src="a00042.png" usemap="#tbb::interface5::concurrent_unordered_multimap&lt; Key, T, Hasher, Key_equality, Allocator &gt;_map" alt=""/>
<map id="tbb::interface5::concurrent_unordered_multimap&lt; Key, T, Hasher, Key_equality, Allocator &gt;_map" name="tbb::interface5::concurrent_unordered_multimap&lt; Key, T, Hasher, Key_equality, Allocator &gt;_map">
</map>
</div></div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-types"></a>
Public Types</h2></td></tr>
<tr class="memitem:a2c75d97ae429019363ab6fd1a872512e"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a2c75d97ae429019363ab6fd1a872512e"></a>
typedef T&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00042.html#a2c75d97ae429019363ab6fd1a872512e">value_type</a></td></tr>
<tr class="memdesc:a2c75d97ae429019363ab6fd1a872512e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Element type in the queue. <br/></td></tr>
<tr class="separator:a2c75d97ae429019363ab6fd1a872512e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae4b7ed2ddc8ec6cc910f935c9d299c7a"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ae4b7ed2ddc8ec6cc910f935c9d299c7a"></a>
typedef T &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00042.html#ae4b7ed2ddc8ec6cc910f935c9d299c7a">reference</a></td></tr>
<tr class="memdesc:ae4b7ed2ddc8ec6cc910f935c9d299c7a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reference type. <br/></td></tr>
<tr class="separator:ae4b7ed2ddc8ec6cc910f935c9d299c7a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0bd617fe8e4657777e86f0ae15d8094f"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a0bd617fe8e4657777e86f0ae15d8094f"></a>
typedef const T &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00042.html#a0bd617fe8e4657777e86f0ae15d8094f">const_reference</a></td></tr>
<tr class="memdesc:a0bd617fe8e4657777e86f0ae15d8094f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Const reference type. <br/></td></tr>
<tr class="separator:a0bd617fe8e4657777e86f0ae15d8094f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7d3da9b47ec58e1c09e3550f702edcfc"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a7d3da9b47ec58e1c09e3550f702edcfc"></a>
typedef size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00042.html#a7d3da9b47ec58e1c09e3550f702edcfc">size_type</a></td></tr>
<tr class="memdesc:a7d3da9b47ec58e1c09e3550f702edcfc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Integral type for representing size of the queue. <br/></td></tr>
<tr class="separator:a7d3da9b47ec58e1c09e3550f702edcfc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae010b1fa9c0942504737228474b51a0b"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ae010b1fa9c0942504737228474b51a0b"></a>
typedef ptrdiff_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00042.html#ae010b1fa9c0942504737228474b51a0b">difference_type</a></td></tr>
<tr class="memdesc:ae010b1fa9c0942504737228474b51a0b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Difference type for iterator. <br/></td></tr>
<tr class="separator:ae010b1fa9c0942504737228474b51a0b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1d2cebf242fa83d88eebdc3ad6891fb1"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a1d2cebf242fa83d88eebdc3ad6891fb1"></a>
typedef A&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00042.html#a1d2cebf242fa83d88eebdc3ad6891fb1">allocator_type</a></td></tr>
<tr class="memdesc:a1d2cebf242fa83d88eebdc3ad6891fb1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Allocator type. <br/></td></tr>
<tr class="separator:a1d2cebf242fa83d88eebdc3ad6891fb1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a13c740f45a112984c9a0c6d0d0a1a4d8"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a13c740f45a112984c9a0c6d0d0a1a4d8"></a>
typedef Key&#160;</td><td class="memItemRight" valign="bottom"><b>key_type</b></td></tr>
<tr class="separator:a13c740f45a112984c9a0c6d0d0a1a4d8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1b89d9eeca4d1c194433b40671da2bf2"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a1b89d9eeca4d1c194433b40671da2bf2"></a>
typedef base_type::value_type&#160;</td><td class="memItemRight" valign="bottom"><b>value_type</b></td></tr>
<tr class="separator:a1b89d9eeca4d1c194433b40671da2bf2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a627d86449ed7299d1baa4b09b6dd93f6"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a627d86449ed7299d1baa4b09b6dd93f6"></a>
typedef T&#160;</td><td class="memItemRight" valign="bottom"><b>mapped_type</b></td></tr>
<tr class="separator:a627d86449ed7299d1baa4b09b6dd93f6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8485b8d61b666ac6ddd81e1d4b286d5e"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a8485b8d61b666ac6ddd81e1d4b286d5e"></a>
typedef Hasher&#160;</td><td class="memItemRight" valign="bottom"><b>hasher</b></td></tr>
<tr class="separator:a8485b8d61b666ac6ddd81e1d4b286d5e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a72a124e1c8c64499677e58171a7b9383"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a72a124e1c8c64499677e58171a7b9383"></a>
typedef Key_equality&#160;</td><td class="memItemRight" valign="bottom"><b>key_equal</b></td></tr>
<tr class="separator:a72a124e1c8c64499677e58171a7b9383"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6ecb30201df0bd885fbba309b2392bd4"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a6ecb30201df0bd885fbba309b2392bd4"></a>
typedef hash_compare&#160;</td><td class="memItemRight" valign="bottom"><b>key_compare</b></td></tr>
<tr class="separator:a6ecb30201df0bd885fbba309b2392bd4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aaeeee0c045e0003b85f60a6851d1d827"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aaeeee0c045e0003b85f60a6851d1d827"></a>
typedef base_type::allocator_type&#160;</td><td class="memItemRight" valign="bottom"><b>allocator_type</b></td></tr>
<tr class="separator:aaeeee0c045e0003b85f60a6851d1d827"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a029187ffe49ae876f41dfca39fe6f288"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a029187ffe49ae876f41dfca39fe6f288"></a>
typedef base_type::pointer&#160;</td><td class="memItemRight" valign="bottom"><b>pointer</b></td></tr>
<tr class="separator:a029187ffe49ae876f41dfca39fe6f288"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a55c029b4a58d1201e08ef5ba14fc0a66"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a55c029b4a58d1201e08ef5ba14fc0a66"></a>
typedef base_type::const_pointer&#160;</td><td class="memItemRight" valign="bottom"><b>const_pointer</b></td></tr>
<tr class="separator:a55c029b4a58d1201e08ef5ba14fc0a66"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac4613be39e17bc83cf85d3b90a13fa09"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ac4613be39e17bc83cf85d3b90a13fa09"></a>
typedef base_type::reference&#160;</td><td class="memItemRight" valign="bottom"><b>reference</b></td></tr>
<tr class="separator:ac4613be39e17bc83cf85d3b90a13fa09"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0b9ef2bc9a8574b16ef678e838ff4e96"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a0b9ef2bc9a8574b16ef678e838ff4e96"></a>
typedef base_type::const_reference&#160;</td><td class="memItemRight" valign="bottom"><b>const_reference</b></td></tr>
<tr class="separator:a0b9ef2bc9a8574b16ef678e838ff4e96"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a49038d8ed5f392bce440d7906b39ee53"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a49038d8ed5f392bce440d7906b39ee53"></a>
typedef base_type::size_type&#160;</td><td class="memItemRight" valign="bottom"><b>size_type</b></td></tr>
<tr class="separator:a49038d8ed5f392bce440d7906b39ee53"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a517a0b94b44d429f7f23b6d9f5366b36"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a517a0b94b44d429f7f23b6d9f5366b36"></a>
typedef base_type::difference_type&#160;</td><td class="memItemRight" valign="bottom"><b>difference_type</b></td></tr>
<tr class="separator:a517a0b94b44d429f7f23b6d9f5366b36"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a494392b2f3400393ae2696a70e2411f4"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a494392b2f3400393ae2696a70e2411f4"></a>
typedef base_type::iterator&#160;</td><td class="memItemRight" valign="bottom"><b>iterator</b></td></tr>
<tr class="separator:a494392b2f3400393ae2696a70e2411f4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2460242ba39d70a0473eac4ee62b898c"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a2460242ba39d70a0473eac4ee62b898c"></a>
typedef base_type::const_iterator&#160;</td><td class="memItemRight" valign="bottom"><b>const_iterator</b></td></tr>
<tr class="separator:a2460242ba39d70a0473eac4ee62b898c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a75ad2607efde410d591002203deb65e6"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a75ad2607efde410d591002203deb65e6"></a>
typedef base_type::iterator&#160;</td><td class="memItemRight" valign="bottom"><b>local_iterator</b></td></tr>
<tr class="separator:a75ad2607efde410d591002203deb65e6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab7647068dd628f35d3e3f7ed161b3fc0"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ab7647068dd628f35d3e3f7ed161b3fc0"></a>
typedef base_type::const_iterator&#160;</td><td class="memItemRight" valign="bottom"><b>const_local_iterator</b></td></tr>
<tr class="separator:ab7647068dd628f35d3e3f7ed161b3fc0"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:a405be01bac4048f214797c287e2571a1"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a405be01bac4048f214797c287e2571a1"></a>
&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00042.html#a405be01bac4048f214797c287e2571a1">concurrent_priority_queue</a> (const <a class="el" href="a00042.html#a1d2cebf242fa83d88eebdc3ad6891fb1">allocator_type</a> &amp;a=<a class="el" href="a00042.html#a1d2cebf242fa83d88eebdc3ad6891fb1">allocator_type</a>())</td></tr>
<tr class="memdesc:a405be01bac4048f214797c287e2571a1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructs a new <a class="el" href="a00042.html" title="Concurrent priority queue. ">concurrent_priority_queue</a> with default capacity. <br/></td></tr>
<tr class="separator:a405be01bac4048f214797c287e2571a1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a43c3917ea8a19cf1fec947e29ad4ff3e"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a43c3917ea8a19cf1fec947e29ad4ff3e"></a>
&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00042.html#a43c3917ea8a19cf1fec947e29ad4ff3e">concurrent_priority_queue</a> (<a class="el" href="a00042.html#a7d3da9b47ec58e1c09e3550f702edcfc">size_type</a> init_capacity, const <a class="el" href="a00042.html#a1d2cebf242fa83d88eebdc3ad6891fb1">allocator_type</a> &amp;a=<a class="el" href="a00042.html#a1d2cebf242fa83d88eebdc3ad6891fb1">allocator_type</a>())</td></tr>
<tr class="memdesc:a43c3917ea8a19cf1fec947e29ad4ff3e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructs a new <a class="el" href="a00042.html" title="Concurrent priority queue. ">concurrent_priority_queue</a> with init_sz capacity. <br/></td></tr>
<tr class="separator:a43c3917ea8a19cf1fec947e29ad4ff3e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0cebee26cc0d00d4dcbb1c74e08029f7"><td class="memTemplParams" colspan="2"><a class="anchor" id="a0cebee26cc0d00d4dcbb1c74e08029f7"></a>
template&lt;typename InputIterator &gt; </td></tr>
<tr class="memitem:a0cebee26cc0d00d4dcbb1c74e08029f7"><td class="memTemplItemLeft" align="right" valign="top">&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00042.html#a0cebee26cc0d00d4dcbb1c74e08029f7">concurrent_priority_queue</a> (InputIterator begin, InputIterator end, const <a class="el" href="a00042.html#a1d2cebf242fa83d88eebdc3ad6891fb1">allocator_type</a> &amp;a=<a class="el" href="a00042.html#a1d2cebf242fa83d88eebdc3ad6891fb1">allocator_type</a>())</td></tr>
<tr class="memdesc:a0cebee26cc0d00d4dcbb1c74e08029f7"><td class="mdescLeft">&#160;</td><td class="mdescRight">[begin,end) constructor <br/></td></tr>
<tr class="separator:a0cebee26cc0d00d4dcbb1c74e08029f7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aaa8ac175143e12db29a014674a392b38"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aaa8ac175143e12db29a014674a392b38"></a>
&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00042.html#aaa8ac175143e12db29a014674a392b38">concurrent_priority_queue</a> (std::initializer_list&lt; T &gt; init_list, const <a class="el" href="a00042.html#a1d2cebf242fa83d88eebdc3ad6891fb1">allocator_type</a> &amp;a=<a class="el" href="a00042.html#a1d2cebf242fa83d88eebdc3ad6891fb1">allocator_type</a>())</td></tr>
<tr class="memdesc:aaa8ac175143e12db29a014674a392b38"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructor from std::initializer_list. <br/></td></tr>
<tr class="separator:aaa8ac175143e12db29a014674a392b38"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a332d26234f9c37a6b7ba269c648815d0"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00042.html#a332d26234f9c37a6b7ba269c648815d0">concurrent_priority_queue</a> (const <a class="el" href="a00042.html">concurrent_priority_queue</a> &amp;src)</td></tr>
<tr class="memdesc:a332d26234f9c37a6b7ba269c648815d0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Copy constructor. <a href="#a332d26234f9c37a6b7ba269c648815d0">More...</a><br/></td></tr>
<tr class="separator:a332d26234f9c37a6b7ba269c648815d0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa52cea369b6630699ee78cc42622be9d"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00042.html#aa52cea369b6630699ee78cc42622be9d">concurrent_priority_queue</a> (const <a class="el" href="a00042.html">concurrent_priority_queue</a> &amp;src, const <a class="el" href="a00042.html#a1d2cebf242fa83d88eebdc3ad6891fb1">allocator_type</a> &amp;a)</td></tr>
<tr class="memdesc:aa52cea369b6630699ee78cc42622be9d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Copy constructor with specific allocator. <a href="#aa52cea369b6630699ee78cc42622be9d">More...</a><br/></td></tr>
<tr class="separator:aa52cea369b6630699ee78cc42622be9d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac0c3f41b10f04547f3438517c40cf8a5"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00042.html">concurrent_priority_queue</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00042.html#ac0c3f41b10f04547f3438517c40cf8a5">operator=</a> (const <a class="el" href="a00042.html">concurrent_priority_queue</a> &amp;src)</td></tr>
<tr class="memdesc:ac0c3f41b10f04547f3438517c40cf8a5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Assignment operator. <a href="#ac0c3f41b10f04547f3438517c40cf8a5">More...</a><br/></td></tr>
<tr class="separator:ac0c3f41b10f04547f3438517c40cf8a5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae9ac965bbac3933c7db89f512adfcbcb"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00042.html#ae9ac965bbac3933c7db89f512adfcbcb">concurrent_priority_queue</a> (<a class="el" href="a00042.html">concurrent_priority_queue</a> &amp;&amp;src)</td></tr>
<tr class="memdesc:ae9ac965bbac3933c7db89f512adfcbcb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Move constructor. <a href="#ae9ac965bbac3933c7db89f512adfcbcb">More...</a><br/></td></tr>
<tr class="separator:ae9ac965bbac3933c7db89f512adfcbcb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a14dd20a4673f77cff3eb6f269a888016"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00042.html#a14dd20a4673f77cff3eb6f269a888016">concurrent_priority_queue</a> (<a class="el" href="a00042.html">concurrent_priority_queue</a> &amp;&amp;src, const <a class="el" href="a00042.html#a1d2cebf242fa83d88eebdc3ad6891fb1">allocator_type</a> &amp;a)</td></tr>
<tr class="memdesc:a14dd20a4673f77cff3eb6f269a888016"><td class="mdescLeft">&#160;</td><td class="mdescRight">Move constructor with specific allocator. <a href="#a14dd20a4673f77cff3eb6f269a888016">More...</a><br/></td></tr>
<tr class="separator:a14dd20a4673f77cff3eb6f269a888016"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9b21bd56aff8c412c5fcdd0d88b48c98"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00042.html">concurrent_priority_queue</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00042.html#a9b21bd56aff8c412c5fcdd0d88b48c98">operator=</a> (<a class="el" href="a00042.html">concurrent_priority_queue</a> &amp;&amp;src)</td></tr>
<tr class="memdesc:a9b21bd56aff8c412c5fcdd0d88b48c98"><td class="mdescLeft">&#160;</td><td class="mdescRight">Move assignment operator. <a href="#a9b21bd56aff8c412c5fcdd0d88b48c98">More...</a><br/></td></tr>
<tr class="separator:a9b21bd56aff8c412c5fcdd0d88b48c98"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac64c7b627708f0d6b2e5421fb0d49150"><td class="memTemplParams" colspan="2"><a class="anchor" id="ac64c7b627708f0d6b2e5421fb0d49150"></a>
template&lt;typename InputIterator &gt; </td></tr>
<tr class="memitem:ac64c7b627708f0d6b2e5421fb0d49150"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00042.html#ac64c7b627708f0d6b2e5421fb0d49150">assign</a> (InputIterator begin, InputIterator end)</td></tr>
<tr class="memdesc:ac64c7b627708f0d6b2e5421fb0d49150"><td class="mdescLeft">&#160;</td><td class="mdescRight">Assign the queue from [begin,end) range, not thread-safe. <br/></td></tr>
<tr class="separator:ac64c7b627708f0d6b2e5421fb0d49150"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac1b3a945aac5a17c85d56756cc6aa3d1"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ac1b3a945aac5a17c85d56756cc6aa3d1"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00042.html#ac1b3a945aac5a17c85d56756cc6aa3d1">assign</a> (std::initializer_list&lt; T &gt; il)</td></tr>
<tr class="memdesc:ac1b3a945aac5a17c85d56756cc6aa3d1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Assign the queue from std::initializer_list, not thread-safe. <br/></td></tr>
<tr class="separator:ac1b3a945aac5a17c85d56756cc6aa3d1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7eaa05dcb74604e45e0e2c55e1e456e9"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a7eaa05dcb74604e45e0e2c55e1e456e9"></a>
<a class="el" href="a00042.html">concurrent_priority_queue</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00042.html#a7eaa05dcb74604e45e0e2c55e1e456e9">operator=</a> (std::initializer_list&lt; T &gt; il)</td></tr>
<tr class="memdesc:a7eaa05dcb74604e45e0e2c55e1e456e9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Assign from std::initializer_list, not thread-safe. <br/></td></tr>
<tr class="separator:a7eaa05dcb74604e45e0e2c55e1e456e9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8dec2dd0e8b22af14f1753eaef1bf5eb"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00042.html#a8dec2dd0e8b22af14f1753eaef1bf5eb">empty</a> () const </td></tr>
<tr class="memdesc:a8dec2dd0e8b22af14f1753eaef1bf5eb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns true if empty, false otherwise. <a href="#a8dec2dd0e8b22af14f1753eaef1bf5eb">More...</a><br/></td></tr>
<tr class="separator:a8dec2dd0e8b22af14f1753eaef1bf5eb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7d86ba200474b51ec99a6b917429c6bb"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00042.html#a7d3da9b47ec58e1c09e3550f702edcfc">size_type</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00042.html#a7d86ba200474b51ec99a6b917429c6bb">size</a> () const </td></tr>
<tr class="memdesc:a7d86ba200474b51ec99a6b917429c6bb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the current number of elements contained in the queue. <a href="#a7d86ba200474b51ec99a6b917429c6bb">More...</a><br/></td></tr>
<tr class="separator:a7d86ba200474b51ec99a6b917429c6bb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1bfa0e7269b3407d6bb5c706264d2406"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00042.html#a1bfa0e7269b3407d6bb5c706264d2406">push</a> (<a class="el" href="a00042.html#a0bd617fe8e4657777e86f0ae15d8094f">const_reference</a> elem)</td></tr>
<tr class="memdesc:a1bfa0e7269b3407d6bb5c706264d2406"><td class="mdescLeft">&#160;</td><td class="mdescRight">Pushes elem onto the queue, increasing capacity of queue if necessary. <a href="#a1bfa0e7269b3407d6bb5c706264d2406">More...</a><br/></td></tr>
<tr class="separator:a1bfa0e7269b3407d6bb5c706264d2406"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a72ff26945c61b4ce3ce7ca0f9b9aaa48"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00042.html#a72ff26945c61b4ce3ce7ca0f9b9aaa48">push</a> (<a class="el" href="a00042.html#a2c75d97ae429019363ab6fd1a872512e">value_type</a> &amp;&amp;elem)</td></tr>
<tr class="memdesc:a72ff26945c61b4ce3ce7ca0f9b9aaa48"><td class="mdescLeft">&#160;</td><td class="mdescRight">Pushes elem onto the queue, increasing capacity of queue if necessary. <a href="#a72ff26945c61b4ce3ce7ca0f9b9aaa48">More...</a><br/></td></tr>
<tr class="separator:a72ff26945c61b4ce3ce7ca0f9b9aaa48"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a278d208cd92e5aeccc9c7f6fc192e3ce"><td class="memTemplParams" colspan="2">template&lt;typename... Args&gt; </td></tr>
<tr class="memitem:a278d208cd92e5aeccc9c7f6fc192e3ce"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00042.html#a278d208cd92e5aeccc9c7f6fc192e3ce">emplace</a> (Args &amp;&amp;...args)</td></tr>
<tr class="memdesc:a278d208cd92e5aeccc9c7f6fc192e3ce"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructs a new element using args as the arguments for its construction and pushes it onto the queue */. <a href="#a278d208cd92e5aeccc9c7f6fc192e3ce">More...</a><br/></td></tr>
<tr class="separator:a278d208cd92e5aeccc9c7f6fc192e3ce"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a954177b09e184cf3db47f1b180a7ef5e"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00042.html#a954177b09e184cf3db47f1b180a7ef5e">try_pop</a> (<a class="el" href="a00042.html#ae4b7ed2ddc8ec6cc910f935c9d299c7a">reference</a> elem)</td></tr>
<tr class="memdesc:a954177b09e184cf3db47f1b180a7ef5e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets a reference to and removes highest priority element. <a href="#a954177b09e184cf3db47f1b180a7ef5e">More...</a><br/></td></tr>
<tr class="separator:a954177b09e184cf3db47f1b180a7ef5e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2459166998a4103880d603b237c429e6"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00042.html#a2459166998a4103880d603b237c429e6">clear</a> ()</td></tr>
<tr class="memdesc:a2459166998a4103880d603b237c429e6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Clear the queue; not thread-safe. <a href="#a2459166998a4103880d603b237c429e6">More...</a><br/></td></tr>
<tr class="separator:a2459166998a4103880d603b237c429e6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa6ee6d356e538b67a7cb4e242e6e36c9"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00042.html#aa6ee6d356e538b67a7cb4e242e6e36c9">swap</a> (<a class="el" href="a00042.html">concurrent_priority_queue</a> &amp;q)</td></tr>
<tr class="memdesc:aa6ee6d356e538b67a7cb4e242e6e36c9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Swap this queue with another; not thread-safe. <a href="#aa6ee6d356e538b67a7cb4e242e6e36c9">More...</a><br/></td></tr>
<tr class="separator:aa6ee6d356e538b67a7cb4e242e6e36c9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a312e88e51246da4c516d35abbb30721a"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a312e88e51246da4c516d35abbb30721a"></a>
<a class="el" href="a00042.html#a1d2cebf242fa83d88eebdc3ad6891fb1">allocator_type</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00042.html#a312e88e51246da4c516d35abbb30721a">get_allocator</a> () const </td></tr>
<tr class="memdesc:a312e88e51246da4c516d35abbb30721a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return allocator object. <br/></td></tr>
<tr class="separator:a312e88e51246da4c516d35abbb30721a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4ea5780bcc8664253e2180987bc775d0"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a4ea5780bcc8664253e2180987bc775d0"></a>
&#160;</td><td class="memItemRight" valign="bottom"><b>concurrent_unordered_multimap</b> (size_type n_of_buckets=base_type::initial_bucket_number, const hasher &amp;_Hasher=hasher(), const key_equal &amp;_Key_equality=key_equal(), const allocator_type &amp;a=allocator_type())</td></tr>
<tr class="separator:a4ea5780bcc8664253e2180987bc775d0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae2fe78524a0f0cd268194cf2461e3ab0"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ae2fe78524a0f0cd268194cf2461e3ab0"></a>
&#160;</td><td class="memItemRight" valign="bottom"><b>concurrent_unordered_multimap</b> (const Allocator &amp;a)</td></tr>
<tr class="separator:ae2fe78524a0f0cd268194cf2461e3ab0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a174ad09d37e0f648e06ded3abfa65bed"><td class="memTemplParams" colspan="2"><a class="anchor" id="a174ad09d37e0f648e06ded3abfa65bed"></a>
template&lt;typename Iterator &gt; </td></tr>
<tr class="memitem:a174ad09d37e0f648e06ded3abfa65bed"><td class="memTemplItemLeft" align="right" valign="top">&#160;</td><td class="memTemplItemRight" valign="bottom"><b>concurrent_unordered_multimap</b> (Iterator first, Iterator last, size_type n_of_buckets=base_type::initial_bucket_number, const hasher &amp;_Hasher=hasher(), const key_equal &amp;_Key_equality=key_equal(), const allocator_type &amp;a=allocator_type())</td></tr>
<tr class="separator:a174ad09d37e0f648e06ded3abfa65bed"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5957d29e5fa9f8c53538de3f7a41ebc9"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a5957d29e5fa9f8c53538de3f7a41ebc9"></a>
&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00042.html#a5957d29e5fa9f8c53538de3f7a41ebc9">concurrent_unordered_multimap</a> (std::initializer_list&lt; value_type &gt; il, size_type n_of_buckets=base_type::initial_bucket_number, const hasher &amp;_Hasher=hasher(), const key_equal &amp;_Key_equality=key_equal(), const allocator_type &amp;a=allocator_type())</td></tr>
<tr class="memdesc:a5957d29e5fa9f8c53538de3f7a41ebc9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructor from initializer_list. <br/></td></tr>
<tr class="separator:a5957d29e5fa9f8c53538de3f7a41ebc9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aacf347cd41c61dd026e844fa9311130c"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aacf347cd41c61dd026e844fa9311130c"></a>
&#160;</td><td class="memItemRight" valign="bottom"><b>concurrent_unordered_multimap</b> (const <a class="el" href="a00042.html">concurrent_unordered_multimap</a> &amp;table)</td></tr>
<tr class="separator:aacf347cd41c61dd026e844fa9311130c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a58939ac30bfced4b6e2cf0377c1b7d71"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a58939ac30bfced4b6e2cf0377c1b7d71"></a>
<a class="el" href="a00042.html">concurrent_unordered_multimap</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>operator=</b> (const <a class="el" href="a00042.html">concurrent_unordered_multimap</a> &amp;table)</td></tr>
<tr class="separator:a58939ac30bfced4b6e2cf0377c1b7d71"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac339429f4f36730ff3614cb7fcb257cb"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ac339429f4f36730ff3614cb7fcb257cb"></a>
&#160;</td><td class="memItemRight" valign="bottom"><b>concurrent_unordered_multimap</b> (<a class="el" href="a00042.html">concurrent_unordered_multimap</a> &amp;&amp;table)</td></tr>
<tr class="separator:ac339429f4f36730ff3614cb7fcb257cb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5e9a928751361cec49b26afa38018208"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a5e9a928751361cec49b26afa38018208"></a>
<a class="el" href="a00042.html">concurrent_unordered_multimap</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>operator=</b> (<a class="el" href="a00042.html">concurrent_unordered_multimap</a> &amp;&amp;table)</td></tr>
<tr class="separator:a5e9a928751361cec49b26afa38018208"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a040b7c942e77cca30b0ab423ae7a2d87"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a040b7c942e77cca30b0ab423ae7a2d87"></a>
&#160;</td><td class="memItemRight" valign="bottom"><b>concurrent_unordered_multimap</b> (<a class="el" href="a00042.html">concurrent_unordered_multimap</a> &amp;&amp;table, const Allocator &amp;a)</td></tr>
<tr class="separator:a040b7c942e77cca30b0ab423ae7a2d87"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a34148bd7279ce189a6c0c26380df0a2a"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a34148bd7279ce189a6c0c26380df0a2a"></a>
&#160;</td><td class="memItemRight" valign="bottom"><b>concurrent_unordered_multimap</b> (const <a class="el" href="a00042.html">concurrent_unordered_multimap</a> &amp;table, const Allocator &amp;a)</td></tr>
<tr class="separator:a34148bd7279ce189a6c0c26380df0a2a"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><h3>template&lt;typename T, typename Compare = std::less&lt;T&gt;, typename A = cache_aligned_allocator&lt;T&gt;&gt;<br/>
class tbb::interface5::concurrent_priority_queue&lt; T, Compare, A &gt;</h3>
<p>Concurrent priority queue. </p>
</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a class="anchor" id="a332d26234f9c37a6b7ba269c648815d0"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T , typename Compare = std::less&lt;T&gt;, typename A = cache_aligned_allocator&lt;T&gt;&gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="a00042.html">tbb::interface5::concurrent_priority_queue</a>&lt; T, Compare, A &gt;::<a class="el" href="a00042.html">concurrent_priority_queue</a> </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="a00042.html">concurrent_priority_queue</a>&lt; T, Compare, A &gt; &amp;&#160;</td>
<td class="paramname"><em>src</em>)</td><td></td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">explicit</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Copy constructor. </p>
<p>This operation is unsafe if there are pending concurrent operations on the src queue. </p>
</div>
</div>
<a class="anchor" id="aa52cea369b6630699ee78cc42622be9d"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T , typename Compare = std::less&lt;T&gt;, typename A = cache_aligned_allocator&lt;T&gt;&gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="a00042.html">tbb::interface5::concurrent_priority_queue</a>&lt; T, Compare, A &gt;::<a class="el" href="a00042.html">concurrent_priority_queue</a> </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="a00042.html">concurrent_priority_queue</a>&lt; T, Compare, A &gt; &amp;&#160;</td>
<td class="paramname"><em>src</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="a00042.html#a1d2cebf242fa83d88eebdc3ad6891fb1">allocator_type</a> &amp;&#160;</td>
<td class="paramname"><em>a</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Copy constructor with specific allocator. </p>
<p>This operation is unsafe if there are pending concurrent operations on the src queue. </p>
</div>
</div>
<a class="anchor" id="ae9ac965bbac3933c7db89f512adfcbcb"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T , typename Compare = std::less&lt;T&gt;, typename A = cache_aligned_allocator&lt;T&gt;&gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="a00042.html">tbb::interface5::concurrent_priority_queue</a>&lt; T, Compare, A &gt;::<a class="el" href="a00042.html">concurrent_priority_queue</a> </td>
<td>(</td>
<td class="paramtype"><a class="el" href="a00042.html">concurrent_priority_queue</a>&lt; T, Compare, A &gt; &amp;&amp;&#160;</td>
<td class="paramname"><em>src</em>)</td><td></td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Move constructor. </p>
<p>This operation is unsafe if there are pending concurrent operations on the src queue. </p>
</div>
</div>
<a class="anchor" id="a14dd20a4673f77cff3eb6f269a888016"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T , typename Compare = std::less&lt;T&gt;, typename A = cache_aligned_allocator&lt;T&gt;&gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="a00042.html">tbb::interface5::concurrent_priority_queue</a>&lt; T, Compare, A &gt;::<a class="el" href="a00042.html">concurrent_priority_queue</a> </td>
<td>(</td>
<td class="paramtype"><a class="el" href="a00042.html">concurrent_priority_queue</a>&lt; T, Compare, A &gt; &amp;&amp;&#160;</td>
<td class="paramname"><em>src</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="a00042.html#a1d2cebf242fa83d88eebdc3ad6891fb1">allocator_type</a> &amp;&#160;</td>
<td class="paramname"><em>a</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Move constructor with specific allocator. </p>
<p>This operation is unsafe if there are pending concurrent operations on the src queue. </p>
</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a class="anchor" id="a2459166998a4103880d603b237c429e6"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T , typename Compare = std::less&lt;T&gt;, typename A = cache_aligned_allocator&lt;T&gt;&gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void <a class="el" href="a00042.html">tbb::interface5::concurrent_priority_queue</a>&lt; T, Compare, A &gt;::clear </td>
<td>(</td>
<td class="paramname">)</td><td></td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Clear the queue; not thread-safe. </p>
<p>This operation is unsafe if there are pending concurrent operations on the queue. Resets size, effectively emptying queue; does not free space. May not clear elements added in pending operations. </p>
</div>
</div>
<a class="anchor" id="a278d208cd92e5aeccc9c7f6fc192e3ce"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T , typename Compare = std::less&lt;T&gt;, typename A = cache_aligned_allocator&lt;T&gt;&gt; </div>
<div class="memtemplate">
template&lt;typename... Args&gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void <a class="el" href="a00042.html">tbb::interface5::concurrent_priority_queue</a>&lt; T, Compare, A &gt;::emplace </td>
<td>(</td>
<td class="paramtype">Args &amp;&amp;...&#160;</td>
<td class="paramname"><em>args</em>)</td><td></td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Constructs a new element using args as the arguments for its construction and pushes it onto the queue */. </p>
<p>This operation can be safely used concurrently with other push, try_pop or emplace operations. </p>
</div>
</div>
<a class="anchor" id="a8dec2dd0e8b22af14f1753eaef1bf5eb"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T , typename Compare = std::less&lt;T&gt;, typename A = cache_aligned_allocator&lt;T&gt;&gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">bool <a class="el" href="a00042.html">tbb::interface5::concurrent_priority_queue</a>&lt; T, Compare, A &gt;::empty </td>
<td>(</td>
<td class="paramname">)</td><td></td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns true if empty, false otherwise. </p>
<p>Returned value may not reflect results of pending operations. This operation reads shared data and will trigger a race condition. </p>
</div>
</div>
<a class="anchor" id="ac0c3f41b10f04547f3438517c40cf8a5"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T , typename Compare = std::less&lt;T&gt;, typename A = cache_aligned_allocator&lt;T&gt;&gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="a00042.html">concurrent_priority_queue</a>&amp; <a class="el" href="a00042.html">tbb::interface5::concurrent_priority_queue</a>&lt; T, Compare, A &gt;::operator= </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="a00042.html">concurrent_priority_queue</a>&lt; T, Compare, A &gt; &amp;&#160;</td>
<td class="paramname"><em>src</em>)</td><td></td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Assignment operator. </p>
<p>This operation is unsafe if there are pending concurrent operations on the src queue. </p>
</div>
</div>
<a class="anchor" id="a9b21bd56aff8c412c5fcdd0d88b48c98"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T , typename Compare = std::less&lt;T&gt;, typename A = cache_aligned_allocator&lt;T&gt;&gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="a00042.html">concurrent_priority_queue</a>&amp; <a class="el" href="a00042.html">tbb::interface5::concurrent_priority_queue</a>&lt; T, Compare, A &gt;::operator= </td>
<td>(</td>
<td class="paramtype"><a class="el" href="a00042.html">concurrent_priority_queue</a>&lt; T, Compare, A &gt; &amp;&amp;&#160;</td>
<td class="paramname"><em>src</em>)</td><td></td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Move assignment operator. </p>
<p>This operation is unsafe if there are pending concurrent operations on the src queue. </p>
</div>
</div>
<a class="anchor" id="a1bfa0e7269b3407d6bb5c706264d2406"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T , typename Compare = std::less&lt;T&gt;, typename A = cache_aligned_allocator&lt;T&gt;&gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void <a class="el" href="a00042.html">tbb::interface5::concurrent_priority_queue</a>&lt; T, Compare, A &gt;::push </td>
<td>(</td>
<td class="paramtype"><a class="el" href="a00042.html#a0bd617fe8e4657777e86f0ae15d8094f">const_reference</a>&#160;</td>
<td class="paramname"><em>elem</em>)</td><td></td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Pushes elem onto the queue, increasing capacity of queue if necessary. </p>
<p>This operation can be safely used concurrently with other push, try_pop or emplace operations. </p>
</div>
</div>
<a class="anchor" id="a72ff26945c61b4ce3ce7ca0f9b9aaa48"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T , typename Compare = std::less&lt;T&gt;, typename A = cache_aligned_allocator&lt;T&gt;&gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void <a class="el" href="a00042.html">tbb::interface5::concurrent_priority_queue</a>&lt; T, Compare, A &gt;::push </td>
<td>(</td>
<td class="paramtype"><a class="el" href="a00042.html#a2c75d97ae429019363ab6fd1a872512e">value_type</a> &amp;&amp;&#160;</td>
<td class="paramname"><em>elem</em>)</td><td></td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Pushes elem onto the queue, increasing capacity of queue if necessary. </p>
<p>This operation can be safely used concurrently with other push, try_pop or emplace operations. </p>
</div>
</div>
<a class="anchor" id="a7d86ba200474b51ec99a6b917429c6bb"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T , typename Compare = std::less&lt;T&gt;, typename A = cache_aligned_allocator&lt;T&gt;&gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="a00042.html#a7d3da9b47ec58e1c09e3550f702edcfc">size_type</a> <a class="el" href="a00042.html">tbb::interface5::concurrent_priority_queue</a>&lt; T, Compare, A &gt;::size </td>
<td>(</td>
<td class="paramname">)</td><td></td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns the current number of elements contained in the queue. </p>
<p>Returned value may not reflect results of pending operations. This operation reads shared data and will trigger a race condition. </p>
</div>
</div>
<a class="anchor" id="aa6ee6d356e538b67a7cb4e242e6e36c9"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T , typename Compare = std::less&lt;T&gt;, typename A = cache_aligned_allocator&lt;T&gt;&gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void <a class="el" href="a00042.html">tbb::interface5::concurrent_priority_queue</a>&lt; T, Compare, A &gt;::swap </td>
<td>(</td>
<td class="paramtype"><a class="el" href="a00042.html">concurrent_priority_queue</a>&lt; T, Compare, A &gt; &amp;&#160;</td>
<td class="paramname"><em>q</em>)</td><td></td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Swap this queue with another; not thread-safe. </p>
<p>This operation is unsafe if there are pending concurrent operations on the queue. </p>
</div>
</div>
<a class="anchor" id="a954177b09e184cf3db47f1b180a7ef5e"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T , typename Compare = std::less&lt;T&gt;, typename A = cache_aligned_allocator&lt;T&gt;&gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">bool <a class="el" href="a00042.html">tbb::interface5::concurrent_priority_queue</a>&lt; T, Compare, A &gt;::try_pop </td>
<td>(</td>
<td class="paramtype"><a class="el" href="a00042.html#ae4b7ed2ddc8ec6cc910f935c9d299c7a">reference</a>&#160;</td>
<td class="paramname"><em>elem</em>)</td><td></td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Gets a reference to and removes highest priority element. </p>
<p>If a highest priority element was found, sets elem and returns true, otherwise returns false. This operation can be safely used concurrently with other push, try_pop or emplace operations. </p>
</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
<li>concurrent_priority_queue.h</li>
<li>concurrent_unordered_map.h</li>
</ul>
</div><!-- contents -->
<hr>
Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

+91 -157
View File
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.4"/>
<title>tbb::strict_ppl::concurrent_queue&lt; T, A &gt; Class Template Reference</title>
<title>tbb::interface5::concurrent_unordered_multiset&lt; Key, Hasher, Key_equality, Allocator &gt; Class Template Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -33,184 +33,118 @@
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="a00237.html">tbb</a></li><li class="navelem"><b>strict_ppl</b></li><li class="navelem"><a class="el" href="a00043.html">concurrent_queue</a></li> </ul>
<li class="navelem"><a class="el" href="a00234.html">tbb</a></li><li class="navelem"><b>interface5</b></li><li class="navelem"><a class="el" href="a00043.html">concurrent_unordered_multiset</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#pub-types">Public Types</a> &#124;
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#friends">Friends</a> &#124;
<a href="a00413.html">List of all members</a> </div>
<a href="a00370.html">List of all members</a> </div>
<div class="headertitle">
<div class="title">tbb::strict_ppl::concurrent_queue&lt; T, A &gt; Class Template Reference<div class="ingroups"><a class="el" href="a00258.html">Containers</a></div></div> </div>
<div class="title">tbb::interface5::concurrent_unordered_multiset&lt; Key, Hasher, Key_equality, Allocator &gt; Class Template Reference</div> </div>
</div><!--header-->
<div class="contents">
<p>A high-performance thread-safe non-blocking concurrent queue.
<a href="a00043.html#details">More...</a></p>
<p><code>#include &lt;concurrent_queue.h&gt;</code></p>
<div class="dynheader">
Inheritance diagram for tbb::strict_ppl::concurrent_queue&lt; T, A &gt;:</div>
Inheritance diagram for tbb::interface5::concurrent_unordered_multiset&lt; Key, Hasher, Key_equality, Allocator &gt;:</div>
<div class="dyncontent">
<div class="center">
<img src="a00043.png" usemap="#tbb::strict_ppl::concurrent_queue&lt; T, A &gt;_map" alt=""/>
<map id="tbb::strict_ppl::concurrent_queue&lt; T, A &gt;_map" name="tbb::strict_ppl::concurrent_queue&lt; T, A &gt;_map">
<img src="a00043.png" usemap="#tbb::interface5::concurrent_unordered_multiset&lt; Key, Hasher, Key_equality, Allocator &gt;_map" alt=""/>
<map id="tbb::interface5::concurrent_unordered_multiset&lt; Key, Hasher, Key_equality, Allocator &gt;_map" name="tbb::interface5::concurrent_unordered_multiset&lt; Key, Hasher, Key_equality, Allocator &gt;_map">
</map>
</div></div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-types"></a>
Public Types</h2></td></tr>
<tr class="memitem:aeeee93a7ac2eecc80bbf3e857e900538"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aeeee93a7ac2eecc80bbf3e857e900538"></a>
typedef T&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00043.html#aeeee93a7ac2eecc80bbf3e857e900538">value_type</a></td></tr>
<tr class="memdesc:aeeee93a7ac2eecc80bbf3e857e900538"><td class="mdescLeft">&#160;</td><td class="mdescRight">Element type in the queue. <br/></td></tr>
<tr class="separator:aeeee93a7ac2eecc80bbf3e857e900538"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab26ddf11b15d61ac87e6c1ae67af92a2"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ab26ddf11b15d61ac87e6c1ae67af92a2"></a>
typedef T &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00043.html#ab26ddf11b15d61ac87e6c1ae67af92a2">reference</a></td></tr>
<tr class="memdesc:ab26ddf11b15d61ac87e6c1ae67af92a2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reference type. <br/></td></tr>
<tr class="separator:ab26ddf11b15d61ac87e6c1ae67af92a2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a478c2b7f763b2e821e01cc14e13baf4c"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a478c2b7f763b2e821e01cc14e13baf4c"></a>
typedef const T &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00043.html#a478c2b7f763b2e821e01cc14e13baf4c">const_reference</a></td></tr>
<tr class="memdesc:a478c2b7f763b2e821e01cc14e13baf4c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Const reference type. <br/></td></tr>
<tr class="separator:a478c2b7f763b2e821e01cc14e13baf4c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9f883e49afea16293ba92da779981bb8"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a9f883e49afea16293ba92da779981bb8"></a>
typedef size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00043.html#a9f883e49afea16293ba92da779981bb8">size_type</a></td></tr>
<tr class="memdesc:a9f883e49afea16293ba92da779981bb8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Integral type for representing size of the queue. <br/></td></tr>
<tr class="separator:a9f883e49afea16293ba92da779981bb8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a63b42d83a9ed13fc6741e0b4388b0e96"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a63b42d83a9ed13fc6741e0b4388b0e96"></a>
typedef ptrdiff_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00043.html#a63b42d83a9ed13fc6741e0b4388b0e96">difference_type</a></td></tr>
<tr class="memdesc:a63b42d83a9ed13fc6741e0b4388b0e96"><td class="mdescLeft">&#160;</td><td class="mdescRight">Difference type for iterator. <br/></td></tr>
<tr class="separator:a63b42d83a9ed13fc6741e0b4388b0e96"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acbdd1a5bd034358fb0774b322a66b1ed"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="acbdd1a5bd034358fb0774b322a66b1ed"></a>
typedef A&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00043.html#acbdd1a5bd034358fb0774b322a66b1ed">allocator_type</a></td></tr>
<tr class="memdesc:acbdd1a5bd034358fb0774b322a66b1ed"><td class="mdescLeft">&#160;</td><td class="mdescRight">Allocator type. <br/></td></tr>
<tr class="separator:acbdd1a5bd034358fb0774b322a66b1ed"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab1361aa7fd454fe593609be740ab8a4c"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ab1361aa7fd454fe593609be740ab8a4c"></a>
typedef <br class="typebreak"/>
internal::concurrent_queue_iterator<br class="typebreak"/>
&lt; <a class="el" href="a00043.html">concurrent_queue</a>, T &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>iterator</b></td></tr>
<tr class="separator:ab1361aa7fd454fe593609be740ab8a4c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a674e375edf0a3463ae1cec5d6158593d"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a674e375edf0a3463ae1cec5d6158593d"></a>
typedef <br class="typebreak"/>
internal::concurrent_queue_iterator<br class="typebreak"/>
&lt; <a class="el" href="a00043.html">concurrent_queue</a>, const T &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>const_iterator</b></td></tr>
<tr class="separator:a674e375edf0a3463ae1cec5d6158593d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af1eb846a05a4e2d30a3ff7f66acad7c7"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="af1eb846a05a4e2d30a3ff7f66acad7c7"></a>
typedef Key&#160;</td><td class="memItemRight" valign="bottom"><b>key_type</b></td></tr>
<tr class="separator:af1eb846a05a4e2d30a3ff7f66acad7c7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a559df68fc84a16b494a9638085c7379b"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a559df68fc84a16b494a9638085c7379b"></a>
typedef base_type::value_type&#160;</td><td class="memItemRight" valign="bottom"><b>value_type</b></td></tr>
<tr class="separator:a559df68fc84a16b494a9638085c7379b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ada492d245619aac2683b57c9f52106c7"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ada492d245619aac2683b57c9f52106c7"></a>
typedef Key&#160;</td><td class="memItemRight" valign="bottom"><b>mapped_type</b></td></tr>
<tr class="separator:ada492d245619aac2683b57c9f52106c7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab6b0ed8e5a20690cc06644520d0e5ef3"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ab6b0ed8e5a20690cc06644520d0e5ef3"></a>
typedef Hasher&#160;</td><td class="memItemRight" valign="bottom"><b>hasher</b></td></tr>
<tr class="separator:ab6b0ed8e5a20690cc06644520d0e5ef3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa3d8b36c79741c229cf9a5c9d93516b7"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aa3d8b36c79741c229cf9a5c9d93516b7"></a>
typedef Key_equality&#160;</td><td class="memItemRight" valign="bottom"><b>key_equal</b></td></tr>
<tr class="separator:aa3d8b36c79741c229cf9a5c9d93516b7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8ec7f32ab51ebbfdb06d57ab8b17044b"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a8ec7f32ab51ebbfdb06d57ab8b17044b"></a>
typedef hash_compare&#160;</td><td class="memItemRight" valign="bottom"><b>key_compare</b></td></tr>
<tr class="separator:a8ec7f32ab51ebbfdb06d57ab8b17044b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1f89a49912b58d42ddbb3f344b6304ca"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a1f89a49912b58d42ddbb3f344b6304ca"></a>
typedef base_type::allocator_type&#160;</td><td class="memItemRight" valign="bottom"><b>allocator_type</b></td></tr>
<tr class="separator:a1f89a49912b58d42ddbb3f344b6304ca"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad4ff41efe0ead5030b011c999dd748de"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ad4ff41efe0ead5030b011c999dd748de"></a>
typedef base_type::pointer&#160;</td><td class="memItemRight" valign="bottom"><b>pointer</b></td></tr>
<tr class="separator:ad4ff41efe0ead5030b011c999dd748de"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab4327ff04c8a5dc7653b47763263b9f9"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ab4327ff04c8a5dc7653b47763263b9f9"></a>
typedef base_type::const_pointer&#160;</td><td class="memItemRight" valign="bottom"><b>const_pointer</b></td></tr>
<tr class="separator:ab4327ff04c8a5dc7653b47763263b9f9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aef5518b17cd9da59b9e6d9b9374f5245"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aef5518b17cd9da59b9e6d9b9374f5245"></a>
typedef base_type::reference&#160;</td><td class="memItemRight" valign="bottom"><b>reference</b></td></tr>
<tr class="separator:aef5518b17cd9da59b9e6d9b9374f5245"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7084b7dd3f9b1df0ffdd520529e87f3c"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a7084b7dd3f9b1df0ffdd520529e87f3c"></a>
typedef base_type::const_reference&#160;</td><td class="memItemRight" valign="bottom"><b>const_reference</b></td></tr>
<tr class="separator:a7084b7dd3f9b1df0ffdd520529e87f3c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad04d6c35ee079e8a49d38744c8f305b3"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ad04d6c35ee079e8a49d38744c8f305b3"></a>
typedef base_type::size_type&#160;</td><td class="memItemRight" valign="bottom"><b>size_type</b></td></tr>
<tr class="separator:ad04d6c35ee079e8a49d38744c8f305b3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6e9babf06dc79948bb787793a7cb0d37"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a6e9babf06dc79948bb787793a7cb0d37"></a>
typedef base_type::difference_type&#160;</td><td class="memItemRight" valign="bottom"><b>difference_type</b></td></tr>
<tr class="separator:a6e9babf06dc79948bb787793a7cb0d37"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a229ae1c0786ea9509c66256fcf1c8f47"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a229ae1c0786ea9509c66256fcf1c8f47"></a>
typedef base_type::iterator&#160;</td><td class="memItemRight" valign="bottom"><b>iterator</b></td></tr>
<tr class="separator:a229ae1c0786ea9509c66256fcf1c8f47"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a69ed6ae85fe54e53b2804b61a6f30fa2"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a69ed6ae85fe54e53b2804b61a6f30fa2"></a>
typedef base_type::const_iterator&#160;</td><td class="memItemRight" valign="bottom"><b>const_iterator</b></td></tr>
<tr class="separator:a69ed6ae85fe54e53b2804b61a6f30fa2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a532cdc67028e27231846b41bfd9a0e26"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a532cdc67028e27231846b41bfd9a0e26"></a>
typedef base_type::iterator&#160;</td><td class="memItemRight" valign="bottom"><b>local_iterator</b></td></tr>
<tr class="separator:a532cdc67028e27231846b41bfd9a0e26"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af4f42202dd9f2bc114c9411928431217"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="af4f42202dd9f2bc114c9411928431217"></a>
typedef base_type::const_iterator&#160;</td><td class="memItemRight" valign="bottom"><b>const_local_iterator</b></td></tr>
<tr class="separator:af4f42202dd9f2bc114c9411928431217"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:a49b2e16902577cd3174355be0fa684e5"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a49b2e16902577cd3174355be0fa684e5"></a>
&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00043.html#a49b2e16902577cd3174355be0fa684e5">concurrent_queue</a> (const <a class="el" href="a00043.html#acbdd1a5bd034358fb0774b322a66b1ed">allocator_type</a> &amp;a=<a class="el" href="a00043.html#acbdd1a5bd034358fb0774b322a66b1ed">allocator_type</a>())</td></tr>
<tr class="memdesc:a49b2e16902577cd3174355be0fa684e5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Construct empty queue. <br/></td></tr>
<tr class="separator:a49b2e16902577cd3174355be0fa684e5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a43ac953152e60815c09fe4a4d4a623a9"><td class="memTemplParams" colspan="2"><a class="anchor" id="a43ac953152e60815c09fe4a4d4a623a9"></a>
template&lt;typename InputIterator &gt; </td></tr>
<tr class="memitem:a43ac953152e60815c09fe4a4d4a623a9"><td class="memTemplItemLeft" align="right" valign="top">&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00043.html#a43ac953152e60815c09fe4a4d4a623a9">concurrent_queue</a> (InputIterator begin, InputIterator end, const <a class="el" href="a00043.html#acbdd1a5bd034358fb0774b322a66b1ed">allocator_type</a> &amp;a=<a class="el" href="a00043.html#acbdd1a5bd034358fb0774b322a66b1ed">allocator_type</a>())</td></tr>
<tr class="memdesc:a43ac953152e60815c09fe4a4d4a623a9"><td class="mdescLeft">&#160;</td><td class="mdescRight">[begin,end) constructor <br/></td></tr>
<tr class="separator:a43ac953152e60815c09fe4a4d4a623a9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae918807d098d5d5b41cc6d606fa2e7a1"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ae918807d098d5d5b41cc6d606fa2e7a1"></a>
&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00043.html#ae918807d098d5d5b41cc6d606fa2e7a1">concurrent_queue</a> (const <a class="el" href="a00043.html">concurrent_queue</a> &amp;src, const <a class="el" href="a00043.html#acbdd1a5bd034358fb0774b322a66b1ed">allocator_type</a> &amp;a=<a class="el" href="a00043.html#acbdd1a5bd034358fb0774b322a66b1ed">allocator_type</a>())</td></tr>
<tr class="memdesc:ae918807d098d5d5b41cc6d606fa2e7a1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Copy constructor. <br/></td></tr>
<tr class="separator:ae918807d098d5d5b41cc6d606fa2e7a1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acc04574f4d7d41fd5cad779508394740"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="acc04574f4d7d41fd5cad779508394740"></a>
&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00043.html#acc04574f4d7d41fd5cad779508394740">concurrent_queue</a> (<a class="el" href="a00043.html">concurrent_queue</a> &amp;&amp;src)</td></tr>
<tr class="memdesc:acc04574f4d7d41fd5cad779508394740"><td class="mdescLeft">&#160;</td><td class="mdescRight">Move constructors. <br/></td></tr>
<tr class="separator:acc04574f4d7d41fd5cad779508394740"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a22f35cb396178d494a3756d5700e2865"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a22f35cb396178d494a3756d5700e2865"></a>
&#160;</td><td class="memItemRight" valign="bottom"><b>concurrent_queue</b> (<a class="el" href="a00043.html">concurrent_queue</a> &amp;&amp;src, const <a class="el" href="a00043.html#acbdd1a5bd034358fb0774b322a66b1ed">allocator_type</a> &amp;a)</td></tr>
<tr class="separator:a22f35cb396178d494a3756d5700e2865"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa0056b242f280f5e25332ce998f9f670"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aa0056b242f280f5e25332ce998f9f670"></a>
&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00043.html#aa0056b242f280f5e25332ce998f9f670">~concurrent_queue</a> ()</td></tr>
<tr class="memdesc:aa0056b242f280f5e25332ce998f9f670"><td class="mdescLeft">&#160;</td><td class="mdescRight">Destroy queue. <br/></td></tr>
<tr class="separator:aa0056b242f280f5e25332ce998f9f670"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9330ca6590980d80ef7b1ea3613a699a"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a9330ca6590980d80ef7b1ea3613a699a"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00043.html#a9330ca6590980d80ef7b1ea3613a699a">push</a> (const T &amp;source)</td></tr>
<tr class="memdesc:a9330ca6590980d80ef7b1ea3613a699a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Enqueue an item at tail of queue. <br/></td></tr>
<tr class="separator:a9330ca6590980d80ef7b1ea3613a699a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a40f743f7eb92bb709cb7feb86d340885"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a40f743f7eb92bb709cb7feb86d340885"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>push</b> (T &amp;&amp;source)</td></tr>
<tr class="separator:a40f743f7eb92bb709cb7feb86d340885"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4647d9bf5fd03b0850ada381916e9728"><td class="memTemplParams" colspan="2"><a class="anchor" id="a4647d9bf5fd03b0850ada381916e9728"></a>
template&lt;typename... Arguments&gt; </td></tr>
<tr class="memitem:a4647d9bf5fd03b0850ada381916e9728"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><b>emplace</b> (Arguments &amp;&amp;...args)</td></tr>
<tr class="separator:a4647d9bf5fd03b0850ada381916e9728"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aabb1acef18196fa11ed7db8e046c3943"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00043.html#aabb1acef18196fa11ed7db8e046c3943">try_pop</a> (T &amp;result)</td></tr>
<tr class="memdesc:aabb1acef18196fa11ed7db8e046c3943"><td class="mdescLeft">&#160;</td><td class="mdescRight">Attempt to dequeue an item from head of queue. <a href="#aabb1acef18196fa11ed7db8e046c3943">More...</a><br/></td></tr>
<tr class="separator:aabb1acef18196fa11ed7db8e046c3943"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aad4b253ba595637b0b146eb6565556f2"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aad4b253ba595637b0b146eb6565556f2"></a>
<a class="el" href="a00043.html#a9f883e49afea16293ba92da779981bb8">size_type</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00043.html#aad4b253ba595637b0b146eb6565556f2">unsafe_size</a> () const </td></tr>
<tr class="memdesc:aad4b253ba595637b0b146eb6565556f2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the number of items in the queue; thread unsafe. <br/></td></tr>
<tr class="separator:aad4b253ba595637b0b146eb6565556f2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aeda3156929d0c250faed7b807ca6ab0e"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aeda3156929d0c250faed7b807ca6ab0e"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00043.html#aeda3156929d0c250faed7b807ca6ab0e">empty</a> () const </td></tr>
<tr class="memdesc:aeda3156929d0c250faed7b807ca6ab0e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Equivalent to size()==0. <br/></td></tr>
<tr class="separator:aeda3156929d0c250faed7b807ca6ab0e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad3384818fb6350a494d5ec62445e59ee"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ad3384818fb6350a494d5ec62445e59ee"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00043.html#ad3384818fb6350a494d5ec62445e59ee">clear</a> ()</td></tr>
<tr class="memdesc:ad3384818fb6350a494d5ec62445e59ee"><td class="mdescLeft">&#160;</td><td class="mdescRight">Clear the queue. not thread-safe. <br/></td></tr>
<tr class="separator:ad3384818fb6350a494d5ec62445e59ee"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7f2b39f350281590b86db906eca6c480"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a7f2b39f350281590b86db906eca6c480"></a>
<a class="el" href="a00043.html#acbdd1a5bd034358fb0774b322a66b1ed">allocator_type</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00043.html#a7f2b39f350281590b86db906eca6c480">get_allocator</a> () const </td></tr>
<tr class="memdesc:a7f2b39f350281590b86db906eca6c480"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return allocator object. <br/></td></tr>
<tr class="separator:a7f2b39f350281590b86db906eca6c480"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6658faeae3c10135a553fedadddde239"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a6658faeae3c10135a553fedadddde239"></a>
iterator&#160;</td><td class="memItemRight" valign="bottom"><b>unsafe_begin</b> ()</td></tr>
<tr class="separator:a6658faeae3c10135a553fedadddde239"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa7593de5e76006ed3adef4d060f0009c"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aa7593de5e76006ed3adef4d060f0009c"></a>
iterator&#160;</td><td class="memItemRight" valign="bottom"><b>unsafe_end</b> ()</td></tr>
<tr class="separator:aa7593de5e76006ed3adef4d060f0009c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0f84b37020f4267f17c7e91acfc0c446"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a0f84b37020f4267f17c7e91acfc0c446"></a>
const_iterator&#160;</td><td class="memItemRight" valign="bottom"><b>unsafe_begin</b> () const </td></tr>
<tr class="separator:a0f84b37020f4267f17c7e91acfc0c446"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a118a79d7e20cdbd807fa7fccc2a5b848"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a118a79d7e20cdbd807fa7fccc2a5b848"></a>
const_iterator&#160;</td><td class="memItemRight" valign="bottom"><b>unsafe_end</b> () const </td></tr>
<tr class="separator:a118a79d7e20cdbd807fa7fccc2a5b848"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="friends"></a>
Friends</h2></td></tr>
<tr class="memitem:a1f5eec0de2e660ea5372d19393f0920b"><td class="memTemplParams" colspan="2"><a class="anchor" id="a1f5eec0de2e660ea5372d19393f0920b"></a>
template&lt;typename Container , typename Value &gt; </td></tr>
<tr class="memitem:a1f5eec0de2e660ea5372d19393f0920b"><td class="memTemplItemLeft" align="right" valign="top">class&#160;</td><td class="memTemplItemRight" valign="bottom"><b>internal::concurrent_queue_iterator</b></td></tr>
<tr class="separator:a1f5eec0de2e660ea5372d19393f0920b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afa7c1f095ac1f56c7811811aabe6b77c"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="afa7c1f095ac1f56c7811811aabe6b77c"></a>
&#160;</td><td class="memItemRight" valign="bottom"><b>concurrent_unordered_multiset</b> (size_type n_of_buckets=base_type::initial_bucket_number, const hasher &amp;_Hasher=hasher(), const key_equal &amp;_Key_equality=key_equal(), const allocator_type &amp;a=allocator_type())</td></tr>
<tr class="separator:afa7c1f095ac1f56c7811811aabe6b77c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adf8c095a7be6913dd96e22a6ce9af187"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="adf8c095a7be6913dd96e22a6ce9af187"></a>
&#160;</td><td class="memItemRight" valign="bottom"><b>concurrent_unordered_multiset</b> (const Allocator &amp;a)</td></tr>
<tr class="separator:adf8c095a7be6913dd96e22a6ce9af187"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2eede1ccad9975aac7acbffbd991e26c"><td class="memTemplParams" colspan="2"><a class="anchor" id="a2eede1ccad9975aac7acbffbd991e26c"></a>
template&lt;typename Iterator &gt; </td></tr>
<tr class="memitem:a2eede1ccad9975aac7acbffbd991e26c"><td class="memTemplItemLeft" align="right" valign="top">&#160;</td><td class="memTemplItemRight" valign="bottom"><b>concurrent_unordered_multiset</b> (Iterator first, Iterator last, size_type n_of_buckets=base_type::initial_bucket_number, const hasher &amp;_Hasher=hasher(), const key_equal &amp;_Key_equality=key_equal(), const allocator_type &amp;a=allocator_type())</td></tr>
<tr class="separator:a2eede1ccad9975aac7acbffbd991e26c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a15631f048043195863c66bad6533bccb"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a15631f048043195863c66bad6533bccb"></a>
&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00043.html#a15631f048043195863c66bad6533bccb">concurrent_unordered_multiset</a> (std::initializer_list&lt; value_type &gt; il, size_type n_of_buckets=base_type::initial_bucket_number, const hasher &amp;a_hasher=hasher(), const key_equal &amp;a_keyeq=key_equal(), const allocator_type &amp;a=allocator_type())</td></tr>
<tr class="memdesc:a15631f048043195863c66bad6533bccb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructor from initializer_list. <br/></td></tr>
<tr class="separator:a15631f048043195863c66bad6533bccb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3110fb1a6f8e2a3071d2acbe4b7b154b"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a3110fb1a6f8e2a3071d2acbe4b7b154b"></a>
&#160;</td><td class="memItemRight" valign="bottom"><b>concurrent_unordered_multiset</b> (const <a class="el" href="a00043.html">concurrent_unordered_multiset</a> &amp;table)</td></tr>
<tr class="separator:a3110fb1a6f8e2a3071d2acbe4b7b154b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac1fb116ee3fdf6c6c810fe21eb01e209"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ac1fb116ee3fdf6c6c810fe21eb01e209"></a>
<a class="el" href="a00043.html">concurrent_unordered_multiset</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>operator=</b> (const <a class="el" href="a00043.html">concurrent_unordered_multiset</a> &amp;table)</td></tr>
<tr class="separator:ac1fb116ee3fdf6c6c810fe21eb01e209"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aeb435d8d31e95357c2f59656ec96dbbb"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aeb435d8d31e95357c2f59656ec96dbbb"></a>
&#160;</td><td class="memItemRight" valign="bottom"><b>concurrent_unordered_multiset</b> (<a class="el" href="a00043.html">concurrent_unordered_multiset</a> &amp;&amp;table)</td></tr>
<tr class="separator:aeb435d8d31e95357c2f59656ec96dbbb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab6c980c4bf29824a52610d94e6597b28"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ab6c980c4bf29824a52610d94e6597b28"></a>
<a class="el" href="a00043.html">concurrent_unordered_multiset</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>operator=</b> (<a class="el" href="a00043.html">concurrent_unordered_multiset</a> &amp;&amp;table)</td></tr>
<tr class="separator:ab6c980c4bf29824a52610d94e6597b28"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aaa0a295004627bb5473b4371c6e20c80"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aaa0a295004627bb5473b4371c6e20c80"></a>
&#160;</td><td class="memItemRight" valign="bottom"><b>concurrent_unordered_multiset</b> (<a class="el" href="a00043.html">concurrent_unordered_multiset</a> &amp;&amp;table, const Allocator &amp;a)</td></tr>
<tr class="separator:aaa0a295004627bb5473b4371c6e20c80"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a229089da66522fd4f3d77e9f57e19fbb"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a229089da66522fd4f3d77e9f57e19fbb"></a>
&#160;</td><td class="memItemRight" valign="bottom"><b>concurrent_unordered_multiset</b> (const <a class="el" href="a00043.html">concurrent_unordered_multiset</a> &amp;table, const Allocator &amp;a)</td></tr>
<tr class="separator:a229089da66522fd4f3d77e9f57e19fbb"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><h3>template&lt;typename T, typename A = cache_aligned_allocator&lt;T&gt;&gt;<br/>
class tbb::strict_ppl::concurrent_queue&lt; T, A &gt;</h3>
<p>A high-performance thread-safe non-blocking concurrent queue. </p>
<p>Multiple threads may each push and pop concurrently. Assignment construction is not allowed. </p>
</div><h2 class="groupheader">Member Function Documentation</h2>
<a class="anchor" id="aabb1acef18196fa11ed7db8e046c3943"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T , typename A = cache_aligned_allocator&lt;T&gt;&gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">bool <a class="el" href="a00043.html">tbb::strict_ppl::concurrent_queue</a>&lt; T, A &gt;::try_pop </td>
<td>(</td>
<td class="paramtype">T &amp;&#160;</td>
<td class="paramname"><em>result</em>)</td><td></td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Attempt to dequeue an item from head of queue. </p>
<p>Does not wait for item to become available. Returns true if successful; false otherwise. </p>
</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
<li>concurrent_queue.h</li>
<li>concurrent_unordered_set.h</li>
</ul>
</div><!-- contents -->
<hr>
Binary file not shown.

Before

Width:  |  Height:  |  Size: 872 B

After

Width:  |  Height:  |  Size: 2.1 KiB

+74 -83
View File
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.4"/>
<title>tbb::interface5::concurrent_unordered_map&lt; Key, T, Hasher, Key_equality, Allocator &gt; Class Template Reference</title>
<title>tbb::interface5::concurrent_unordered_set&lt; Key, Hasher, Key_equality, Allocator &gt; Class Template Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -33,127 +33,118 @@
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="a00237.html">tbb</a></li><li class="navelem"><b>interface5</b></li><li class="navelem"><a class="el" href="a00044.html">concurrent_unordered_map</a></li> </ul>
<li class="navelem"><a class="el" href="a00234.html">tbb</a></li><li class="navelem"><b>interface5</b></li><li class="navelem"><a class="el" href="a00044.html">concurrent_unordered_set</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#pub-types">Public Types</a> &#124;
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="a00370.html">List of all members</a> </div>
<a href="a00369.html">List of all members</a> </div>
<div class="headertitle">
<div class="title">tbb::interface5::concurrent_unordered_map&lt; Key, T, Hasher, Key_equality, Allocator &gt; Class Template Reference</div> </div>
<div class="title">tbb::interface5::concurrent_unordered_set&lt; Key, Hasher, Key_equality, Allocator &gt; Class Template Reference</div> </div>
</div><!--header-->
<div class="contents">
<div class="dynheader">
Inheritance diagram for tbb::interface5::concurrent_unordered_map&lt; Key, T, Hasher, Key_equality, Allocator &gt;:</div>
Inheritance diagram for tbb::interface5::concurrent_unordered_set&lt; Key, Hasher, Key_equality, Allocator &gt;:</div>
<div class="dyncontent">
<div class="center">
<img src="a00044.png" usemap="#tbb::interface5::concurrent_unordered_map&lt; Key, T, Hasher, Key_equality, Allocator &gt;_map" alt=""/>
<map id="tbb::interface5::concurrent_unordered_map&lt; Key, T, Hasher, Key_equality, Allocator &gt;_map" name="tbb::interface5::concurrent_unordered_map&lt; Key, T, Hasher, Key_equality, Allocator &gt;_map">
<img src="a00044.png" usemap="#tbb::interface5::concurrent_unordered_set&lt; Key, Hasher, Key_equality, Allocator &gt;_map" alt=""/>
<map id="tbb::interface5::concurrent_unordered_set&lt; Key, Hasher, Key_equality, Allocator &gt;_map" name="tbb::interface5::concurrent_unordered_set&lt; Key, Hasher, Key_equality, Allocator &gt;_map">
</map>
</div></div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-types"></a>
Public Types</h2></td></tr>
<tr class="memitem:a35d2ace709769b7059e8f8b2a144f8b9"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a35d2ace709769b7059e8f8b2a144f8b9"></a>
<tr class="memitem:afad91155e1803ee686e5f42637594e7b"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="afad91155e1803ee686e5f42637594e7b"></a>
typedef Key&#160;</td><td class="memItemRight" valign="bottom"><b>key_type</b></td></tr>
<tr class="separator:a35d2ace709769b7059e8f8b2a144f8b9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9260034417dde6b3810347c5e347a9f8"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a9260034417dde6b3810347c5e347a9f8"></a>
<tr class="separator:afad91155e1803ee686e5f42637594e7b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a461fe414bf3ae73e7cc57e851ff592e4"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a461fe414bf3ae73e7cc57e851ff592e4"></a>
typedef base_type::value_type&#160;</td><td class="memItemRight" valign="bottom"><b>value_type</b></td></tr>
<tr class="separator:a9260034417dde6b3810347c5e347a9f8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8ece8ff3de51bc415d8fc1338f793cbf"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a8ece8ff3de51bc415d8fc1338f793cbf"></a>
typedef T&#160;</td><td class="memItemRight" valign="bottom"><b>mapped_type</b></td></tr>
<tr class="separator:a8ece8ff3de51bc415d8fc1338f793cbf"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afeef87b046af352e20cd92e56c0fcf34"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="afeef87b046af352e20cd92e56c0fcf34"></a>
<tr class="separator:a461fe414bf3ae73e7cc57e851ff592e4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3a64703b55d07509d5c88810c2342ba5"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a3a64703b55d07509d5c88810c2342ba5"></a>
typedef Key&#160;</td><td class="memItemRight" valign="bottom"><b>mapped_type</b></td></tr>
<tr class="separator:a3a64703b55d07509d5c88810c2342ba5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6952de8a7ff93025c1065bb3e729da72"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a6952de8a7ff93025c1065bb3e729da72"></a>
typedef Hasher&#160;</td><td class="memItemRight" valign="bottom"><b>hasher</b></td></tr>
<tr class="separator:afeef87b046af352e20cd92e56c0fcf34"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a21f5f2fbf3b1f721051c6b4c5fa2a735"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a21f5f2fbf3b1f721051c6b4c5fa2a735"></a>
<tr class="separator:a6952de8a7ff93025c1065bb3e729da72"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a376a7355aa091fff6a30689141407acd"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a376a7355aa091fff6a30689141407acd"></a>
typedef Key_equality&#160;</td><td class="memItemRight" valign="bottom"><b>key_equal</b></td></tr>
<tr class="separator:a21f5f2fbf3b1f721051c6b4c5fa2a735"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa15c94df26d89ef38daa7516df5e0729"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aa15c94df26d89ef38daa7516df5e0729"></a>
<tr class="separator:a376a7355aa091fff6a30689141407acd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acc450473249e39658c46596d8252eef0"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="acc450473249e39658c46596d8252eef0"></a>
typedef hash_compare&#160;</td><td class="memItemRight" valign="bottom"><b>key_compare</b></td></tr>
<tr class="separator:aa15c94df26d89ef38daa7516df5e0729"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1acd4ab50584a9dc55712e0e113583e2"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a1acd4ab50584a9dc55712e0e113583e2"></a>
<tr class="separator:acc450473249e39658c46596d8252eef0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2010e490e8bfb13d9b969ec2fd5e4de4"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a2010e490e8bfb13d9b969ec2fd5e4de4"></a>
typedef base_type::allocator_type&#160;</td><td class="memItemRight" valign="bottom"><b>allocator_type</b></td></tr>
<tr class="separator:a1acd4ab50584a9dc55712e0e113583e2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7e29fb2f75cdec0746afdbed0b9c5451"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a7e29fb2f75cdec0746afdbed0b9c5451"></a>
<tr class="separator:a2010e490e8bfb13d9b969ec2fd5e4de4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5a8c52d4a2b57b9b4b5d889e96d88f44"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a5a8c52d4a2b57b9b4b5d889e96d88f44"></a>
typedef base_type::pointer&#160;</td><td class="memItemRight" valign="bottom"><b>pointer</b></td></tr>
<tr class="separator:a7e29fb2f75cdec0746afdbed0b9c5451"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab5d26f7002e7810e4c02890a1d7bdc41"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ab5d26f7002e7810e4c02890a1d7bdc41"></a>
<tr class="separator:a5a8c52d4a2b57b9b4b5d889e96d88f44"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a281276279a33ef1c5dfba5c196118ae7"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a281276279a33ef1c5dfba5c196118ae7"></a>
typedef base_type::const_pointer&#160;</td><td class="memItemRight" valign="bottom"><b>const_pointer</b></td></tr>
<tr class="separator:ab5d26f7002e7810e4c02890a1d7bdc41"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a01e118e1e0bfe57083d8f76f4f848d2b"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a01e118e1e0bfe57083d8f76f4f848d2b"></a>
<tr class="separator:a281276279a33ef1c5dfba5c196118ae7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aec3d473d0fa601d51f13efe605cd9862"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aec3d473d0fa601d51f13efe605cd9862"></a>
typedef base_type::reference&#160;</td><td class="memItemRight" valign="bottom"><b>reference</b></td></tr>
<tr class="separator:a01e118e1e0bfe57083d8f76f4f848d2b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad1072935f6765abe3ec1b04f24f80deb"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ad1072935f6765abe3ec1b04f24f80deb"></a>
<tr class="separator:aec3d473d0fa601d51f13efe605cd9862"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab7da53912d0deffca91618b73ed4995f"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ab7da53912d0deffca91618b73ed4995f"></a>
typedef base_type::const_reference&#160;</td><td class="memItemRight" valign="bottom"><b>const_reference</b></td></tr>
<tr class="separator:ad1072935f6765abe3ec1b04f24f80deb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae31360122b604d6735b12fc027f10924"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ae31360122b604d6735b12fc027f10924"></a>
<tr class="separator:ab7da53912d0deffca91618b73ed4995f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5808a50995fc228f114c3c93aeddf331"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a5808a50995fc228f114c3c93aeddf331"></a>
typedef base_type::size_type&#160;</td><td class="memItemRight" valign="bottom"><b>size_type</b></td></tr>
<tr class="separator:ae31360122b604d6735b12fc027f10924"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0f903f0ca898b0aa80e3a6b921b8f21a"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a0f903f0ca898b0aa80e3a6b921b8f21a"></a>
<tr class="separator:a5808a50995fc228f114c3c93aeddf331"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7aaed1937820a90cb657a824e1391c1f"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a7aaed1937820a90cb657a824e1391c1f"></a>
typedef base_type::difference_type&#160;</td><td class="memItemRight" valign="bottom"><b>difference_type</b></td></tr>
<tr class="separator:a0f903f0ca898b0aa80e3a6b921b8f21a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a267aff808d10aa0c437fd9261286467e"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a267aff808d10aa0c437fd9261286467e"></a>
<tr class="separator:a7aaed1937820a90cb657a824e1391c1f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abb76557f1755f96dc2e78728cb231e57"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="abb76557f1755f96dc2e78728cb231e57"></a>
typedef base_type::iterator&#160;</td><td class="memItemRight" valign="bottom"><b>iterator</b></td></tr>
<tr class="separator:a267aff808d10aa0c437fd9261286467e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5c2d1a61d1e6ed09fb3df14270d61a01"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a5c2d1a61d1e6ed09fb3df14270d61a01"></a>
<tr class="separator:abb76557f1755f96dc2e78728cb231e57"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a983d10264bc785a59b11dc94001e0042"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a983d10264bc785a59b11dc94001e0042"></a>
typedef base_type::const_iterator&#160;</td><td class="memItemRight" valign="bottom"><b>const_iterator</b></td></tr>
<tr class="separator:a5c2d1a61d1e6ed09fb3df14270d61a01"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a744c0cf93efb5a134d6ddfb3a5fb75d3"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a744c0cf93efb5a134d6ddfb3a5fb75d3"></a>
<tr class="separator:a983d10264bc785a59b11dc94001e0042"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acb12b4b1df9a7108a5193b0d3bbfc677"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="acb12b4b1df9a7108a5193b0d3bbfc677"></a>
typedef base_type::iterator&#160;</td><td class="memItemRight" valign="bottom"><b>local_iterator</b></td></tr>
<tr class="separator:a744c0cf93efb5a134d6ddfb3a5fb75d3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5df36261f0e5a1aea64235702fdacb62"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a5df36261f0e5a1aea64235702fdacb62"></a>
<tr class="separator:acb12b4b1df9a7108a5193b0d3bbfc677"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af111bc738ee2a1b4b1cf2967a1252322"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="af111bc738ee2a1b4b1cf2967a1252322"></a>
typedef base_type::const_iterator&#160;</td><td class="memItemRight" valign="bottom"><b>const_local_iterator</b></td></tr>
<tr class="separator:a5df36261f0e5a1aea64235702fdacb62"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="separator:af111bc738ee2a1b4b1cf2967a1252322"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:aeeabd4bffe47ad7a300ae896c06dc46c"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aeeabd4bffe47ad7a300ae896c06dc46c"></a>
&#160;</td><td class="memItemRight" valign="bottom"><b>concurrent_unordered_map</b> (size_type n_of_buckets=base_type::initial_bucket_number, const hasher &amp;_Hasher=hasher(), const key_equal &amp;_Key_equality=key_equal(), const allocator_type &amp;a=allocator_type())</td></tr>
<tr class="separator:aeeabd4bffe47ad7a300ae896c06dc46c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad0e15127e237c29c923db83fb509f624"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ad0e15127e237c29c923db83fb509f624"></a>
&#160;</td><td class="memItemRight" valign="bottom"><b>concurrent_unordered_map</b> (const Allocator &amp;a)</td></tr>
<tr class="separator:ad0e15127e237c29c923db83fb509f624"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab494f2ac22495884f64985fba6ade501"><td class="memTemplParams" colspan="2"><a class="anchor" id="ab494f2ac22495884f64985fba6ade501"></a>
<tr class="memitem:aad5e3bd7fa156e5d8aa81a8ff560d84e"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aad5e3bd7fa156e5d8aa81a8ff560d84e"></a>
&#160;</td><td class="memItemRight" valign="bottom"><b>concurrent_unordered_set</b> (size_type n_of_buckets=base_type::initial_bucket_number, const hasher &amp;a_hasher=hasher(), const key_equal &amp;a_keyeq=key_equal(), const allocator_type &amp;a=allocator_type())</td></tr>
<tr class="separator:aad5e3bd7fa156e5d8aa81a8ff560d84e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2d307ae4ebb3e2d46b0a75713824d109"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a2d307ae4ebb3e2d46b0a75713824d109"></a>
&#160;</td><td class="memItemRight" valign="bottom"><b>concurrent_unordered_set</b> (const Allocator &amp;a)</td></tr>
<tr class="separator:a2d307ae4ebb3e2d46b0a75713824d109"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afd4bc55194c4473e81398d8456a5c68a"><td class="memTemplParams" colspan="2"><a class="anchor" id="afd4bc55194c4473e81398d8456a5c68a"></a>
template&lt;typename Iterator &gt; </td></tr>
<tr class="memitem:ab494f2ac22495884f64985fba6ade501"><td class="memTemplItemLeft" align="right" valign="top">&#160;</td><td class="memTemplItemRight" valign="bottom"><b>concurrent_unordered_map</b> (Iterator first, Iterator last, size_type n_of_buckets=base_type::initial_bucket_number, const hasher &amp;_Hasher=hasher(), const key_equal &amp;_Key_equality=key_equal(), const allocator_type &amp;a=allocator_type())</td></tr>
<tr class="separator:ab494f2ac22495884f64985fba6ade501"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a788a7225915574c1a349abc0f1f653c7"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a788a7225915574c1a349abc0f1f653c7"></a>
&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00044.html#a788a7225915574c1a349abc0f1f653c7">concurrent_unordered_map</a> (std::initializer_list&lt; value_type &gt; il, size_type n_of_buckets=base_type::initial_bucket_number, const hasher &amp;_Hasher=hasher(), const key_equal &amp;_Key_equality=key_equal(), const allocator_type &amp;a=allocator_type())</td></tr>
<tr class="memdesc:a788a7225915574c1a349abc0f1f653c7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructor from initializer_list. <br/></td></tr>
<tr class="separator:a788a7225915574c1a349abc0f1f653c7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1593b0f93256736d163cfbcc23c7de26"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a1593b0f93256736d163cfbcc23c7de26"></a>
&#160;</td><td class="memItemRight" valign="bottom"><b>concurrent_unordered_map</b> (const <a class="el" href="a00044.html">concurrent_unordered_map</a> &amp;table)</td></tr>
<tr class="separator:a1593b0f93256736d163cfbcc23c7de26"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a47b4eec40fac7fb8b6a8023758c1a34c"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a47b4eec40fac7fb8b6a8023758c1a34c"></a>
<a class="el" href="a00044.html">concurrent_unordered_map</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>operator=</b> (const <a class="el" href="a00044.html">concurrent_unordered_map</a> &amp;table)</td></tr>
<tr class="separator:a47b4eec40fac7fb8b6a8023758c1a34c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a53dcf022c4bd65f438b377a23a9c1bae"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a53dcf022c4bd65f438b377a23a9c1bae"></a>
&#160;</td><td class="memItemRight" valign="bottom"><b>concurrent_unordered_map</b> (<a class="el" href="a00044.html">concurrent_unordered_map</a> &amp;&amp;table)</td></tr>
<tr class="separator:a53dcf022c4bd65f438b377a23a9c1bae"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a73f8e707280b4e55a9ead393fbb012c8"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a73f8e707280b4e55a9ead393fbb012c8"></a>
<a class="el" href="a00044.html">concurrent_unordered_map</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>operator=</b> (<a class="el" href="a00044.html">concurrent_unordered_map</a> &amp;&amp;table)</td></tr>
<tr class="separator:a73f8e707280b4e55a9ead393fbb012c8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab22288d418827a312aee4191bb6a7f11"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ab22288d418827a312aee4191bb6a7f11"></a>
&#160;</td><td class="memItemRight" valign="bottom"><b>concurrent_unordered_map</b> (<a class="el" href="a00044.html">concurrent_unordered_map</a> &amp;&amp;table, const Allocator &amp;a)</td></tr>
<tr class="separator:ab22288d418827a312aee4191bb6a7f11"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2e1cce13f9fa458a616b424c84790c25"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a2e1cce13f9fa458a616b424c84790c25"></a>
&#160;</td><td class="memItemRight" valign="bottom"><b>concurrent_unordered_map</b> (const <a class="el" href="a00044.html">concurrent_unordered_map</a> &amp;table, const Allocator &amp;a)</td></tr>
<tr class="separator:a2e1cce13f9fa458a616b424c84790c25"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae49177d89c80434a30aa346201abb986"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ae49177d89c80434a30aa346201abb986"></a>
mapped_type &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>operator[]</b> (const key_type &amp;key)</td></tr>
<tr class="separator:ae49177d89c80434a30aa346201abb986"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af2e1ccbd986686ef2e93c880a965e861"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="af2e1ccbd986686ef2e93c880a965e861"></a>
mapped_type &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>at</b> (const key_type &amp;key)</td></tr>
<tr class="separator:af2e1ccbd986686ef2e93c880a965e861"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a54173c11cd3bc91b491b3f83375868e4"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a54173c11cd3bc91b491b3f83375868e4"></a>
const mapped_type &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>at</b> (const key_type &amp;key) const </td></tr>
<tr class="separator:a54173c11cd3bc91b491b3f83375868e4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afd4bc55194c4473e81398d8456a5c68a"><td class="memTemplItemLeft" align="right" valign="top">&#160;</td><td class="memTemplItemRight" valign="bottom"><b>concurrent_unordered_set</b> (Iterator first, Iterator last, size_type n_of_buckets=base_type::initial_bucket_number, const hasher &amp;a_hasher=hasher(), const key_equal &amp;a_keyeq=key_equal(), const allocator_type &amp;a=allocator_type())</td></tr>
<tr class="separator:afd4bc55194c4473e81398d8456a5c68a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6f6d5ecff239ff13000848e925904fe7"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a6f6d5ecff239ff13000848e925904fe7"></a>
&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00044.html#a6f6d5ecff239ff13000848e925904fe7">concurrent_unordered_set</a> (std::initializer_list&lt; value_type &gt; il, size_type n_of_buckets=base_type::initial_bucket_number, const hasher &amp;a_hasher=hasher(), const key_equal &amp;a_keyeq=key_equal(), const allocator_type &amp;a=allocator_type())</td></tr>
<tr class="memdesc:a6f6d5ecff239ff13000848e925904fe7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructor from initializer_list. <br/></td></tr>
<tr class="separator:a6f6d5ecff239ff13000848e925904fe7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac3c68d5286d6ca29fba2b38c59bdbc66"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ac3c68d5286d6ca29fba2b38c59bdbc66"></a>
&#160;</td><td class="memItemRight" valign="bottom"><b>concurrent_unordered_set</b> (const <a class="el" href="a00044.html">concurrent_unordered_set</a> &amp;table)</td></tr>
<tr class="separator:ac3c68d5286d6ca29fba2b38c59bdbc66"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a39097dddf99fd057919197b8293bd807"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a39097dddf99fd057919197b8293bd807"></a>
<a class="el" href="a00044.html">concurrent_unordered_set</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>operator=</b> (const <a class="el" href="a00044.html">concurrent_unordered_set</a> &amp;table)</td></tr>
<tr class="separator:a39097dddf99fd057919197b8293bd807"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9dde7a48af7449fde97d4449691207c5"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a9dde7a48af7449fde97d4449691207c5"></a>
&#160;</td><td class="memItemRight" valign="bottom"><b>concurrent_unordered_set</b> (<a class="el" href="a00044.html">concurrent_unordered_set</a> &amp;&amp;table)</td></tr>
<tr class="separator:a9dde7a48af7449fde97d4449691207c5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a49ad03a5e20f90beac704325aaa6567f"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a49ad03a5e20f90beac704325aaa6567f"></a>
<a class="el" href="a00044.html">concurrent_unordered_set</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>operator=</b> (<a class="el" href="a00044.html">concurrent_unordered_set</a> &amp;&amp;table)</td></tr>
<tr class="separator:a49ad03a5e20f90beac704325aaa6567f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6ef0de826333371f1e9cb33349b35baf"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a6ef0de826333371f1e9cb33349b35baf"></a>
&#160;</td><td class="memItemRight" valign="bottom"><b>concurrent_unordered_set</b> (<a class="el" href="a00044.html">concurrent_unordered_set</a> &amp;&amp;table, const Allocator &amp;a)</td></tr>
<tr class="separator:a6ef0de826333371f1e9cb33349b35baf"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aecea62fe5c8beab0d7907dbc33ef583f"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aecea62fe5c8beab0d7907dbc33ef583f"></a>
&#160;</td><td class="memItemRight" valign="bottom"><b>concurrent_unordered_set</b> (const <a class="el" href="a00044.html">concurrent_unordered_set</a> &amp;table, const Allocator &amp;a)</td></tr>
<tr class="separator:aecea62fe5c8beab0d7907dbc33ef583f"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<hr/>The documentation for this class was generated from the following file:<ul>
<li>concurrent_unordered_map.h</li>
<li>concurrent_unordered_set.h</li>
</ul>
</div><!-- contents -->
<hr>
Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.1 KiB

After

Width:  |  Height:  |  Size: 2.0 KiB

+27 -25
View File
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.4"/>
<title>tbb::interface5::concurrent_unordered_map_traits&lt; Key, T, Hash_compare, Allocator, Allow_multimapping &gt; Class Template Reference</title>
<title>tbb::interface5::concurrent_unordered_set_traits&lt; Key, Hash_compare, Allocator, Allow_multimapping &gt; Class Template Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -33,7 +33,7 @@
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="a00237.html">tbb</a></li><li class="navelem"><b>interface5</b></li><li class="navelem"><a class="el" href="a00045.html">concurrent_unordered_map_traits</a></li> </ul>
<li class="navelem"><a class="el" href="a00234.html">tbb</a></li><li class="navelem"><b>interface5</b></li><li class="navelem"><a class="el" href="a00045.html">concurrent_unordered_set_traits</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
@@ -42,52 +42,54 @@
<a href="#pro-methods">Protected Member Functions</a> &#124;
<a href="#pro-static-methods">Static Protected Member Functions</a> &#124;
<a href="#pro-attribs">Protected Attributes</a> &#124;
<a href="a00369.html">List of all members</a> </div>
<a href="a00368.html">List of all members</a> </div>
<div class="headertitle">
<div class="title">tbb::interface5::concurrent_unordered_map_traits&lt; Key, T, Hash_compare, Allocator, Allow_multimapping &gt; Class Template Reference</div> </div>
<div class="title">tbb::interface5::concurrent_unordered_set_traits&lt; Key, Hash_compare, Allocator, Allow_multimapping &gt; Class Template Reference</div> </div>
</div><!--header-->
<div class="contents">
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-types"></a>
Protected Types</h2></td></tr>
<tr class="memitem:a3a4d3aae580451e86649ce3a3ae38894"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom">{ <b>allow_multimapping</b> = Allow_multimapping
<tr class="memitem:a10fca95c59a7c0542d2d6bc1b8306e1c"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom">{ <b>allow_multimapping</b> = Allow_multimapping
}</td></tr>
<tr class="separator:a3a4d3aae580451e86649ce3a3ae38894"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0c77b12f17473e24cda4b60b38e847fd"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a0c77b12f17473e24cda4b60b38e847fd"></a>
typedef std::pair&lt; const Key, T &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>value_type</b></td></tr>
<tr class="separator:a0c77b12f17473e24cda4b60b38e847fd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a133cf0868239271387488f6067ce56ee"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a133cf0868239271387488f6067ce56ee"></a>
<tr class="separator:a10fca95c59a7c0542d2d6bc1b8306e1c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a935ab6e249964c5a7e1caffd308bf008"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a935ab6e249964c5a7e1caffd308bf008"></a>
typedef Key&#160;</td><td class="memItemRight" valign="bottom"><b>value_type</b></td></tr>
<tr class="separator:a935ab6e249964c5a7e1caffd308bf008"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8b1d770b7db20b5d0d51af0b910aebb2"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a8b1d770b7db20b5d0d51af0b910aebb2"></a>
typedef Key&#160;</td><td class="memItemRight" valign="bottom"><b>key_type</b></td></tr>
<tr class="separator:a133cf0868239271387488f6067ce56ee"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afdf65dc261abb44bd733ebab0f54f01b"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="afdf65dc261abb44bd733ebab0f54f01b"></a>
<tr class="separator:a8b1d770b7db20b5d0d51af0b910aebb2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3c1ef314e63eb78db91ce99cb8617b87"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a3c1ef314e63eb78db91ce99cb8617b87"></a>
typedef Hash_compare&#160;</td><td class="memItemRight" valign="bottom"><b>hash_compare</b></td></tr>
<tr class="separator:afdf65dc261abb44bd733ebab0f54f01b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5f015ac2f9770d8cd69d0656447b66ac"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a5f015ac2f9770d8cd69d0656447b66ac"></a>
<tr class="separator:a3c1ef314e63eb78db91ce99cb8617b87"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a453126bb05d3c798914cb91852e0b3a5"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a453126bb05d3c798914cb91852e0b3a5"></a>
typedef Allocator::template <br class="typebreak"/>
rebind&lt; value_type &gt;::other&#160;</td><td class="memItemRight" valign="bottom"><b>allocator_type</b></td></tr>
<tr class="separator:a5f015ac2f9770d8cd69d0656447b66ac"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="separator:a453126bb05d3c798914cb91852e0b3a5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa846331955302afdcaa6ba10e47ff427"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aa846331955302afdcaa6ba10e47ff427"></a>
typedef hash_compare&#160;</td><td class="memItemRight" valign="bottom"><b>value_compare</b></td></tr>
<tr class="separator:aa846331955302afdcaa6ba10e47ff427"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-methods"></a>
Protected Member Functions</h2></td></tr>
<tr class="memitem:ae9e1e3147bd444fb77c544ef7ecb5bef"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ae9e1e3147bd444fb77c544ef7ecb5bef"></a>
&#160;</td><td class="memItemRight" valign="bottom"><b>concurrent_unordered_map_traits</b> (const hash_compare &amp;hc)</td></tr>
<tr class="separator:ae9e1e3147bd444fb77c544ef7ecb5bef"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a958c02e4dbd967575a9f03290bb0cad3"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a958c02e4dbd967575a9f03290bb0cad3"></a>
&#160;</td><td class="memItemRight" valign="bottom"><b>concurrent_unordered_set_traits</b> (const hash_compare &amp;hc)</td></tr>
<tr class="separator:a958c02e4dbd967575a9f03290bb0cad3"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-static-methods"></a>
Static Protected Member Functions</h2></td></tr>
<tr class="memitem:a561f2cf05060387c8282ad57f5c816ca"><td class="memTemplParams" colspan="2"><a class="anchor" id="a561f2cf05060387c8282ad57f5c816ca"></a>
template&lt;class Type1 , class Type2 &gt; </td></tr>
<tr class="memitem:a561f2cf05060387c8282ad57f5c816ca"><td class="memTemplItemLeft" align="right" valign="top">static const Key &amp;&#160;</td><td class="memTemplItemRight" valign="bottom"><b>get_key</b> (const std::pair&lt; Type1, Type2 &gt; &amp;value)</td></tr>
<tr class="separator:a561f2cf05060387c8282ad57f5c816ca"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3f4bfe96ddb3db04d4701e06611fc73d"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a3f4bfe96ddb3db04d4701e06611fc73d"></a>
static const Key &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>get_key</b> (const value_type &amp;value)</td></tr>
<tr class="separator:a3f4bfe96ddb3db04d4701e06611fc73d"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-attribs"></a>
Protected Attributes</h2></td></tr>
<tr class="memitem:ad8f108aa7fc21e9e38050a9d56e691b7"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ad8f108aa7fc21e9e38050a9d56e691b7"></a>
<tr class="memitem:ae134f56adf668d7bd31f7ee8fb36ead5"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ae134f56adf668d7bd31f7ee8fb36ead5"></a>
hash_compare&#160;</td><td class="memItemRight" valign="bottom"><b>my_hash_compare</b></td></tr>
<tr class="separator:ad8f108aa7fc21e9e38050a9d56e691b7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="separator:ae134f56adf668d7bd31f7ee8fb36ead5"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<hr/>The documentation for this class was generated from the following file:<ul>
<li>concurrent_unordered_map.h</li>
<li>concurrent_unordered_set.h</li>
</ul>
</div><!-- contents -->
<hr>
+743 -91
View File
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.4"/>
<title>tbb::interface5::concurrent_unordered_multimap&lt; Key, T, Hasher, Key_equality, Allocator &gt; Class Template Reference</title>
<title>tbb::concurrent_vector&lt; T, A &gt; Class Template Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -33,118 +33,770 @@
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="a00237.html">tbb</a></li><li class="navelem"><b>interface5</b></li><li class="navelem"><a class="el" href="a00046.html">concurrent_unordered_multimap</a></li> </ul>
<li class="navelem"><a class="el" href="a00234.html">tbb</a></li><li class="navelem"><a class="el" href="a00046.html">concurrent_vector</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#nested-classes">Classes</a> &#124;
<a href="#pub-types">Public Types</a> &#124;
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="a00371.html">List of all members</a> </div>
<a href="#friends">Friends</a> &#124;
<a href="a00274.html">List of all members</a> </div>
<div class="headertitle">
<div class="title">tbb::interface5::concurrent_unordered_multimap&lt; Key, T, Hasher, Key_equality, Allocator &gt; Class Template Reference</div> </div>
<div class="title">tbb::concurrent_vector&lt; T, A &gt; Class Template Reference<div class="ingroups"><a class="el" href="a00254.html">Containers</a></div></div> </div>
</div><!--header-->
<div class="contents">
<p>Concurrent vector container.
<a href="a00046.html#details">More...</a></p>
<p><code>#include &lt;concurrent_vector.h&gt;</code></p>
<div class="dynheader">
Inheritance diagram for tbb::interface5::concurrent_unordered_multimap&lt; Key, T, Hasher, Key_equality, Allocator &gt;:</div>
Inheritance diagram for tbb::concurrent_vector&lt; T, A &gt;:</div>
<div class="dyncontent">
<div class="center">
<img src="a00046.png" usemap="#tbb::interface5::concurrent_unordered_multimap&lt; Key, T, Hasher, Key_equality, Allocator &gt;_map" alt=""/>
<map id="tbb::interface5::concurrent_unordered_multimap&lt; Key, T, Hasher, Key_equality, Allocator &gt;_map" name="tbb::interface5::concurrent_unordered_multimap&lt; Key, T, Hasher, Key_equality, Allocator &gt;_map">
<img src="a00046.png" usemap="#tbb::concurrent_vector&lt; T, A &gt;_map" alt=""/>
<map id="tbb::concurrent_vector&lt; T, A &gt;_map" name="tbb::concurrent_vector&lt; T, A &gt;_map">
</map>
</div></div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-types"></a>
Public Types</h2></td></tr>
<tr class="memitem:a13c740f45a112984c9a0c6d0d0a1a4d8"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a13c740f45a112984c9a0c6d0d0a1a4d8"></a>
typedef Key&#160;</td><td class="memItemRight" valign="bottom"><b>key_type</b></td></tr>
<tr class="separator:a13c740f45a112984c9a0c6d0d0a1a4d8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1b89d9eeca4d1c194433b40671da2bf2"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a1b89d9eeca4d1c194433b40671da2bf2"></a>
typedef base_type::value_type&#160;</td><td class="memItemRight" valign="bottom"><b>value_type</b></td></tr>
<tr class="separator:a1b89d9eeca4d1c194433b40671da2bf2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a627d86449ed7299d1baa4b09b6dd93f6"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a627d86449ed7299d1baa4b09b6dd93f6"></a>
typedef T&#160;</td><td class="memItemRight" valign="bottom"><b>mapped_type</b></td></tr>
<tr class="separator:a627d86449ed7299d1baa4b09b6dd93f6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8485b8d61b666ac6ddd81e1d4b286d5e"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a8485b8d61b666ac6ddd81e1d4b286d5e"></a>
typedef Hasher&#160;</td><td class="memItemRight" valign="bottom"><b>hasher</b></td></tr>
<tr class="separator:a8485b8d61b666ac6ddd81e1d4b286d5e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a72a124e1c8c64499677e58171a7b9383"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a72a124e1c8c64499677e58171a7b9383"></a>
typedef Key_equality&#160;</td><td class="memItemRight" valign="bottom"><b>key_equal</b></td></tr>
<tr class="separator:a72a124e1c8c64499677e58171a7b9383"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6ecb30201df0bd885fbba309b2392bd4"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a6ecb30201df0bd885fbba309b2392bd4"></a>
typedef hash_compare&#160;</td><td class="memItemRight" valign="bottom"><b>key_compare</b></td></tr>
<tr class="separator:a6ecb30201df0bd885fbba309b2392bd4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aaeeee0c045e0003b85f60a6851d1d827"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aaeeee0c045e0003b85f60a6851d1d827"></a>
typedef base_type::allocator_type&#160;</td><td class="memItemRight" valign="bottom"><b>allocator_type</b></td></tr>
<tr class="separator:aaeeee0c045e0003b85f60a6851d1d827"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a029187ffe49ae876f41dfca39fe6f288"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a029187ffe49ae876f41dfca39fe6f288"></a>
typedef base_type::pointer&#160;</td><td class="memItemRight" valign="bottom"><b>pointer</b></td></tr>
<tr class="separator:a029187ffe49ae876f41dfca39fe6f288"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a55c029b4a58d1201e08ef5ba14fc0a66"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a55c029b4a58d1201e08ef5ba14fc0a66"></a>
typedef base_type::const_pointer&#160;</td><td class="memItemRight" valign="bottom"><b>const_pointer</b></td></tr>
<tr class="separator:a55c029b4a58d1201e08ef5ba14fc0a66"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac4613be39e17bc83cf85d3b90a13fa09"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ac4613be39e17bc83cf85d3b90a13fa09"></a>
typedef base_type::reference&#160;</td><td class="memItemRight" valign="bottom"><b>reference</b></td></tr>
<tr class="separator:ac4613be39e17bc83cf85d3b90a13fa09"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0b9ef2bc9a8574b16ef678e838ff4e96"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a0b9ef2bc9a8574b16ef678e838ff4e96"></a>
typedef base_type::const_reference&#160;</td><td class="memItemRight" valign="bottom"><b>const_reference</b></td></tr>
<tr class="separator:a0b9ef2bc9a8574b16ef678e838ff4e96"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a49038d8ed5f392bce440d7906b39ee53"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a49038d8ed5f392bce440d7906b39ee53"></a>
typedef base_type::size_type&#160;</td><td class="memItemRight" valign="bottom"><b>size_type</b></td></tr>
<tr class="separator:a49038d8ed5f392bce440d7906b39ee53"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a517a0b94b44d429f7f23b6d9f5366b36"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a517a0b94b44d429f7f23b6d9f5366b36"></a>
typedef base_type::difference_type&#160;</td><td class="memItemRight" valign="bottom"><b>difference_type</b></td></tr>
<tr class="separator:a517a0b94b44d429f7f23b6d9f5366b36"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a494392b2f3400393ae2696a70e2411f4"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a494392b2f3400393ae2696a70e2411f4"></a>
typedef base_type::iterator&#160;</td><td class="memItemRight" valign="bottom"><b>iterator</b></td></tr>
<tr class="separator:a494392b2f3400393ae2696a70e2411f4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2460242ba39d70a0473eac4ee62b898c"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a2460242ba39d70a0473eac4ee62b898c"></a>
typedef base_type::const_iterator&#160;</td><td class="memItemRight" valign="bottom"><b>const_iterator</b></td></tr>
<tr class="separator:a2460242ba39d70a0473eac4ee62b898c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a75ad2607efde410d591002203deb65e6"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a75ad2607efde410d591002203deb65e6"></a>
typedef base_type::iterator&#160;</td><td class="memItemRight" valign="bottom"><b>local_iterator</b></td></tr>
<tr class="separator:a75ad2607efde410d591002203deb65e6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab7647068dd628f35d3e3f7ed161b3fc0"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ab7647068dd628f35d3e3f7ed161b3fc0"></a>
typedef base_type::const_iterator&#160;</td><td class="memItemRight" valign="bottom"><b>const_local_iterator</b></td></tr>
<tr class="separator:ab7647068dd628f35d3e3f7ed161b3fc0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ada098ff121699bfed7ae37e759eff93d"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ada098ff121699bfed7ae37e759eff93d"></a>
typedef <br class="typebreak"/>
internal::concurrent_vector_base_v3::size_type&#160;</td><td class="memItemRight" valign="bottom"><b>size_type</b></td></tr>
<tr class="separator:ada098ff121699bfed7ae37e759eff93d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7560567b5735c57159e55b12d20b6710"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a7560567b5735c57159e55b12d20b6710"></a>
typedef <br class="typebreak"/>
internal::allocator_base&lt; T, A &gt;<br class="typebreak"/>
::allocator_type&#160;</td><td class="memItemRight" valign="bottom"><b>allocator_type</b></td></tr>
<tr class="separator:a7560567b5735c57159e55b12d20b6710"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5cf801a503d4e5fe739f53d7321dd2ef"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a5cf801a503d4e5fe739f53d7321dd2ef"></a>
typedef T&#160;</td><td class="memItemRight" valign="bottom"><b>value_type</b></td></tr>
<tr class="separator:a5cf801a503d4e5fe739f53d7321dd2ef"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1bb52adb877d3b680dac5f0bd289700b"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a1bb52adb877d3b680dac5f0bd289700b"></a>
typedef ptrdiff_t&#160;</td><td class="memItemRight" valign="bottom"><b>difference_type</b></td></tr>
<tr class="separator:a1bb52adb877d3b680dac5f0bd289700b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a412441e93ad8656f96b14c5ecb9d817f"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a412441e93ad8656f96b14c5ecb9d817f"></a>
typedef T &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>reference</b></td></tr>
<tr class="separator:a412441e93ad8656f96b14c5ecb9d817f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5ecbb1eb2c7264df9d58255ce211207c"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a5ecbb1eb2c7264df9d58255ce211207c"></a>
typedef const T &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>const_reference</b></td></tr>
<tr class="separator:a5ecbb1eb2c7264df9d58255ce211207c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa2c4f00678df69d2d11497e8dd6ed9cf"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aa2c4f00678df69d2d11497e8dd6ed9cf"></a>
typedef T *&#160;</td><td class="memItemRight" valign="bottom"><b>pointer</b></td></tr>
<tr class="separator:aa2c4f00678df69d2d11497e8dd6ed9cf"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afa0d28eb686589cbaf4733ca0eabc071"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="afa0d28eb686589cbaf4733ca0eabc071"></a>
typedef const T *&#160;</td><td class="memItemRight" valign="bottom"><b>const_pointer</b></td></tr>
<tr class="separator:afa0d28eb686589cbaf4733ca0eabc071"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4cee8eaee236867c0b6e87309380cb0f"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a4cee8eaee236867c0b6e87309380cb0f"></a>
typedef <br class="typebreak"/>
internal::vector_iterator<br class="typebreak"/>
&lt; <a class="el" href="a00046.html">concurrent_vector</a>, T &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>iterator</b></td></tr>
<tr class="separator:a4cee8eaee236867c0b6e87309380cb0f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa9a55035528c055ae985db2a61c8b0b2"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aa9a55035528c055ae985db2a61c8b0b2"></a>
typedef <br class="typebreak"/>
internal::vector_iterator<br class="typebreak"/>
&lt; <a class="el" href="a00046.html">concurrent_vector</a>, const T &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>const_iterator</b></td></tr>
<tr class="separator:aa9a55035528c055ae985db2a61c8b0b2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1623110816f9ef8f08e7bf6768aed273"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a1623110816f9ef8f08e7bf6768aed273"></a>
typedef std::reverse_iterator<br class="typebreak"/>
&lt; iterator &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>reverse_iterator</b></td></tr>
<tr class="separator:a1623110816f9ef8f08e7bf6768aed273"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ada43b048144c3814036da624d3bb8c58"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ada43b048144c3814036da624d3bb8c58"></a>
typedef std::reverse_iterator<br class="typebreak"/>
&lt; const_iterator &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>const_reverse_iterator</b></td></tr>
<tr class="separator:ada43b048144c3814036da624d3bb8c58"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adbeeef740ea402fa136ca3962fc0c307"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="adbeeef740ea402fa136ca3962fc0c307"></a>
typedef std::reverse_iterator<br class="typebreak"/>
&lt; iterator, T, T &amp;, T * &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>reverse_iterator</b></td></tr>
<tr class="separator:adbeeef740ea402fa136ca3962fc0c307"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a705a54ffc90b914fc9c30d4177e8228a"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a705a54ffc90b914fc9c30d4177e8228a"></a>
typedef std::reverse_iterator<br class="typebreak"/>
&lt; const_iterator, T, const T <br class="typebreak"/>
&amp;, const T * &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>const_reverse_iterator</b></td></tr>
<tr class="separator:a705a54ffc90b914fc9c30d4177e8228a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a443492ee9918c9e3372b5daca82314ca"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a443492ee9918c9e3372b5daca82314ca"></a>
typedef generic_range_type<br class="typebreak"/>
&lt; iterator &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>range_type</b></td></tr>
<tr class="separator:a443492ee9918c9e3372b5daca82314ca"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1312eb29abf7ca07aa365c727b7844e3"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a1312eb29abf7ca07aa365c727b7844e3"></a>
typedef generic_range_type<br class="typebreak"/>
&lt; const_iterator &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>const_range_type</b></td></tr>
<tr class="separator:a1312eb29abf7ca07aa365c727b7844e3"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:a4ea5780bcc8664253e2180987bc775d0"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a4ea5780bcc8664253e2180987bc775d0"></a>
&#160;</td><td class="memItemRight" valign="bottom"><b>concurrent_unordered_multimap</b> (size_type n_of_buckets=base_type::initial_bucket_number, const hasher &amp;_Hasher=hasher(), const key_equal &amp;_Key_equality=key_equal(), const allocator_type &amp;a=allocator_type())</td></tr>
<tr class="separator:a4ea5780bcc8664253e2180987bc775d0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae2fe78524a0f0cd268194cf2461e3ab0"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ae2fe78524a0f0cd268194cf2461e3ab0"></a>
&#160;</td><td class="memItemRight" valign="bottom"><b>concurrent_unordered_multimap</b> (const Allocator &amp;a)</td></tr>
<tr class="separator:ae2fe78524a0f0cd268194cf2461e3ab0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a174ad09d37e0f648e06ded3abfa65bed"><td class="memTemplParams" colspan="2"><a class="anchor" id="a174ad09d37e0f648e06ded3abfa65bed"></a>
template&lt;typename Iterator &gt; </td></tr>
<tr class="memitem:a174ad09d37e0f648e06ded3abfa65bed"><td class="memTemplItemLeft" align="right" valign="top">&#160;</td><td class="memTemplItemRight" valign="bottom"><b>concurrent_unordered_multimap</b> (Iterator first, Iterator last, size_type n_of_buckets=base_type::initial_bucket_number, const hasher &amp;_Hasher=hasher(), const key_equal &amp;_Key_equality=key_equal(), const allocator_type &amp;a=allocator_type())</td></tr>
<tr class="separator:a174ad09d37e0f648e06ded3abfa65bed"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5957d29e5fa9f8c53538de3f7a41ebc9"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a5957d29e5fa9f8c53538de3f7a41ebc9"></a>
&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00046.html#a5957d29e5fa9f8c53538de3f7a41ebc9">concurrent_unordered_multimap</a> (std::initializer_list&lt; value_type &gt; il, size_type n_of_buckets=base_type::initial_bucket_number, const hasher &amp;_Hasher=hasher(), const key_equal &amp;_Key_equality=key_equal(), const allocator_type &amp;a=allocator_type())</td></tr>
<tr class="memdesc:a5957d29e5fa9f8c53538de3f7a41ebc9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructor from initializer_list. <br/></td></tr>
<tr class="separator:a5957d29e5fa9f8c53538de3f7a41ebc9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aacf347cd41c61dd026e844fa9311130c"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aacf347cd41c61dd026e844fa9311130c"></a>
&#160;</td><td class="memItemRight" valign="bottom"><b>concurrent_unordered_multimap</b> (const <a class="el" href="a00046.html">concurrent_unordered_multimap</a> &amp;table)</td></tr>
<tr class="separator:aacf347cd41c61dd026e844fa9311130c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a58939ac30bfced4b6e2cf0377c1b7d71"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a58939ac30bfced4b6e2cf0377c1b7d71"></a>
<a class="el" href="a00046.html">concurrent_unordered_multimap</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>operator=</b> (const <a class="el" href="a00046.html">concurrent_unordered_multimap</a> &amp;table)</td></tr>
<tr class="separator:a58939ac30bfced4b6e2cf0377c1b7d71"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac339429f4f36730ff3614cb7fcb257cb"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ac339429f4f36730ff3614cb7fcb257cb"></a>
&#160;</td><td class="memItemRight" valign="bottom"><b>concurrent_unordered_multimap</b> (<a class="el" href="a00046.html">concurrent_unordered_multimap</a> &amp;&amp;table)</td></tr>
<tr class="separator:ac339429f4f36730ff3614cb7fcb257cb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5e9a928751361cec49b26afa38018208"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a5e9a928751361cec49b26afa38018208"></a>
<a class="el" href="a00046.html">concurrent_unordered_multimap</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>operator=</b> (<a class="el" href="a00046.html">concurrent_unordered_multimap</a> &amp;&amp;table)</td></tr>
<tr class="separator:a5e9a928751361cec49b26afa38018208"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a040b7c942e77cca30b0ab423ae7a2d87"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a040b7c942e77cca30b0ab423ae7a2d87"></a>
&#160;</td><td class="memItemRight" valign="bottom"><b>concurrent_unordered_multimap</b> (<a class="el" href="a00046.html">concurrent_unordered_multimap</a> &amp;&amp;table, const Allocator &amp;a)</td></tr>
<tr class="separator:a040b7c942e77cca30b0ab423ae7a2d87"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a34148bd7279ce189a6c0c26380df0a2a"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a34148bd7279ce189a6c0c26380df0a2a"></a>
&#160;</td><td class="memItemRight" valign="bottom"><b>concurrent_unordered_multimap</b> (const <a class="el" href="a00046.html">concurrent_unordered_multimap</a> &amp;table, const Allocator &amp;a)</td></tr>
<tr class="separator:a34148bd7279ce189a6c0c26380df0a2a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5bd95c2241653c760704a92b2c887a48"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a5bd95c2241653c760704a92b2c887a48"></a>
&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00046.html#a5bd95c2241653c760704a92b2c887a48">concurrent_vector</a> (const allocator_type &amp;a=allocator_type())</td></tr>
<tr class="memdesc:a5bd95c2241653c760704a92b2c887a48"><td class="mdescLeft">&#160;</td><td class="mdescRight">Construct empty vector. <br/></td></tr>
<tr class="separator:a5bd95c2241653c760704a92b2c887a48"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa25dccd2f65fbfa148e92d01a11c20ff"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aa25dccd2f65fbfa148e92d01a11c20ff"></a>
&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00046.html#aa25dccd2f65fbfa148e92d01a11c20ff">concurrent_vector</a> (std::initializer_list&lt; T &gt; init_list, const allocator_type &amp;a=allocator_type())</td></tr>
<tr class="memdesc:aa25dccd2f65fbfa148e92d01a11c20ff"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructor from initializer_list. <br/></td></tr>
<tr class="separator:aa25dccd2f65fbfa148e92d01a11c20ff"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a03b5a0e9069b30dc4e2e5fc2f191ccb6"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a03b5a0e9069b30dc4e2e5fc2f191ccb6"></a>
&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00046.html#a03b5a0e9069b30dc4e2e5fc2f191ccb6">concurrent_vector</a> (const <a class="el" href="a00046.html">concurrent_vector</a> &amp;vector, const allocator_type &amp;a=allocator_type())</td></tr>
<tr class="memdesc:a03b5a0e9069b30dc4e2e5fc2f191ccb6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Copying constructor. <br/></td></tr>
<tr class="separator:a03b5a0e9069b30dc4e2e5fc2f191ccb6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aafb048cfda83d0e7803888ead76c06a9"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aafb048cfda83d0e7803888ead76c06a9"></a>
&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00046.html#aafb048cfda83d0e7803888ead76c06a9">concurrent_vector</a> (<a class="el" href="a00046.html">concurrent_vector</a> &amp;&amp;source)</td></tr>
<tr class="memdesc:aafb048cfda83d0e7803888ead76c06a9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Move constructor. <br/></td></tr>
<tr class="separator:aafb048cfda83d0e7803888ead76c06a9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aef020f41f3017fecc43e70a22d3e0fc0"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aef020f41f3017fecc43e70a22d3e0fc0"></a>
&#160;</td><td class="memItemRight" valign="bottom"><b>concurrent_vector</b> (<a class="el" href="a00046.html">concurrent_vector</a> &amp;&amp;source, const allocator_type &amp;a)</td></tr>
<tr class="separator:aef020f41f3017fecc43e70a22d3e0fc0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abb0e376a31c3fdb91beaaa98441735f5"><td class="memTemplParams" colspan="2"><a class="anchor" id="abb0e376a31c3fdb91beaaa98441735f5"></a>
template&lt;class M &gt; </td></tr>
<tr class="memitem:abb0e376a31c3fdb91beaaa98441735f5"><td class="memTemplItemLeft" align="right" valign="top">&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00046.html#abb0e376a31c3fdb91beaaa98441735f5">concurrent_vector</a> (const <a class="el" href="a00046.html">concurrent_vector</a>&lt; T, M &gt; &amp;vector, const allocator_type &amp;a=allocator_type())</td></tr>
<tr class="memdesc:abb0e376a31c3fdb91beaaa98441735f5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Copying constructor for vector with different allocator type. <br/></td></tr>
<tr class="separator:abb0e376a31c3fdb91beaaa98441735f5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa898a39aad73711ceca70cd465dc0b4f"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aa898a39aad73711ceca70cd465dc0b4f"></a>
&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00046.html#aa898a39aad73711ceca70cd465dc0b4f">concurrent_vector</a> (size_type n)</td></tr>
<tr class="memdesc:aa898a39aad73711ceca70cd465dc0b4f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Construction with initial size specified by argument n. <br/></td></tr>
<tr class="separator:aa898a39aad73711ceca70cd465dc0b4f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a736c6e35f1df11625636968ea546e21f"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a736c6e35f1df11625636968ea546e21f"></a>
&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00046.html#a736c6e35f1df11625636968ea546e21f">concurrent_vector</a> (size_type n, const_reference t, const allocator_type &amp;a=allocator_type())</td></tr>
<tr class="memdesc:a736c6e35f1df11625636968ea546e21f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Construction with initial size specified by argument n, initialization by copying of t, and given allocator instance. <br/></td></tr>
<tr class="separator:a736c6e35f1df11625636968ea546e21f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae0d384ec56032d18f63e26960029d3ce"><td class="memTemplParams" colspan="2"><a class="anchor" id="ae0d384ec56032d18f63e26960029d3ce"></a>
template&lt;class I &gt; </td></tr>
<tr class="memitem:ae0d384ec56032d18f63e26960029d3ce"><td class="memTemplItemLeft" align="right" valign="top">&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00046.html#ae0d384ec56032d18f63e26960029d3ce">concurrent_vector</a> (I first, I last, const allocator_type &amp;a=allocator_type())</td></tr>
<tr class="memdesc:ae0d384ec56032d18f63e26960029d3ce"><td class="mdescLeft">&#160;</td><td class="mdescRight">Construction with copying iteration range and given allocator instance. <br/></td></tr>
<tr class="separator:ae0d384ec56032d18f63e26960029d3ce"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a920384aece0eb8beea3049956320ec91"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a920384aece0eb8beea3049956320ec91"></a>
<a class="el" href="a00046.html">concurrent_vector</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00046.html#a920384aece0eb8beea3049956320ec91">operator=</a> (const <a class="el" href="a00046.html">concurrent_vector</a> &amp;vector)</td></tr>
<tr class="memdesc:a920384aece0eb8beea3049956320ec91"><td class="mdescLeft">&#160;</td><td class="mdescRight">Assignment. <br/></td></tr>
<tr class="separator:a920384aece0eb8beea3049956320ec91"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0d26889a94203cdb5f5460fade7497c7"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a0d26889a94203cdb5f5460fade7497c7"></a>
<a class="el" href="a00046.html">concurrent_vector</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00046.html#a0d26889a94203cdb5f5460fade7497c7">operator=</a> (<a class="el" href="a00046.html">concurrent_vector</a> &amp;&amp;other)</td></tr>
<tr class="memdesc:a0d26889a94203cdb5f5460fade7497c7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Move assignment. <br/></td></tr>
<tr class="separator:a0d26889a94203cdb5f5460fade7497c7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1fe7f0b60bbf304890a9293a35e6819d"><td class="memTemplParams" colspan="2"><a class="anchor" id="a1fe7f0b60bbf304890a9293a35e6819d"></a>
template&lt;class M &gt; </td></tr>
<tr class="memitem:a1fe7f0b60bbf304890a9293a35e6819d"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00046.html">concurrent_vector</a> &amp;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00046.html#a1fe7f0b60bbf304890a9293a35e6819d">operator=</a> (const <a class="el" href="a00046.html">concurrent_vector</a>&lt; T, M &gt; &amp;vector)</td></tr>
<tr class="memdesc:a1fe7f0b60bbf304890a9293a35e6819d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Assignment for vector with different allocator type. <br/></td></tr>
<tr class="separator:a1fe7f0b60bbf304890a9293a35e6819d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8498a1335a3bbac2f4925a4e8d70cdb8"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a8498a1335a3bbac2f4925a4e8d70cdb8"></a>
<a class="el" href="a00046.html">concurrent_vector</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00046.html#a8498a1335a3bbac2f4925a4e8d70cdb8">operator=</a> (std::initializer_list&lt; T &gt; init_list)</td></tr>
<tr class="memdesc:a8498a1335a3bbac2f4925a4e8d70cdb8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Assignment for initializer_list. <br/></td></tr>
<tr class="separator:a8498a1335a3bbac2f4925a4e8d70cdb8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab89c2db5358048debdc282ff995caffb"><td class="memItemLeft" align="right" valign="top">iterator&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00046.html#ab89c2db5358048debdc282ff995caffb">grow_by</a> (size_type delta)</td></tr>
<tr class="memdesc:ab89c2db5358048debdc282ff995caffb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Grow by "delta" elements. <a href="#ab89c2db5358048debdc282ff995caffb">More...</a><br/></td></tr>
<tr class="separator:ab89c2db5358048debdc282ff995caffb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa11fc991cda82cf93789fce31b37a16c"><td class="memItemLeft" align="right" valign="top">iterator&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00046.html#aa11fc991cda82cf93789fce31b37a16c">grow_by</a> (size_type delta, const_reference t)</td></tr>
<tr class="memdesc:aa11fc991cda82cf93789fce31b37a16c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Grow by "delta" elements using copying constructor. <a href="#aa11fc991cda82cf93789fce31b37a16c">More...</a><br/></td></tr>
<tr class="separator:aa11fc991cda82cf93789fce31b37a16c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acfd74483ff523213b78f44fb914c8eb4"><td class="memTemplParams" colspan="2">template&lt;typename I &gt; </td></tr>
<tr class="memitem:acfd74483ff523213b78f44fb914c8eb4"><td class="memTemplItemLeft" align="right" valign="top">iterator&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00046.html#acfd74483ff523213b78f44fb914c8eb4">grow_by</a> (I first, I last)</td></tr>
<tr class="separator:acfd74483ff523213b78f44fb914c8eb4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a95f57f1529e0ebd1ca6bd2d60003fcab"><td class="memItemLeft" align="right" valign="top">iterator&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00046.html#a95f57f1529e0ebd1ca6bd2d60003fcab">grow_by</a> (std::initializer_list&lt; T &gt; init_list)</td></tr>
<tr class="separator:a95f57f1529e0ebd1ca6bd2d60003fcab"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae9ef9895e88f9bf036b379035c18f035"><td class="memItemLeft" align="right" valign="top">iterator&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00046.html#ae9ef9895e88f9bf036b379035c18f035">grow_to_at_least</a> (size_type n)</td></tr>
<tr class="memdesc:ae9ef9895e88f9bf036b379035c18f035"><td class="mdescLeft">&#160;</td><td class="mdescRight">Append minimal sequence of elements such that <a class="el" href="a00046.html#a803268c16e3688ff4681251947d257c7" title="Return size of vector. It may include elements under construction. ">size()</a>&gt;=n. <a href="#ae9ef9895e88f9bf036b379035c18f035">More...</a><br/></td></tr>
<tr class="separator:ae9ef9895e88f9bf036b379035c18f035"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a422d9689ed72a5ef2b6b72f28e4143a2"><td class="memItemLeft" align="right" valign="top">iterator&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00046.html#a422d9689ed72a5ef2b6b72f28e4143a2">grow_to_at_least</a> (size_type n, const_reference t)</td></tr>
<tr class="separator:a422d9689ed72a5ef2b6b72f28e4143a2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad68d1675fedef232bfae35f200ba007d"><td class="memItemLeft" align="right" valign="top">iterator&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00046.html#ad68d1675fedef232bfae35f200ba007d">push_back</a> (const_reference item)</td></tr>
<tr class="memdesc:ad68d1675fedef232bfae35f200ba007d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Push item. <a href="#ad68d1675fedef232bfae35f200ba007d">More...</a><br/></td></tr>
<tr class="separator:ad68d1675fedef232bfae35f200ba007d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac29a9f08c0fac7c20786c7b8f4f0321a"><td class="memItemLeft" align="right" valign="top">iterator&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00046.html#ac29a9f08c0fac7c20786c7b8f4f0321a">push_back</a> (T &amp;&amp;item)</td></tr>
<tr class="memdesc:ac29a9f08c0fac7c20786c7b8f4f0321a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Push item, move-aware. <a href="#ac29a9f08c0fac7c20786c7b8f4f0321a">More...</a><br/></td></tr>
<tr class="separator:ac29a9f08c0fac7c20786c7b8f4f0321a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afae4c378515b89cc2b0a11c8cf1bcc50"><td class="memTemplParams" colspan="2">template&lt;typename... Args&gt; </td></tr>
<tr class="memitem:afae4c378515b89cc2b0a11c8cf1bcc50"><td class="memTemplItemLeft" align="right" valign="top">iterator&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00046.html#afae4c378515b89cc2b0a11c8cf1bcc50">emplace_back</a> (Args &amp;&amp;...args)</td></tr>
<tr class="memdesc:afae4c378515b89cc2b0a11c8cf1bcc50"><td class="mdescLeft">&#160;</td><td class="mdescRight">Push item, create item "in place" with provided arguments. <a href="#afae4c378515b89cc2b0a11c8cf1bcc50">More...</a><br/></td></tr>
<tr class="separator:afae4c378515b89cc2b0a11c8cf1bcc50"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3097cb46511504acfc9de7da5235f4a6"><td class="memItemLeft" align="right" valign="top">reference&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00046.html#a3097cb46511504acfc9de7da5235f4a6">operator[]</a> (size_type index)</td></tr>
<tr class="memdesc:a3097cb46511504acfc9de7da5235f4a6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get reference to element at given index. <a href="#a3097cb46511504acfc9de7da5235f4a6">More...</a><br/></td></tr>
<tr class="separator:a3097cb46511504acfc9de7da5235f4a6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abd6ca67f2f97fafca48395af2e693e73"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="abd6ca67f2f97fafca48395af2e693e73"></a>
const_reference&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00046.html#abd6ca67f2f97fafca48395af2e693e73">operator[]</a> (size_type index) const </td></tr>
<tr class="memdesc:abd6ca67f2f97fafca48395af2e693e73"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get const reference to element at given index. <br/></td></tr>
<tr class="separator:abd6ca67f2f97fafca48395af2e693e73"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a629a29eb21e528414b9d5c9becfe05cd"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a629a29eb21e528414b9d5c9becfe05cd"></a>
reference&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00046.html#a629a29eb21e528414b9d5c9becfe05cd">at</a> (size_type index)</td></tr>
<tr class="memdesc:a629a29eb21e528414b9d5c9becfe05cd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get reference to element at given index. Throws exceptions on errors. <br/></td></tr>
<tr class="separator:a629a29eb21e528414b9d5c9becfe05cd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae4dc6c1b55c0e0b73f0a8675ef2b60a4"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ae4dc6c1b55c0e0b73f0a8675ef2b60a4"></a>
const_reference&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00046.html#ae4dc6c1b55c0e0b73f0a8675ef2b60a4">at</a> (size_type index) const </td></tr>
<tr class="memdesc:ae4dc6c1b55c0e0b73f0a8675ef2b60a4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get const reference to element at given index. Throws exceptions on errors. <br/></td></tr>
<tr class="separator:ae4dc6c1b55c0e0b73f0a8675ef2b60a4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8201f65735edcc28aeec95b6e73d75b6"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a8201f65735edcc28aeec95b6e73d75b6"></a>
range_type&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00046.html#a8201f65735edcc28aeec95b6e73d75b6">range</a> (size_t grainsize=1)</td></tr>
<tr class="memdesc:a8201f65735edcc28aeec95b6e73d75b6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get range for iterating with parallel algorithms. <br/></td></tr>
<tr class="separator:a8201f65735edcc28aeec95b6e73d75b6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8fcc32ec9ccb48c3327a88fe288c7538"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a8fcc32ec9ccb48c3327a88fe288c7538"></a>
const_range_type&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00046.html#a8fcc32ec9ccb48c3327a88fe288c7538">range</a> (size_t grainsize=1) const </td></tr>
<tr class="memdesc:a8fcc32ec9ccb48c3327a88fe288c7538"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get const range for iterating with parallel algorithms. <br/></td></tr>
<tr class="separator:a8fcc32ec9ccb48c3327a88fe288c7538"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a803268c16e3688ff4681251947d257c7"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a803268c16e3688ff4681251947d257c7"></a>
size_type&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00046.html#a803268c16e3688ff4681251947d257c7">size</a> () const </td></tr>
<tr class="memdesc:a803268c16e3688ff4681251947d257c7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return size of vector. It may include elements under construction. <br/></td></tr>
<tr class="separator:a803268c16e3688ff4681251947d257c7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa3f6774107e65642f73c0dcc9a962fe7"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aa3f6774107e65642f73c0dcc9a962fe7"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00046.html#aa3f6774107e65642f73c0dcc9a962fe7">empty</a> () const </td></tr>
<tr class="memdesc:aa3f6774107e65642f73c0dcc9a962fe7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return false if vector is not empty or has elements under construction at least. <br/></td></tr>
<tr class="separator:aa3f6774107e65642f73c0dcc9a962fe7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a96c2ae9dfedc24d62554feb627df76c3"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a96c2ae9dfedc24d62554feb627df76c3"></a>
size_type&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00046.html#a96c2ae9dfedc24d62554feb627df76c3">capacity</a> () const </td></tr>
<tr class="memdesc:a96c2ae9dfedc24d62554feb627df76c3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Maximum size to which array can grow without allocating more memory. Concurrent allocations are not included in the value. <br/></td></tr>
<tr class="separator:a96c2ae9dfedc24d62554feb627df76c3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0b3284684328c58c0228c9a697ef3594"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00046.html#a0b3284684328c58c0228c9a697ef3594">reserve</a> (size_type n)</td></tr>
<tr class="memdesc:a0b3284684328c58c0228c9a697ef3594"><td class="mdescLeft">&#160;</td><td class="mdescRight">Allocate enough space to grow to size n without having to allocate more memory later. <a href="#a0b3284684328c58c0228c9a697ef3594">More...</a><br/></td></tr>
<tr class="separator:a0b3284684328c58c0228c9a697ef3594"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a65e53a98a1e1fdb515fdc2b84e2314e8"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a65e53a98a1e1fdb515fdc2b84e2314e8"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00046.html#a65e53a98a1e1fdb515fdc2b84e2314e8">resize</a> (size_type n)</td></tr>
<tr class="memdesc:a65e53a98a1e1fdb515fdc2b84e2314e8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Resize the vector. Not thread-safe. <br/></td></tr>
<tr class="separator:a65e53a98a1e1fdb515fdc2b84e2314e8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a941917a8a840ff08ce8810ca9476ff46"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a941917a8a840ff08ce8810ca9476ff46"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00046.html#a941917a8a840ff08ce8810ca9476ff46">resize</a> (size_type n, const_reference t)</td></tr>
<tr class="memdesc:a941917a8a840ff08ce8810ca9476ff46"><td class="mdescLeft">&#160;</td><td class="mdescRight">Resize the vector, copy t for new elements. Not thread-safe. <br/></td></tr>
<tr class="separator:a941917a8a840ff08ce8810ca9476ff46"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aba805b5225ad3399550f78ea15e51e93"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aba805b5225ad3399550f78ea15e51e93"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00046.html#aba805b5225ad3399550f78ea15e51e93">shrink_to_fit</a> ()</td></tr>
<tr class="memdesc:aba805b5225ad3399550f78ea15e51e93"><td class="mdescLeft">&#160;</td><td class="mdescRight">Optimize memory usage and fragmentation. <br/></td></tr>
<tr class="separator:aba805b5225ad3399550f78ea15e51e93"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0ec9c3ab3360e04bdaa5174956a3206d"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a0ec9c3ab3360e04bdaa5174956a3206d"></a>
size_type&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00046.html#a0ec9c3ab3360e04bdaa5174956a3206d">max_size</a> () const </td></tr>
<tr class="memdesc:a0ec9c3ab3360e04bdaa5174956a3206d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Upper bound on argument to reserve. <br/></td></tr>
<tr class="separator:a0ec9c3ab3360e04bdaa5174956a3206d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab55636c80368ad7d400f3200313fcf5f"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ab55636c80368ad7d400f3200313fcf5f"></a>
iterator&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00046.html#ab55636c80368ad7d400f3200313fcf5f">begin</a> ()</td></tr>
<tr class="memdesc:ab55636c80368ad7d400f3200313fcf5f"><td class="mdescLeft">&#160;</td><td class="mdescRight">start iterator <br/></td></tr>
<tr class="separator:ab55636c80368ad7d400f3200313fcf5f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aad2c07653375e4a5f89c33b375eda610"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aad2c07653375e4a5f89c33b375eda610"></a>
iterator&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00046.html#aad2c07653375e4a5f89c33b375eda610">end</a> ()</td></tr>
<tr class="memdesc:aad2c07653375e4a5f89c33b375eda610"><td class="mdescLeft">&#160;</td><td class="mdescRight">end iterator <br/></td></tr>
<tr class="separator:aad2c07653375e4a5f89c33b375eda610"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad3eb33d1b10a988a87cc708ceb08f3a9"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ad3eb33d1b10a988a87cc708ceb08f3a9"></a>
const_iterator&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00046.html#ad3eb33d1b10a988a87cc708ceb08f3a9">begin</a> () const </td></tr>
<tr class="memdesc:ad3eb33d1b10a988a87cc708ceb08f3a9"><td class="mdescLeft">&#160;</td><td class="mdescRight">start const iterator <br/></td></tr>
<tr class="separator:ad3eb33d1b10a988a87cc708ceb08f3a9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6a4ad0795a19d94df24595e748f0b193"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a6a4ad0795a19d94df24595e748f0b193"></a>
const_iterator&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00046.html#a6a4ad0795a19d94df24595e748f0b193">end</a> () const </td></tr>
<tr class="memdesc:a6a4ad0795a19d94df24595e748f0b193"><td class="mdescLeft">&#160;</td><td class="mdescRight">end const iterator <br/></td></tr>
<tr class="separator:a6a4ad0795a19d94df24595e748f0b193"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7a1c5441fa480c07ef37d9206b6260cc"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a7a1c5441fa480c07ef37d9206b6260cc"></a>
const_iterator&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00046.html#a7a1c5441fa480c07ef37d9206b6260cc">cbegin</a> () const </td></tr>
<tr class="memdesc:a7a1c5441fa480c07ef37d9206b6260cc"><td class="mdescLeft">&#160;</td><td class="mdescRight">start const iterator <br/></td></tr>
<tr class="separator:a7a1c5441fa480c07ef37d9206b6260cc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9ea80faf139feb54d6576c036e4ba898"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a9ea80faf139feb54d6576c036e4ba898"></a>
const_iterator&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00046.html#a9ea80faf139feb54d6576c036e4ba898">cend</a> () const </td></tr>
<tr class="memdesc:a9ea80faf139feb54d6576c036e4ba898"><td class="mdescLeft">&#160;</td><td class="mdescRight">end const iterator <br/></td></tr>
<tr class="separator:a9ea80faf139feb54d6576c036e4ba898"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9a2f8dce0adcbef8e29273c23723a78e"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a9a2f8dce0adcbef8e29273c23723a78e"></a>
reverse_iterator&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00046.html#a9a2f8dce0adcbef8e29273c23723a78e">rbegin</a> ()</td></tr>
<tr class="memdesc:a9a2f8dce0adcbef8e29273c23723a78e"><td class="mdescLeft">&#160;</td><td class="mdescRight">reverse start iterator <br/></td></tr>
<tr class="separator:a9a2f8dce0adcbef8e29273c23723a78e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a618f38279a370c18f73ea2c29ded9cb9"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a618f38279a370c18f73ea2c29ded9cb9"></a>
reverse_iterator&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00046.html#a618f38279a370c18f73ea2c29ded9cb9">rend</a> ()</td></tr>
<tr class="memdesc:a618f38279a370c18f73ea2c29ded9cb9"><td class="mdescLeft">&#160;</td><td class="mdescRight">reverse end iterator <br/></td></tr>
<tr class="separator:a618f38279a370c18f73ea2c29ded9cb9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a976b0bed19de9ab93f78c10184a4e38f"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a976b0bed19de9ab93f78c10184a4e38f"></a>
const_reverse_iterator&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00046.html#a976b0bed19de9ab93f78c10184a4e38f">rbegin</a> () const </td></tr>
<tr class="memdesc:a976b0bed19de9ab93f78c10184a4e38f"><td class="mdescLeft">&#160;</td><td class="mdescRight">reverse start const iterator <br/></td></tr>
<tr class="separator:a976b0bed19de9ab93f78c10184a4e38f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abdb98e17cb65d9c445d7fd1e662c2699"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="abdb98e17cb65d9c445d7fd1e662c2699"></a>
const_reverse_iterator&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00046.html#abdb98e17cb65d9c445d7fd1e662c2699">rend</a> () const </td></tr>
<tr class="memdesc:abdb98e17cb65d9c445d7fd1e662c2699"><td class="mdescLeft">&#160;</td><td class="mdescRight">reverse end const iterator <br/></td></tr>
<tr class="separator:abdb98e17cb65d9c445d7fd1e662c2699"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2627db4a7949522ea4727320b23a6348"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a2627db4a7949522ea4727320b23a6348"></a>
const_reverse_iterator&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00046.html#a2627db4a7949522ea4727320b23a6348">crbegin</a> () const </td></tr>
<tr class="memdesc:a2627db4a7949522ea4727320b23a6348"><td class="mdescLeft">&#160;</td><td class="mdescRight">reverse start const iterator <br/></td></tr>
<tr class="separator:a2627db4a7949522ea4727320b23a6348"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad097225c529dbb24cc0e13a444ab4752"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ad097225c529dbb24cc0e13a444ab4752"></a>
const_reverse_iterator&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00046.html#ad097225c529dbb24cc0e13a444ab4752">crend</a> () const </td></tr>
<tr class="memdesc:ad097225c529dbb24cc0e13a444ab4752"><td class="mdescLeft">&#160;</td><td class="mdescRight">reverse end const iterator <br/></td></tr>
<tr class="separator:ad097225c529dbb24cc0e13a444ab4752"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9bfc6d733cf543280b691ed8d7b7908a"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a9bfc6d733cf543280b691ed8d7b7908a"></a>
reference&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00046.html#a9bfc6d733cf543280b691ed8d7b7908a">front</a> ()</td></tr>
<tr class="memdesc:a9bfc6d733cf543280b691ed8d7b7908a"><td class="mdescLeft">&#160;</td><td class="mdescRight">the first item <br/></td></tr>
<tr class="separator:a9bfc6d733cf543280b691ed8d7b7908a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9067259572c2c41d014840d0f9d3cdce"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a9067259572c2c41d014840d0f9d3cdce"></a>
const_reference&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00046.html#a9067259572c2c41d014840d0f9d3cdce">front</a> () const </td></tr>
<tr class="memdesc:a9067259572c2c41d014840d0f9d3cdce"><td class="mdescLeft">&#160;</td><td class="mdescRight">the first item const <br/></td></tr>
<tr class="separator:a9067259572c2c41d014840d0f9d3cdce"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aaee3ddf1d05238a8a6887f6d824b76f8"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aaee3ddf1d05238a8a6887f6d824b76f8"></a>
reference&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00046.html#aaee3ddf1d05238a8a6887f6d824b76f8">back</a> ()</td></tr>
<tr class="memdesc:aaee3ddf1d05238a8a6887f6d824b76f8"><td class="mdescLeft">&#160;</td><td class="mdescRight">the last item <br/></td></tr>
<tr class="separator:aaee3ddf1d05238a8a6887f6d824b76f8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acf66eb1e82dbcb430d9926a23711c720"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="acf66eb1e82dbcb430d9926a23711c720"></a>
const_reference&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00046.html#acf66eb1e82dbcb430d9926a23711c720">back</a> () const </td></tr>
<tr class="memdesc:acf66eb1e82dbcb430d9926a23711c720"><td class="mdescLeft">&#160;</td><td class="mdescRight">the last item const <br/></td></tr>
<tr class="separator:acf66eb1e82dbcb430d9926a23711c720"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a88b62a9614d3f2b59c9c7c1a2143fb1e"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a88b62a9614d3f2b59c9c7c1a2143fb1e"></a>
allocator_type&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00046.html#a88b62a9614d3f2b59c9c7c1a2143fb1e">get_allocator</a> () const </td></tr>
<tr class="memdesc:a88b62a9614d3f2b59c9c7c1a2143fb1e"><td class="mdescLeft">&#160;</td><td class="mdescRight">return allocator object <br/></td></tr>
<tr class="separator:a88b62a9614d3f2b59c9c7c1a2143fb1e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a87355dce93d0882aa73333a35c9b367c"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a87355dce93d0882aa73333a35c9b367c"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00046.html#a87355dce93d0882aa73333a35c9b367c">assign</a> (size_type n, const_reference t)</td></tr>
<tr class="memdesc:a87355dce93d0882aa73333a35c9b367c"><td class="mdescLeft">&#160;</td><td class="mdescRight">assign n items by copying t item <br/></td></tr>
<tr class="separator:a87355dce93d0882aa73333a35c9b367c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7bb5399a8499f88cf859eab39f0ed9e0"><td class="memTemplParams" colspan="2"><a class="anchor" id="a7bb5399a8499f88cf859eab39f0ed9e0"></a>
template&lt;class I &gt; </td></tr>
<tr class="memitem:a7bb5399a8499f88cf859eab39f0ed9e0"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00046.html#a7bb5399a8499f88cf859eab39f0ed9e0">assign</a> (I first, I last)</td></tr>
<tr class="memdesc:a7bb5399a8499f88cf859eab39f0ed9e0"><td class="mdescLeft">&#160;</td><td class="mdescRight">assign range [first, last) <br/></td></tr>
<tr class="separator:a7bb5399a8499f88cf859eab39f0ed9e0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a584d6cda5794441b19d4f02bde399dff"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a584d6cda5794441b19d4f02bde399dff"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00046.html#a584d6cda5794441b19d4f02bde399dff">assign</a> (std::initializer_list&lt; T &gt; init_list)</td></tr>
<tr class="memdesc:a584d6cda5794441b19d4f02bde399dff"><td class="mdescLeft">&#160;</td><td class="mdescRight">assigns an initializer list <br/></td></tr>
<tr class="separator:a584d6cda5794441b19d4f02bde399dff"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8603bd57324fb6b60ba006884c95279d"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a8603bd57324fb6b60ba006884c95279d"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00046.html#a8603bd57324fb6b60ba006884c95279d">swap</a> (<a class="el" href="a00046.html">concurrent_vector</a> &amp;vector)</td></tr>
<tr class="memdesc:a8603bd57324fb6b60ba006884c95279d"><td class="mdescLeft">&#160;</td><td class="mdescRight">swap two instances <br/></td></tr>
<tr class="separator:a8603bd57324fb6b60ba006884c95279d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a526ba408fb3064ef846940d633b8f365"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00046.html#a526ba408fb3064ef846940d633b8f365">clear</a> ()</td></tr>
<tr class="memdesc:a526ba408fb3064ef846940d633b8f365"><td class="mdescLeft">&#160;</td><td class="mdescRight">Clear container while keeping memory allocated. <a href="#a526ba408fb3064ef846940d633b8f365">More...</a><br/></td></tr>
<tr class="separator:a526ba408fb3064ef846940d633b8f365"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab5bcaededc9a00e7aaecd6c262fd0b38"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ab5bcaededc9a00e7aaecd6c262fd0b38"></a>
&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00046.html#ab5bcaededc9a00e7aaecd6c262fd0b38">~concurrent_vector</a> ()</td></tr>
<tr class="memdesc:ab5bcaededc9a00e7aaecd6c262fd0b38"><td class="mdescLeft">&#160;</td><td class="mdescRight">Clear and destroy vector. <br/></td></tr>
<tr class="separator:ab5bcaededc9a00e7aaecd6c262fd0b38"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a675f1b62a651d350eb0d778a271e31e5"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a675f1b62a651d350eb0d778a271e31e5"></a>
const <br class="typebreak"/>
internal::concurrent_vector_base_v3 &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>internal_vector_base</b> () const </td></tr>
<tr class="separator:a675f1b62a651d350eb0d778a271e31e5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a96e2626d160361d8c6f4193ca0c7a4dd"><td class="memTemplParams" colspan="2"><a class="anchor" id="a96e2626d160361d8c6f4193ca0c7a4dd"></a>
template&lt;typename I &gt; </td></tr>
<tr class="memitem:a96e2626d160361d8c6f4193ca0c7a4dd"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><b>copy_range</b> (void *dst, const void *p_type_erased_iterator, size_type n)</td></tr>
<tr class="separator:a96e2626d160361d8c6f4193ca0c7a4dd"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="friends"></a>
Friends</h2></td></tr>
<tr class="memitem:a134b00c8dd9200b9e45fe81919c66b11"><td class="memTemplParams" colspan="2"><a class="anchor" id="a134b00c8dd9200b9e45fe81919c66b11"></a>
template&lt;typename C , typename U &gt; </td></tr>
<tr class="memitem:a134b00c8dd9200b9e45fe81919c66b11"><td class="memTemplItemLeft" align="right" valign="top">class&#160;</td><td class="memTemplItemRight" valign="bottom"><b>internal::vector_iterator</b></td></tr>
<tr class="separator:a134b00c8dd9200b9e45fe81919c66b11"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><h3>template&lt;typename T, class A = cache_aligned_allocator&lt;T&gt;&gt;<br/>
class tbb::concurrent_vector&lt; T, A &gt;</h3>
<p>Concurrent vector container. </p>
<pre class="fragment">concurrent_vector is a container having the following main properties:
- It provides random indexed access to its elements. The index of the first element is 0.
- It ensures safe concurrent growing its size (different threads can safely append new elements).
- Adding new elements does not invalidate existing iterators and does not change indices of existing items.
</pre><dl class="section user"><dt>Compatibility</dt><dd>The class meets all Container Requirements and Reversible Container Requirements from C++ Standard (See ISO/IEC 14882:2003(E), clause 23.1). But it doesn't meet Sequence Requirements due to absence of insert() and erase() methods.</dd></dl>
<dl class="section user"><dt>Exception Safety</dt><dd>Methods working with memory allocation and/or new elements construction can throw an exception if allocator fails to allocate memory or element's default constructor throws one. Concurrent vector's element of type T must conform to the following requirements:<ul>
<li>Throwing an exception is forbidden for destructor of T.</li>
<li>Default constructor of T must not throw an exception OR its non-virtual destructor must safely work when its object memory is zero-initialized.</li>
</ul>
Otherwise, the program's behavior is undefined. </dd></dl>
<dl class="section user"><dt></dt><dd>If an exception happens inside growth or assignment operation, an instance of the vector becomes invalid unless it is stated otherwise in the method documentation. Invalid state means:<ul>
<li>There are no guarantees that all items were initialized by a constructor. The rest of items is zero-filled, including item where exception happens.</li>
<li>An invalid vector instance cannot be repaired; it is unable to grow anymore.</li>
<li>Size and capacity reported by the vector are incorrect, and calculated as if the failed operation were successful.</li>
<li>Attempt to access not allocated elements using operator[] or iterators results in access violation or segmentation fault exception, and in case of using <a class="el" href="a00046.html#a629a29eb21e528414b9d5c9becfe05cd" title="Get reference to element at given index. Throws exceptions on errors. ">at()</a> method a C++ exception is thrown.</li>
</ul>
If a concurrent grow operation successfully completes, all the elements it has added to the vector will remain valid and accessible even if one of subsequent grow operations fails.</dd></dl>
<dl class="section user"><dt>Fragmentation</dt><dd>Unlike an STL vector, a <a class="el" href="a00046.html" title="Concurrent vector container. ">concurrent_vector</a> does not move existing elements if it needs to allocate more memory. The container is divided into a series of contiguous arrays of elements. The first reservation, growth, or assignment operation determines the size of the first array. Using small number of elements as initial size incurs fragmentation that may increase element access time. Internal layout can be optimized by method compact() that merges several smaller arrays into one solid.</dd></dl>
<dl class="section user"><dt>Changes since TBB 2.1</dt><dd><ul>
<li>Fixed guarantees of <a class="el" href="a00046.html#a803268c16e3688ff4681251947d257c7" title="Return size of vector. It may include elements under construction. ">concurrent_vector::size()</a> and <a class="el" href="a00046.html#ae9ef9895e88f9bf036b379035c18f035" title="Append minimal sequence of elements such that size()&gt;=n. ">grow_to_at_least()</a> methods to assure elements are allocated.</li>
<li>Methods <a class="el" href="a00046.html#aad2c07653375e4a5f89c33b375eda610" title="end iterator ">end()</a>/rbegin()/back() are partly thread-safe since they use <a class="el" href="a00046.html#a803268c16e3688ff4681251947d257c7" title="Return size of vector. It may include elements under construction. ">size()</a> to get the end of vector</li>
<li>Added <a class="el" href="a00046.html#a65e53a98a1e1fdb515fdc2b84e2314e8" title="Resize the vector. Not thread-safe. ">resize()</a> methods (not thread-safe)</li>
<li>Added cbegin/cend/crbegin/crend methods</li>
<li>Changed return type of methods grow* and push_back to iterator</li>
</ul>
</dd></dl>
<dl class="section user"><dt>Changes since TBB 2.0</dt><dd><ul>
<li>Implemented exception-safety guarantees</li>
<li>Added template argument for allocator</li>
<li>Added allocator argument in constructors</li>
<li>Faster index calculation</li>
<li>First growth call specifies a number of segments to be merged in the first allocation.</li>
<li>Fixed memory blow up for swarm of vector's instances of small size</li>
<li>Added <a class="el" href="a00046.html#aa11fc991cda82cf93789fce31b37a16c" title="Grow by &quot;delta&quot; elements using copying constructor. ">grow_by(size_type n, const_reference t)</a> growth using copying constructor to init new items.</li>
<li>Added STL-like constructors.</li>
<li>Added operators ==, &lt; and derivatives</li>
<li>Added <a class="el" href="a00046.html#a629a29eb21e528414b9d5c9becfe05cd" title="Get reference to element at given index. Throws exceptions on errors. ">at()</a> method, approved for using after an exception was thrown inside the vector</li>
<li>Added <a class="el" href="a00046.html#a88b62a9614d3f2b59c9c7c1a2143fb1e" title="return allocator object ">get_allocator()</a> method.</li>
<li>Added <a class="el" href="a00046.html#a87355dce93d0882aa73333a35c9b367c" title="assign n items by copying t item ">assign()</a> methods</li>
<li>Added compact() method to defragment first segments</li>
<li>Added <a class="el" href="a00046.html#a8603bd57324fb6b60ba006884c95279d" title="swap two instances ">swap()</a> method</li>
<li><a class="el" href="a00046.html#a8201f65735edcc28aeec95b6e73d75b6" title="Get range for iterating with parallel algorithms. ">range()</a> defaults on grainsize = 1 supporting auto grainsize algorithms. </li>
</ul>
</dd></dl>
</div><h2 class="groupheader">Member Function Documentation</h2>
<a class="anchor" id="a526ba408fb3064ef846940d633b8f365"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T, class A = cache_aligned_allocator&lt;T&gt;&gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void <a class="el" href="a00046.html">tbb::concurrent_vector</a>&lt; T, A &gt;::clear </td>
<td>(</td>
<td class="paramname">)</td><td></td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Clear container while keeping memory allocated. </p>
<p>To free up the memory, use in conjunction with method compact(). Not thread safe </p>
</div>
</div>
<a class="anchor" id="afae4c378515b89cc2b0a11c8cf1bcc50"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T, class A = cache_aligned_allocator&lt;T&gt;&gt; </div>
<div class="memtemplate">
template&lt;typename... Args&gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">iterator <a class="el" href="a00046.html">tbb::concurrent_vector</a>&lt; T, A &gt;::emplace_back </td>
<td>(</td>
<td class="paramtype">Args &amp;&amp;...&#160;</td>
<td class="paramname"><em>args</em>)</td><td></td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Push item, create item "in place" with provided arguments. </p>
<p>Returns iterator pointing to the new element. </p>
</div>
</div>
<a class="anchor" id="ab89c2db5358048debdc282ff995caffb"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T, class A = cache_aligned_allocator&lt;T&gt;&gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">iterator <a class="el" href="a00046.html">tbb::concurrent_vector</a>&lt; T, A &gt;::grow_by </td>
<td>(</td>
<td class="paramtype">size_type&#160;</td>
<td class="paramname"><em>delta</em>)</td><td></td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Grow by "delta" elements. </p>
<p>Returns iterator pointing to the first new element. </p>
</div>
</div>
<a class="anchor" id="aa11fc991cda82cf93789fce31b37a16c"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T, class A = cache_aligned_allocator&lt;T&gt;&gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">iterator <a class="el" href="a00046.html">tbb::concurrent_vector</a>&lt; T, A &gt;::grow_by </td>
<td>(</td>
<td class="paramtype">size_type&#160;</td>
<td class="paramname"><em>delta</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const_reference&#160;</td>
<td class="paramname"><em>t</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Grow by "delta" elements using copying constructor. </p>
<p>Returns iterator pointing to the first new element. </p>
</div>
</div>
<a class="anchor" id="acfd74483ff523213b78f44fb914c8eb4"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T, class A = cache_aligned_allocator&lt;T&gt;&gt; </div>
<div class="memtemplate">
template&lt;typename I &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">iterator <a class="el" href="a00046.html">tbb::concurrent_vector</a>&lt; T, A &gt;::grow_by </td>
<td>(</td>
<td class="paramtype">I&#160;</td>
<td class="paramname"><em>first</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">I&#160;</td>
<td class="paramname"><em>last</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns iterator pointing to the first new element. </p>
</div>
</div>
<a class="anchor" id="a95f57f1529e0ebd1ca6bd2d60003fcab"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T, class A = cache_aligned_allocator&lt;T&gt;&gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">iterator <a class="el" href="a00046.html">tbb::concurrent_vector</a>&lt; T, A &gt;::grow_by </td>
<td>(</td>
<td class="paramtype">std::initializer_list&lt; T &gt;&#160;</td>
<td class="paramname"><em>init_list</em>)</td><td></td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns iterator pointing to the first new element. </p>
</div>
</div>
<a class="anchor" id="ae9ef9895e88f9bf036b379035c18f035"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T, class A = cache_aligned_allocator&lt;T&gt;&gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">iterator <a class="el" href="a00046.html">tbb::concurrent_vector</a>&lt; T, A &gt;::grow_to_at_least </td>
<td>(</td>
<td class="paramtype">size_type&#160;</td>
<td class="paramname"><em>n</em>)</td><td></td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Append minimal sequence of elements such that <a class="el" href="a00046.html#a803268c16e3688ff4681251947d257c7" title="Return size of vector. It may include elements under construction. ">size()</a>&gt;=n. </p>
<p>The new elements are default constructed. Blocks until all elements in range [0..n) are allocated. May return while other elements are being constructed by other threads. Returns iterator that points to beginning of appended sequence. If no elements were appended, returns iterator pointing to nth element. </p>
</div>
</div>
<a class="anchor" id="a422d9689ed72a5ef2b6b72f28e4143a2"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T, class A = cache_aligned_allocator&lt;T&gt;&gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">iterator <a class="el" href="a00046.html">tbb::concurrent_vector</a>&lt; T, A &gt;::grow_to_at_least </td>
<td>(</td>
<td class="paramtype">size_type&#160;</td>
<td class="paramname"><em>n</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const_reference&#160;</td>
<td class="paramname"><em>t</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Analogous to <a class="el" href="a00046.html#ae9ef9895e88f9bf036b379035c18f035" title="Append minimal sequence of elements such that size()&gt;=n. ">grow_to_at_least( size_type n )</a> with exception that the new elements are initialized by copying of t instead of default construction. </p>
</div>
</div>
<a class="anchor" id="a3097cb46511504acfc9de7da5235f4a6"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T, class A = cache_aligned_allocator&lt;T&gt;&gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">reference <a class="el" href="a00046.html">tbb::concurrent_vector</a>&lt; T, A &gt;::operator[] </td>
<td>(</td>
<td class="paramtype">size_type&#160;</td>
<td class="paramname"><em>index</em>)</td><td></td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Get reference to element at given index. </p>
<p>This method is thread-safe for concurrent reads, and also while growing the vector, as long as the calling thread has checked that index &lt; <a class="el" href="a00046.html#a803268c16e3688ff4681251947d257c7" title="Return size of vector. It may include elements under construction. ">size()</a>. </p>
</div>
</div>
<a class="anchor" id="ad68d1675fedef232bfae35f200ba007d"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T, class A = cache_aligned_allocator&lt;T&gt;&gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">iterator <a class="el" href="a00046.html">tbb::concurrent_vector</a>&lt; T, A &gt;::push_back </td>
<td>(</td>
<td class="paramtype">const_reference&#160;</td>
<td class="paramname"><em>item</em>)</td><td></td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Push item. </p>
<p>Returns iterator pointing to the new element. </p>
</div>
</div>
<a class="anchor" id="ac29a9f08c0fac7c20786c7b8f4f0321a"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T, class A = cache_aligned_allocator&lt;T&gt;&gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">iterator <a class="el" href="a00046.html">tbb::concurrent_vector</a>&lt; T, A &gt;::push_back </td>
<td>(</td>
<td class="paramtype">T &amp;&amp;&#160;</td>
<td class="paramname"><em>item</em>)</td><td></td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Push item, move-aware. </p>
<p>Returns iterator pointing to the new element. </p>
</div>
</div>
<a class="anchor" id="a0b3284684328c58c0228c9a697ef3594"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T, class A = cache_aligned_allocator&lt;T&gt;&gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void <a class="el" href="a00046.html">tbb::concurrent_vector</a>&lt; T, A &gt;::reserve </td>
<td>(</td>
<td class="paramtype">size_type&#160;</td>
<td class="paramname"><em>n</em>)</td><td></td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Allocate enough space to grow to size n without having to allocate more memory later. </p>
<p>Like most of the methods provided for STL compatibility, this method is <em>not</em> thread safe. The capacity afterwards may be bigger than the requested reservation. </p>
</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
<li>concurrent_unordered_map.h</li>
<li>concurrent_vector.h</li>
</ul>
</div><!-- contents -->
<hr>
Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.1 KiB

After

Width:  |  Height:  |  Size: 1.0 KiB

+76 -92
View File
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.4"/>
<title>tbb::interface5::concurrent_unordered_multiset&lt; Key, Hasher, Key_equality, Allocator &gt; Class Template Reference</title>
<title>tbb::interface5::concurrent_hash_map&lt; Key, T, HashCompare, A &gt;::const_accessor Class Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -33,118 +33,102 @@
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="a00237.html">tbb</a></li><li class="navelem"><b>interface5</b></li><li class="navelem"><a class="el" href="a00047.html">concurrent_unordered_multiset</a></li> </ul>
<li class="navelem"><a class="el" href="a00234.html">tbb</a></li><li class="navelem"><b>interface5</b></li><li class="navelem"><a class="el" href="a00036.html">concurrent_hash_map</a></li><li class="navelem"><a class="el" href="a00047.html">const_accessor</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#pub-types">Public Types</a> &#124;
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="a00374.html">List of all members</a> </div>
<a href="#pro-methods">Protected Member Functions</a> &#124;
<a href="#pro-attribs">Protected Attributes</a> &#124;
<a href="#friends">Friends</a> &#124;
<a href="a00361.html">List of all members</a> </div>
<div class="headertitle">
<div class="title">tbb::interface5::concurrent_unordered_multiset&lt; Key, Hasher, Key_equality, Allocator &gt; Class Template Reference</div> </div>
<div class="title">tbb::interface5::concurrent_hash_map&lt; Key, T, HashCompare, A &gt;::const_accessor Class Reference</div> </div>
</div><!--header-->
<div class="contents">
<p>Combines data access, locking, and garbage collection.
<a href="a00047.html#details">More...</a></p>
<p><code>#include &lt;concurrent_hash_map.h&gt;</code></p>
<div class="dynheader">
Inheritance diagram for tbb::interface5::concurrent_unordered_multiset&lt; Key, Hasher, Key_equality, Allocator &gt;:</div>
Inheritance diagram for tbb::interface5::concurrent_hash_map&lt; Key, T, HashCompare, A &gt;::const_accessor:</div>
<div class="dyncontent">
<div class="center">
<img src="a00047.png" usemap="#tbb::interface5::concurrent_unordered_multiset&lt; Key, Hasher, Key_equality, Allocator &gt;_map" alt=""/>
<map id="tbb::interface5::concurrent_unordered_multiset&lt; Key, Hasher, Key_equality, Allocator &gt;_map" name="tbb::interface5::concurrent_unordered_multiset&lt; Key, Hasher, Key_equality, Allocator &gt;_map">
<img src="a00047.png" usemap="#tbb::interface5::concurrent_hash_map&lt; Key, T, HashCompare, A &gt;::const_accessor_map" alt=""/>
<map id="tbb::interface5::concurrent_hash_map&lt; Key, T, HashCompare, A &gt;::const_accessor_map" name="tbb::interface5::concurrent_hash_map&lt; Key, T, HashCompare, A &gt;::const_accessor_map">
<area href="a00009.html" title="Allows write access to elements and combines data access, locking, and garbage collection. " alt="tbb::interface5::concurrent_hash_map&lt; Key, T, HashCompare, A &gt;::accessor" shape="rect" coords="0,112,488,136"/>
</map>
</div></div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-types"></a>
Public Types</h2></td></tr>
<tr class="memitem:af1eb846a05a4e2d30a3ff7f66acad7c7"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="af1eb846a05a4e2d30a3ff7f66acad7c7"></a>
typedef Key&#160;</td><td class="memItemRight" valign="bottom"><b>key_type</b></td></tr>
<tr class="separator:af1eb846a05a4e2d30a3ff7f66acad7c7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a559df68fc84a16b494a9638085c7379b"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a559df68fc84a16b494a9638085c7379b"></a>
typedef base_type::value_type&#160;</td><td class="memItemRight" valign="bottom"><b>value_type</b></td></tr>
<tr class="separator:a559df68fc84a16b494a9638085c7379b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ada492d245619aac2683b57c9f52106c7"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ada492d245619aac2683b57c9f52106c7"></a>
typedef Key&#160;</td><td class="memItemRight" valign="bottom"><b>mapped_type</b></td></tr>
<tr class="separator:ada492d245619aac2683b57c9f52106c7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab6b0ed8e5a20690cc06644520d0e5ef3"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ab6b0ed8e5a20690cc06644520d0e5ef3"></a>
typedef Hasher&#160;</td><td class="memItemRight" valign="bottom"><b>hasher</b></td></tr>
<tr class="separator:ab6b0ed8e5a20690cc06644520d0e5ef3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa3d8b36c79741c229cf9a5c9d93516b7"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aa3d8b36c79741c229cf9a5c9d93516b7"></a>
typedef Key_equality&#160;</td><td class="memItemRight" valign="bottom"><b>key_equal</b></td></tr>
<tr class="separator:aa3d8b36c79741c229cf9a5c9d93516b7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8ec7f32ab51ebbfdb06d57ab8b17044b"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a8ec7f32ab51ebbfdb06d57ab8b17044b"></a>
typedef hash_compare&#160;</td><td class="memItemRight" valign="bottom"><b>key_compare</b></td></tr>
<tr class="separator:a8ec7f32ab51ebbfdb06d57ab8b17044b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1f89a49912b58d42ddbb3f344b6304ca"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a1f89a49912b58d42ddbb3f344b6304ca"></a>
typedef base_type::allocator_type&#160;</td><td class="memItemRight" valign="bottom"><b>allocator_type</b></td></tr>
<tr class="separator:a1f89a49912b58d42ddbb3f344b6304ca"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad4ff41efe0ead5030b011c999dd748de"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ad4ff41efe0ead5030b011c999dd748de"></a>
typedef base_type::pointer&#160;</td><td class="memItemRight" valign="bottom"><b>pointer</b></td></tr>
<tr class="separator:ad4ff41efe0ead5030b011c999dd748de"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab4327ff04c8a5dc7653b47763263b9f9"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ab4327ff04c8a5dc7653b47763263b9f9"></a>
typedef base_type::const_pointer&#160;</td><td class="memItemRight" valign="bottom"><b>const_pointer</b></td></tr>
<tr class="separator:ab4327ff04c8a5dc7653b47763263b9f9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aef5518b17cd9da59b9e6d9b9374f5245"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aef5518b17cd9da59b9e6d9b9374f5245"></a>
typedef base_type::reference&#160;</td><td class="memItemRight" valign="bottom"><b>reference</b></td></tr>
<tr class="separator:aef5518b17cd9da59b9e6d9b9374f5245"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7084b7dd3f9b1df0ffdd520529e87f3c"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a7084b7dd3f9b1df0ffdd520529e87f3c"></a>
typedef base_type::const_reference&#160;</td><td class="memItemRight" valign="bottom"><b>const_reference</b></td></tr>
<tr class="separator:a7084b7dd3f9b1df0ffdd520529e87f3c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad04d6c35ee079e8a49d38744c8f305b3"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ad04d6c35ee079e8a49d38744c8f305b3"></a>
typedef base_type::size_type&#160;</td><td class="memItemRight" valign="bottom"><b>size_type</b></td></tr>
<tr class="separator:ad04d6c35ee079e8a49d38744c8f305b3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6e9babf06dc79948bb787793a7cb0d37"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a6e9babf06dc79948bb787793a7cb0d37"></a>
typedef base_type::difference_type&#160;</td><td class="memItemRight" valign="bottom"><b>difference_type</b></td></tr>
<tr class="separator:a6e9babf06dc79948bb787793a7cb0d37"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a229ae1c0786ea9509c66256fcf1c8f47"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a229ae1c0786ea9509c66256fcf1c8f47"></a>
typedef base_type::iterator&#160;</td><td class="memItemRight" valign="bottom"><b>iterator</b></td></tr>
<tr class="separator:a229ae1c0786ea9509c66256fcf1c8f47"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a69ed6ae85fe54e53b2804b61a6f30fa2"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a69ed6ae85fe54e53b2804b61a6f30fa2"></a>
typedef base_type::const_iterator&#160;</td><td class="memItemRight" valign="bottom"><b>const_iterator</b></td></tr>
<tr class="separator:a69ed6ae85fe54e53b2804b61a6f30fa2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a532cdc67028e27231846b41bfd9a0e26"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a532cdc67028e27231846b41bfd9a0e26"></a>
typedef base_type::iterator&#160;</td><td class="memItemRight" valign="bottom"><b>local_iterator</b></td></tr>
<tr class="separator:a532cdc67028e27231846b41bfd9a0e26"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af4f42202dd9f2bc114c9411928431217"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="af4f42202dd9f2bc114c9411928431217"></a>
typedef base_type::const_iterator&#160;</td><td class="memItemRight" valign="bottom"><b>const_local_iterator</b></td></tr>
<tr class="separator:af4f42202dd9f2bc114c9411928431217"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa8ca5aef4ee14b7eddb64767b8cd5fda"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aa8ca5aef4ee14b7eddb64767b8cd5fda"></a>
typedef const <br class="typebreak"/>
concurrent_hash_map::value_type&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00047.html#aa8ca5aef4ee14b7eddb64767b8cd5fda">value_type</a></td></tr>
<tr class="memdesc:aa8ca5aef4ee14b7eddb64767b8cd5fda"><td class="mdescLeft">&#160;</td><td class="mdescRight">Type of value. <br/></td></tr>
<tr class="separator:aa8ca5aef4ee14b7eddb64767b8cd5fda"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:afa7c1f095ac1f56c7811811aabe6b77c"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="afa7c1f095ac1f56c7811811aabe6b77c"></a>
&#160;</td><td class="memItemRight" valign="bottom"><b>concurrent_unordered_multiset</b> (size_type n_of_buckets=base_type::initial_bucket_number, const hasher &amp;_Hasher=hasher(), const key_equal &amp;_Key_equality=key_equal(), const allocator_type &amp;a=allocator_type())</td></tr>
<tr class="separator:afa7c1f095ac1f56c7811811aabe6b77c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adf8c095a7be6913dd96e22a6ce9af187"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="adf8c095a7be6913dd96e22a6ce9af187"></a>
&#160;</td><td class="memItemRight" valign="bottom"><b>concurrent_unordered_multiset</b> (const Allocator &amp;a)</td></tr>
<tr class="separator:adf8c095a7be6913dd96e22a6ce9af187"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2eede1ccad9975aac7acbffbd991e26c"><td class="memTemplParams" colspan="2"><a class="anchor" id="a2eede1ccad9975aac7acbffbd991e26c"></a>
template&lt;typename Iterator &gt; </td></tr>
<tr class="memitem:a2eede1ccad9975aac7acbffbd991e26c"><td class="memTemplItemLeft" align="right" valign="top">&#160;</td><td class="memTemplItemRight" valign="bottom"><b>concurrent_unordered_multiset</b> (Iterator first, Iterator last, size_type n_of_buckets=base_type::initial_bucket_number, const hasher &amp;_Hasher=hasher(), const key_equal &amp;_Key_equality=key_equal(), const allocator_type &amp;a=allocator_type())</td></tr>
<tr class="separator:a2eede1ccad9975aac7acbffbd991e26c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a15631f048043195863c66bad6533bccb"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a15631f048043195863c66bad6533bccb"></a>
&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00047.html#a15631f048043195863c66bad6533bccb">concurrent_unordered_multiset</a> (std::initializer_list&lt; value_type &gt; il, size_type n_of_buckets=base_type::initial_bucket_number, const hasher &amp;a_hasher=hasher(), const key_equal &amp;a_keyeq=key_equal(), const allocator_type &amp;a=allocator_type())</td></tr>
<tr class="memdesc:a15631f048043195863c66bad6533bccb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructor from initializer_list. <br/></td></tr>
<tr class="separator:a15631f048043195863c66bad6533bccb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3110fb1a6f8e2a3071d2acbe4b7b154b"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a3110fb1a6f8e2a3071d2acbe4b7b154b"></a>
&#160;</td><td class="memItemRight" valign="bottom"><b>concurrent_unordered_multiset</b> (const <a class="el" href="a00047.html">concurrent_unordered_multiset</a> &amp;table)</td></tr>
<tr class="separator:a3110fb1a6f8e2a3071d2acbe4b7b154b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac1fb116ee3fdf6c6c810fe21eb01e209"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ac1fb116ee3fdf6c6c810fe21eb01e209"></a>
<a class="el" href="a00047.html">concurrent_unordered_multiset</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>operator=</b> (const <a class="el" href="a00047.html">concurrent_unordered_multiset</a> &amp;table)</td></tr>
<tr class="separator:ac1fb116ee3fdf6c6c810fe21eb01e209"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aeb435d8d31e95357c2f59656ec96dbbb"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aeb435d8d31e95357c2f59656ec96dbbb"></a>
&#160;</td><td class="memItemRight" valign="bottom"><b>concurrent_unordered_multiset</b> (<a class="el" href="a00047.html">concurrent_unordered_multiset</a> &amp;&amp;table)</td></tr>
<tr class="separator:aeb435d8d31e95357c2f59656ec96dbbb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab6c980c4bf29824a52610d94e6597b28"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ab6c980c4bf29824a52610d94e6597b28"></a>
<a class="el" href="a00047.html">concurrent_unordered_multiset</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>operator=</b> (<a class="el" href="a00047.html">concurrent_unordered_multiset</a> &amp;&amp;table)</td></tr>
<tr class="separator:ab6c980c4bf29824a52610d94e6597b28"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aaa0a295004627bb5473b4371c6e20c80"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aaa0a295004627bb5473b4371c6e20c80"></a>
&#160;</td><td class="memItemRight" valign="bottom"><b>concurrent_unordered_multiset</b> (<a class="el" href="a00047.html">concurrent_unordered_multiset</a> &amp;&amp;table, const Allocator &amp;a)</td></tr>
<tr class="separator:aaa0a295004627bb5473b4371c6e20c80"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a229089da66522fd4f3d77e9f57e19fbb"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a229089da66522fd4f3d77e9f57e19fbb"></a>
&#160;</td><td class="memItemRight" valign="bottom"><b>concurrent_unordered_multiset</b> (const <a class="el" href="a00047.html">concurrent_unordered_multiset</a> &amp;table, const Allocator &amp;a)</td></tr>
<tr class="separator:a229089da66522fd4f3d77e9f57e19fbb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6299b523d2ae8e2613f1bc160ca99b85"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a6299b523d2ae8e2613f1bc160ca99b85"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00047.html#a6299b523d2ae8e2613f1bc160ca99b85">empty</a> () const </td></tr>
<tr class="memdesc:a6299b523d2ae8e2613f1bc160ca99b85"><td class="mdescLeft">&#160;</td><td class="mdescRight">True if result is empty. <br/></td></tr>
<tr class="separator:a6299b523d2ae8e2613f1bc160ca99b85"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a18390cb369369d72bdf7c867755b5190"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a18390cb369369d72bdf7c867755b5190"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00047.html#a18390cb369369d72bdf7c867755b5190">release</a> ()</td></tr>
<tr class="memdesc:a18390cb369369d72bdf7c867755b5190"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set to null. <br/></td></tr>
<tr class="separator:a18390cb369369d72bdf7c867755b5190"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8adf04e33e7c8c876ba849f26807713a"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a8adf04e33e7c8c876ba849f26807713a"></a>
const_reference&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00047.html#a8adf04e33e7c8c876ba849f26807713a">operator*</a> () const </td></tr>
<tr class="memdesc:a8adf04e33e7c8c876ba849f26807713a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return reference to associated value in hash table. <br/></td></tr>
<tr class="separator:a8adf04e33e7c8c876ba849f26807713a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a28fa9b9e6c35d7e80217e69a7afe1ee5"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a28fa9b9e6c35d7e80217e69a7afe1ee5"></a>
const_pointer&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00047.html#a28fa9b9e6c35d7e80217e69a7afe1ee5">operator-&gt;</a> () const </td></tr>
<tr class="memdesc:a28fa9b9e6c35d7e80217e69a7afe1ee5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return pointer to associated value in hash table. <br/></td></tr>
<tr class="separator:a28fa9b9e6c35d7e80217e69a7afe1ee5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7b26d22d228cf0d8678c9b346c63752c"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a7b26d22d228cf0d8678c9b346c63752c"></a>
&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00047.html#a7b26d22d228cf0d8678c9b346c63752c">const_accessor</a> ()</td></tr>
<tr class="memdesc:a7b26d22d228cf0d8678c9b346c63752c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create empty result. <br/></td></tr>
<tr class="separator:a7b26d22d228cf0d8678c9b346c63752c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afbc0c85a146c912b9a0f94a7695957c7"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="afbc0c85a146c912b9a0f94a7695957c7"></a>
&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00047.html#afbc0c85a146c912b9a0f94a7695957c7">~const_accessor</a> ()</td></tr>
<tr class="memdesc:afbc0c85a146c912b9a0f94a7695957c7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Destroy result after releasing the underlying reference. <br/></td></tr>
<tr class="separator:afbc0c85a146c912b9a0f94a7695957c7"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-methods"></a>
Protected Member Functions</h2></td></tr>
<tr class="memitem:a05b74d408d8cd7773f7b5edfef97da1b"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a05b74d408d8cd7773f7b5edfef97da1b"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><b>is_writer</b> ()</td></tr>
<tr class="separator:a05b74d408d8cd7773f7b5edfef97da1b"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-attribs"></a>
Protected Attributes</h2></td></tr>
<tr class="memitem:ac9b96f45483ddbff95a95e8e666a8f28"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ac9b96f45483ddbff95a95e8e666a8f28"></a>
<a class="el" href="a00083.html">node</a> *&#160;</td><td class="memItemRight" valign="bottom"><b>my_node</b></td></tr>
<tr class="separator:ac9b96f45483ddbff95a95e8e666a8f28"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5034084f595666b47734f99a6eaefa9f"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a5034084f595666b47734f99a6eaefa9f"></a>
hashcode_t&#160;</td><td class="memItemRight" valign="bottom"><b>my_hash</b></td></tr>
<tr class="separator:a5034084f595666b47734f99a6eaefa9f"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="friends"></a>
Friends</h2></td></tr>
<tr class="memitem:a9a30829231c2a2f13cb12430992a0701"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a9a30829231c2a2f13cb12430992a0701"></a>
class&#160;</td><td class="memItemRight" valign="bottom"><b>concurrent_hash_map&lt; Key, T, HashCompare, Allocator &gt;</b></td></tr>
<tr class="separator:a9a30829231c2a2f13cb12430992a0701"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab1dfccf6cc719ff15006a2b05cf70dd7"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ab1dfccf6cc719ff15006a2b05cf70dd7"></a>
class&#160;</td><td class="memItemRight" valign="bottom"><b>accessor</b></td></tr>
<tr class="separator:ab1dfccf6cc719ff15006a2b05cf70dd7"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<hr/>The documentation for this class was generated from the following file:<ul>
<li>concurrent_unordered_set.h</li>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><h3>template&lt;typename Key, typename T, typename HashCompare = tbb_hash_compare&lt;Key&gt;, typename A = tbb_allocator&lt;std::pair&lt;Key, T&gt; &gt;&gt;<br/>
class tbb::interface5::concurrent_hash_map&lt; Key, T, HashCompare, A &gt;::const_accessor</h3>
<p>Combines data access, locking, and garbage collection. </p>
</div><hr/>The documentation for this class was generated from the following file:<ul>
<li>concurrent_hash_map.h</li>
</ul>
</div><!-- contents -->
<hr>
Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.1 KiB

After

Width:  |  Height:  |  Size: 1.8 KiB

+12 -107
View File
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.4"/>
<title>tbb::interface5::concurrent_unordered_set&lt; Key, Hasher, Key_equality, Allocator &gt; Class Template Reference</title>
<title>tbb::flow::interface9::continue_msg Class Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -33,118 +33,23 @@
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="a00237.html">tbb</a></li><li class="navelem"><b>interface5</b></li><li class="navelem"><a class="el" href="a00048.html">concurrent_unordered_set</a></li> </ul>
<li class="navelem"><a class="el" href="a00234.html">tbb</a></li><li class="navelem"><b>flow</b></li><li class="navelem"><b>interface9</b></li><li class="navelem"><a class="el" href="a00048.html">continue_msg</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#pub-types">Public Types</a> &#124;
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="a00373.html">List of all members</a> </div>
<div class="headertitle">
<div class="title">tbb::interface5::concurrent_unordered_set&lt; Key, Hasher, Key_equality, Allocator &gt; Class Template Reference</div> </div>
<div class="title">tbb::flow::interface9::continue_msg Class Reference</div> </div>
</div><!--header-->
<div class="contents">
<div class="dynheader">
Inheritance diagram for tbb::interface5::concurrent_unordered_set&lt; Key, Hasher, Key_equality, Allocator &gt;:</div>
<div class="dyncontent">
<div class="center">
<img src="a00048.png" usemap="#tbb::interface5::concurrent_unordered_set&lt; Key, Hasher, Key_equality, Allocator &gt;_map" alt=""/>
<map id="tbb::interface5::concurrent_unordered_set&lt; Key, Hasher, Key_equality, Allocator &gt;_map" name="tbb::interface5::concurrent_unordered_set&lt; Key, Hasher, Key_equality, Allocator &gt;_map">
</map>
</div></div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-types"></a>
Public Types</h2></td></tr>
<tr class="memitem:afad91155e1803ee686e5f42637594e7b"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="afad91155e1803ee686e5f42637594e7b"></a>
typedef Key&#160;</td><td class="memItemRight" valign="bottom"><b>key_type</b></td></tr>
<tr class="separator:afad91155e1803ee686e5f42637594e7b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a461fe414bf3ae73e7cc57e851ff592e4"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a461fe414bf3ae73e7cc57e851ff592e4"></a>
typedef base_type::value_type&#160;</td><td class="memItemRight" valign="bottom"><b>value_type</b></td></tr>
<tr class="separator:a461fe414bf3ae73e7cc57e851ff592e4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3a64703b55d07509d5c88810c2342ba5"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a3a64703b55d07509d5c88810c2342ba5"></a>
typedef Key&#160;</td><td class="memItemRight" valign="bottom"><b>mapped_type</b></td></tr>
<tr class="separator:a3a64703b55d07509d5c88810c2342ba5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6952de8a7ff93025c1065bb3e729da72"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a6952de8a7ff93025c1065bb3e729da72"></a>
typedef Hasher&#160;</td><td class="memItemRight" valign="bottom"><b>hasher</b></td></tr>
<tr class="separator:a6952de8a7ff93025c1065bb3e729da72"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a376a7355aa091fff6a30689141407acd"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a376a7355aa091fff6a30689141407acd"></a>
typedef Key_equality&#160;</td><td class="memItemRight" valign="bottom"><b>key_equal</b></td></tr>
<tr class="separator:a376a7355aa091fff6a30689141407acd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acc450473249e39658c46596d8252eef0"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="acc450473249e39658c46596d8252eef0"></a>
typedef hash_compare&#160;</td><td class="memItemRight" valign="bottom"><b>key_compare</b></td></tr>
<tr class="separator:acc450473249e39658c46596d8252eef0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2010e490e8bfb13d9b969ec2fd5e4de4"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a2010e490e8bfb13d9b969ec2fd5e4de4"></a>
typedef base_type::allocator_type&#160;</td><td class="memItemRight" valign="bottom"><b>allocator_type</b></td></tr>
<tr class="separator:a2010e490e8bfb13d9b969ec2fd5e4de4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5a8c52d4a2b57b9b4b5d889e96d88f44"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a5a8c52d4a2b57b9b4b5d889e96d88f44"></a>
typedef base_type::pointer&#160;</td><td class="memItemRight" valign="bottom"><b>pointer</b></td></tr>
<tr class="separator:a5a8c52d4a2b57b9b4b5d889e96d88f44"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a281276279a33ef1c5dfba5c196118ae7"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a281276279a33ef1c5dfba5c196118ae7"></a>
typedef base_type::const_pointer&#160;</td><td class="memItemRight" valign="bottom"><b>const_pointer</b></td></tr>
<tr class="separator:a281276279a33ef1c5dfba5c196118ae7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aec3d473d0fa601d51f13efe605cd9862"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aec3d473d0fa601d51f13efe605cd9862"></a>
typedef base_type::reference&#160;</td><td class="memItemRight" valign="bottom"><b>reference</b></td></tr>
<tr class="separator:aec3d473d0fa601d51f13efe605cd9862"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab7da53912d0deffca91618b73ed4995f"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ab7da53912d0deffca91618b73ed4995f"></a>
typedef base_type::const_reference&#160;</td><td class="memItemRight" valign="bottom"><b>const_reference</b></td></tr>
<tr class="separator:ab7da53912d0deffca91618b73ed4995f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5808a50995fc228f114c3c93aeddf331"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a5808a50995fc228f114c3c93aeddf331"></a>
typedef base_type::size_type&#160;</td><td class="memItemRight" valign="bottom"><b>size_type</b></td></tr>
<tr class="separator:a5808a50995fc228f114c3c93aeddf331"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7aaed1937820a90cb657a824e1391c1f"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a7aaed1937820a90cb657a824e1391c1f"></a>
typedef base_type::difference_type&#160;</td><td class="memItemRight" valign="bottom"><b>difference_type</b></td></tr>
<tr class="separator:a7aaed1937820a90cb657a824e1391c1f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abb76557f1755f96dc2e78728cb231e57"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="abb76557f1755f96dc2e78728cb231e57"></a>
typedef base_type::iterator&#160;</td><td class="memItemRight" valign="bottom"><b>iterator</b></td></tr>
<tr class="separator:abb76557f1755f96dc2e78728cb231e57"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a983d10264bc785a59b11dc94001e0042"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a983d10264bc785a59b11dc94001e0042"></a>
typedef base_type::const_iterator&#160;</td><td class="memItemRight" valign="bottom"><b>const_iterator</b></td></tr>
<tr class="separator:a983d10264bc785a59b11dc94001e0042"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acb12b4b1df9a7108a5193b0d3bbfc677"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="acb12b4b1df9a7108a5193b0d3bbfc677"></a>
typedef base_type::iterator&#160;</td><td class="memItemRight" valign="bottom"><b>local_iterator</b></td></tr>
<tr class="separator:acb12b4b1df9a7108a5193b0d3bbfc677"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af111bc738ee2a1b4b1cf2967a1252322"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="af111bc738ee2a1b4b1cf2967a1252322"></a>
typedef base_type::const_iterator&#160;</td><td class="memItemRight" valign="bottom"><b>const_local_iterator</b></td></tr>
<tr class="separator:af111bc738ee2a1b4b1cf2967a1252322"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:aad5e3bd7fa156e5d8aa81a8ff560d84e"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aad5e3bd7fa156e5d8aa81a8ff560d84e"></a>
&#160;</td><td class="memItemRight" valign="bottom"><b>concurrent_unordered_set</b> (size_type n_of_buckets=base_type::initial_bucket_number, const hasher &amp;a_hasher=hasher(), const key_equal &amp;a_keyeq=key_equal(), const allocator_type &amp;a=allocator_type())</td></tr>
<tr class="separator:aad5e3bd7fa156e5d8aa81a8ff560d84e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2d307ae4ebb3e2d46b0a75713824d109"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a2d307ae4ebb3e2d46b0a75713824d109"></a>
&#160;</td><td class="memItemRight" valign="bottom"><b>concurrent_unordered_set</b> (const Allocator &amp;a)</td></tr>
<tr class="separator:a2d307ae4ebb3e2d46b0a75713824d109"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afd4bc55194c4473e81398d8456a5c68a"><td class="memTemplParams" colspan="2"><a class="anchor" id="afd4bc55194c4473e81398d8456a5c68a"></a>
template&lt;typename Iterator &gt; </td></tr>
<tr class="memitem:afd4bc55194c4473e81398d8456a5c68a"><td class="memTemplItemLeft" align="right" valign="top">&#160;</td><td class="memTemplItemRight" valign="bottom"><b>concurrent_unordered_set</b> (Iterator first, Iterator last, size_type n_of_buckets=base_type::initial_bucket_number, const hasher &amp;a_hasher=hasher(), const key_equal &amp;a_keyeq=key_equal(), const allocator_type &amp;a=allocator_type())</td></tr>
<tr class="separator:afd4bc55194c4473e81398d8456a5c68a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6f6d5ecff239ff13000848e925904fe7"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a6f6d5ecff239ff13000848e925904fe7"></a>
&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00048.html#a6f6d5ecff239ff13000848e925904fe7">concurrent_unordered_set</a> (std::initializer_list&lt; value_type &gt; il, size_type n_of_buckets=base_type::initial_bucket_number, const hasher &amp;a_hasher=hasher(), const key_equal &amp;a_keyeq=key_equal(), const allocator_type &amp;a=allocator_type())</td></tr>
<tr class="memdesc:a6f6d5ecff239ff13000848e925904fe7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructor from initializer_list. <br/></td></tr>
<tr class="separator:a6f6d5ecff239ff13000848e925904fe7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac3c68d5286d6ca29fba2b38c59bdbc66"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ac3c68d5286d6ca29fba2b38c59bdbc66"></a>
&#160;</td><td class="memItemRight" valign="bottom"><b>concurrent_unordered_set</b> (const <a class="el" href="a00048.html">concurrent_unordered_set</a> &amp;table)</td></tr>
<tr class="separator:ac3c68d5286d6ca29fba2b38c59bdbc66"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a39097dddf99fd057919197b8293bd807"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a39097dddf99fd057919197b8293bd807"></a>
<a class="el" href="a00048.html">concurrent_unordered_set</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>operator=</b> (const <a class="el" href="a00048.html">concurrent_unordered_set</a> &amp;table)</td></tr>
<tr class="separator:a39097dddf99fd057919197b8293bd807"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9dde7a48af7449fde97d4449691207c5"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a9dde7a48af7449fde97d4449691207c5"></a>
&#160;</td><td class="memItemRight" valign="bottom"><b>concurrent_unordered_set</b> (<a class="el" href="a00048.html">concurrent_unordered_set</a> &amp;&amp;table)</td></tr>
<tr class="separator:a9dde7a48af7449fde97d4449691207c5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a49ad03a5e20f90beac704325aaa6567f"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a49ad03a5e20f90beac704325aaa6567f"></a>
<a class="el" href="a00048.html">concurrent_unordered_set</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>operator=</b> (<a class="el" href="a00048.html">concurrent_unordered_set</a> &amp;&amp;table)</td></tr>
<tr class="separator:a49ad03a5e20f90beac704325aaa6567f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6ef0de826333371f1e9cb33349b35baf"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a6ef0de826333371f1e9cb33349b35baf"></a>
&#160;</td><td class="memItemRight" valign="bottom"><b>concurrent_unordered_set</b> (<a class="el" href="a00048.html">concurrent_unordered_set</a> &amp;&amp;table, const Allocator &amp;a)</td></tr>
<tr class="separator:a6ef0de826333371f1e9cb33349b35baf"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aecea62fe5c8beab0d7907dbc33ef583f"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aecea62fe5c8beab0d7907dbc33ef583f"></a>
&#160;</td><td class="memItemRight" valign="bottom"><b>concurrent_unordered_set</b> (const <a class="el" href="a00048.html">concurrent_unordered_set</a> &amp;table, const Allocator &amp;a)</td></tr>
<tr class="separator:aecea62fe5c8beab0d7907dbc33ef583f"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<hr/>The documentation for this class was generated from the following file:<ul>
<li>concurrent_unordered_set.h</li>
<p>An empty class used for messages that mean "I'm done".
<a href="a00048.html#details">More...</a></p>
<p><code>#include &lt;flow_graph.h&gt;</code></p>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>An empty class used for messages that mean "I'm done". </p>
</div><hr/>The documentation for this class was generated from the following file:<ul>
<li><a class="el" href="a00189.html">flow_graph.h</a></li>
</ul>
</div><!-- contents -->
<hr>
Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.0 KiB

+266 -37
View File
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.4"/>
<title>tbb::interface5::concurrent_unordered_set_traits&lt; Key, Hash_compare, Allocator, Allow_multimapping &gt; Class Template Reference</title>
<title>tbb::flow::interface9::continue_receiver Class Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -33,60 +33,289 @@
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="a00237.html">tbb</a></li><li class="navelem"><b>interface5</b></li><li class="navelem"><a class="el" href="a00049.html">concurrent_unordered_set_traits</a></li> </ul>
<li class="navelem"><a class="el" href="a00234.html">tbb</a></li><li class="navelem"><b>flow</b></li><li class="navelem"><b>interface9</b></li><li class="navelem"><a class="el" href="a00049.html">continue_receiver</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#pro-types">Protected Types</a> &#124;
<a href="#pub-types">Public Types</a> &#124;
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#pro-methods">Protected Member Functions</a> &#124;
<a href="#pro-static-methods">Static Protected Member Functions</a> &#124;
<a href="#pro-attribs">Protected Attributes</a> &#124;
<a href="a00372.html">List of all members</a> </div>
<a href="#friends">Friends</a> &#124;
<a href="a00326.html">List of all members</a> </div>
<div class="headertitle">
<div class="title">tbb::interface5::concurrent_unordered_set_traits&lt; Key, Hash_compare, Allocator, Allow_multimapping &gt; Class Template Reference</div> </div>
<div class="title">tbb::flow::interface9::continue_receiver Class Reference<span class="mlabels"><span class="mlabel">abstract</span></span></div> </div>
</div><!--header-->
<div class="contents">
<p>Base class for receivers of completion messages.
<a href="a00049.html#details">More...</a></p>
<p><code>#include &lt;flow_graph.h&gt;</code></p>
<div class="dynheader">
Inheritance diagram for tbb::flow::interface9::continue_receiver:</div>
<div class="dyncontent">
<div class="center">
<img src="a00049.png" usemap="#tbb::flow::interface9::continue_receiver_map" alt=""/>
<map id="tbb::flow::interface9::continue_receiver_map" name="tbb::flow::interface9::continue_receiver_map">
<area href="a00119.html" alt="tbb::flow::interface9::receiver&lt; continue_msg &gt;" shape="rect" coords="0,56,276,80"/>
<area href="a00164.html" alt="tbb::flow::interface9::internal::untyped_receiver" shape="rect" coords="0,0,276,24"/>
</map>
</div></div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-types"></a>
Protected Types</h2></td></tr>
<tr class="memitem:a10fca95c59a7c0542d2d6bc1b8306e1c"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom">{ <b>allow_multimapping</b> = Allow_multimapping
}</td></tr>
<tr class="separator:a10fca95c59a7c0542d2d6bc1b8306e1c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a935ab6e249964c5a7e1caffd308bf008"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a935ab6e249964c5a7e1caffd308bf008"></a>
typedef Key&#160;</td><td class="memItemRight" valign="bottom"><b>value_type</b></td></tr>
<tr class="separator:a935ab6e249964c5a7e1caffd308bf008"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8b1d770b7db20b5d0d51af0b910aebb2"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a8b1d770b7db20b5d0d51af0b910aebb2"></a>
typedef Key&#160;</td><td class="memItemRight" valign="bottom"><b>key_type</b></td></tr>
<tr class="separator:a8b1d770b7db20b5d0d51af0b910aebb2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3c1ef314e63eb78db91ce99cb8617b87"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a3c1ef314e63eb78db91ce99cb8617b87"></a>
typedef Hash_compare&#160;</td><td class="memItemRight" valign="bottom"><b>hash_compare</b></td></tr>
<tr class="separator:a3c1ef314e63eb78db91ce99cb8617b87"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a453126bb05d3c798914cb91852e0b3a5"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a453126bb05d3c798914cb91852e0b3a5"></a>
typedef Allocator::template <br class="typebreak"/>
rebind&lt; value_type &gt;::other&#160;</td><td class="memItemRight" valign="bottom"><b>allocator_type</b></td></tr>
<tr class="separator:a453126bb05d3c798914cb91852e0b3a5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-types"></a>
Public Types</h2></td></tr>
<tr class="memitem:a9b5c2950832344121fcc9e83ce569786"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a9b5c2950832344121fcc9e83ce569786"></a>
typedef <a class="el" href="a00048.html">continue_msg</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00049.html#a9b5c2950832344121fcc9e83ce569786">input_type</a></td></tr>
<tr class="memdesc:a9b5c2950832344121fcc9e83ce569786"><td class="mdescLeft">&#160;</td><td class="mdescRight">The input type. <br/></td></tr>
<tr class="separator:a9b5c2950832344121fcc9e83ce569786"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2c67857ee60501f3a3e0afeeaf06b957"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a2c67857ee60501f3a3e0afeeaf06b957"></a>
typedef <a class="el" href="a00119.html">receiver</a>&lt; <a class="el" href="a00049.html#a9b5c2950832344121fcc9e83ce569786">input_type</a> &gt;<br class="typebreak"/>
::<a class="el" href="a00164.html#a18472c96f8466de089aa2287460b606e">predecessor_type</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00049.html#a2c67857ee60501f3a3e0afeeaf06b957">predecessor_type</a></td></tr>
<tr class="memdesc:a2c67857ee60501f3a3e0afeeaf06b957"><td class="mdescLeft">&#160;</td><td class="mdescRight">The predecessor type for this node. <br/></td></tr>
<tr class="separator:a2c67857ee60501f3a3e0afeeaf06b957"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af1037ec9ff3f6cfb5edcaaaf5006d531"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="af1037ec9ff3f6cfb5edcaaaf5006d531"></a>
typedef <br class="typebreak"/>
<a class="el" href="a00056.html">internal::edge_container</a><br class="typebreak"/>
&lt; <a class="el" href="a00164.html#a18472c96f8466de089aa2287460b606e">predecessor_type</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>built_predecessors_type</b></td></tr>
<tr class="separator:af1037ec9ff3f6cfb5edcaaaf5006d531"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af04d9c8b53a171f4c0fb9191391be190"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="af04d9c8b53a171f4c0fb9191391be190"></a>
typedef <br class="typebreak"/>
built_predecessors_type::edge_list_type&#160;</td><td class="memItemRight" valign="bottom"><b>predecessor_list_type</b></td></tr>
<tr class="separator:af04d9c8b53a171f4c0fb9191391be190"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_types_a00119"><td colspan="2" onclick="javascript:toggleInherit('pub_types_a00119')"><img src="closed.png" alt="-"/>&#160;Public Types inherited from <a class="el" href="a00119.html">tbb::flow::interface9::receiver&lt; continue_msg &gt;</a></td></tr>
<tr class="memitem:ac7e1e823c3a7d6e491e336ff832a2495 inherit pub_types_a00119"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ac7e1e823c3a7d6e491e336ff832a2495"></a>
typedef <a class="el" href="a00048.html">continue_msg</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00119.html#ac7e1e823c3a7d6e491e336ff832a2495">input_type</a></td></tr>
<tr class="memdesc:ac7e1e823c3a7d6e491e336ff832a2495 inherit pub_types_a00119"><td class="mdescLeft">&#160;</td><td class="mdescRight">The input type of this receiver. <br/></td></tr>
<tr class="separator:ac7e1e823c3a7d6e491e336ff832a2495 inherit pub_types_a00119"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac7e1e823c3a7d6e491e336ff832a2495 inherit pub_types_a00119"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ac7e1e823c3a7d6e491e336ff832a2495"></a>
typedef <a class="el" href="a00048.html">continue_msg</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00119.html#ac7e1e823c3a7d6e491e336ff832a2495">input_type</a></td></tr>
<tr class="memdesc:ac7e1e823c3a7d6e491e336ff832a2495 inherit pub_types_a00119"><td class="mdescLeft">&#160;</td><td class="mdescRight">The input type of this receiver. <br/></td></tr>
<tr class="separator:ac7e1e823c3a7d6e491e336ff832a2495 inherit pub_types_a00119"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a388f8aec160b0a7b799a1e34b3386305 inherit pub_types_a00119"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a388f8aec160b0a7b799a1e34b3386305"></a>
typedef <br class="typebreak"/>
internal::async_helpers<br class="typebreak"/>
&lt; <a class="el" href="a00048.html">continue_msg</a> &gt;<br class="typebreak"/>
::filtered_type&#160;</td><td class="memItemRight" valign="bottom"><b>filtered_type</b></td></tr>
<tr class="separator:a388f8aec160b0a7b799a1e34b3386305 inherit pub_types_a00119"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a97b14fcd2a562cf47a9548764c4e5abc inherit pub_types_a00119"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a97b14fcd2a562cf47a9548764c4e5abc"></a>
typedef <a class="el" href="a00139.html">sender</a>&lt; <a class="el" href="a00048.html">continue_msg</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00119.html#a97b14fcd2a562cf47a9548764c4e5abc">predecessor_type</a></td></tr>
<tr class="memdesc:a97b14fcd2a562cf47a9548764c4e5abc inherit pub_types_a00119"><td class="mdescLeft">&#160;</td><td class="mdescRight">The predecessor type for this node. <br/></td></tr>
<tr class="separator:a97b14fcd2a562cf47a9548764c4e5abc inherit pub_types_a00119"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac413d1c889007c9a6d8484d3ba6ec080 inherit pub_types_a00119"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ac413d1c889007c9a6d8484d3ba6ec080"></a>
typedef <br class="typebreak"/>
<a class="el" href="a00056.html">internal::edge_container</a><br class="typebreak"/>
&lt; <a class="el" href="a00164.html#a18472c96f8466de089aa2287460b606e">predecessor_type</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>built_predecessors_type</b></td></tr>
<tr class="separator:ac413d1c889007c9a6d8484d3ba6ec080 inherit pub_types_a00119"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad1a0f07bfa994f8c15441252e364fc46 inherit pub_types_a00119"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ad1a0f07bfa994f8c15441252e364fc46"></a>
typedef <br class="typebreak"/>
built_predecessors_type::edge_list_type&#160;</td><td class="memItemRight" valign="bottom"><b>predecessor_list_type</b></td></tr>
<tr class="separator:ad1a0f07bfa994f8c15441252e364fc46 inherit pub_types_a00119"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_types_a00164"><td colspan="2" onclick="javascript:toggleInherit('pub_types_a00164')"><img src="closed.png" alt="-"/>&#160;Public Types inherited from <a class="el" href="a00164.html">tbb::flow::interface9::internal::untyped_receiver</a></td></tr>
<tr class="memitem:a18472c96f8466de089aa2287460b606e inherit pub_types_a00164"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a18472c96f8466de089aa2287460b606e"></a>
typedef <a class="el" href="a00165.html">untyped_sender</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#a18472c96f8466de089aa2287460b606e">predecessor_type</a></td></tr>
<tr class="memdesc:a18472c96f8466de089aa2287460b606e inherit pub_types_a00164"><td class="mdescLeft">&#160;</td><td class="mdescRight">The predecessor type for this node. <br/></td></tr>
<tr class="separator:a18472c96f8466de089aa2287460b606e inherit pub_types_a00164"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a369b0e292b94a74ffd26e95ca69a9a22 inherit pub_types_a00164"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a369b0e292b94a74ffd26e95ca69a9a22"></a>
typedef <br class="typebreak"/>
<a class="el" href="a00056.html">internal::edge_container</a><br class="typebreak"/>
&lt; <a class="el" href="a00164.html#a18472c96f8466de089aa2287460b606e">predecessor_type</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>built_predecessors_type</b></td></tr>
<tr class="separator:a369b0e292b94a74ffd26e95ca69a9a22 inherit pub_types_a00164"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac83b145c22d5d95930bf40154a1ce11b inherit pub_types_a00164"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ac83b145c22d5d95930bf40154a1ce11b"></a>
typedef <br class="typebreak"/>
built_predecessors_type::edge_list_type&#160;</td><td class="memItemRight" valign="bottom"><b>predecessor_list_type</b></td></tr>
<tr class="separator:ac83b145c22d5d95930bf40154a1ce11b inherit pub_types_a00164"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:a1e72842b80f083994dd44bdb53e2284b"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a1e72842b80f083994dd44bdb53e2284b"></a>
&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00049.html#a1e72842b80f083994dd44bdb53e2284b">continue_receiver</a> (int number_of_predecessors=0)</td></tr>
<tr class="memdesc:a1e72842b80f083994dd44bdb53e2284b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructor. <br/></td></tr>
<tr class="separator:a1e72842b80f083994dd44bdb53e2284b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3483cef04880be4c4c3907936af9afae"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a3483cef04880be4c4c3907936af9afae"></a>
&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00049.html#a3483cef04880be4c4c3907936af9afae">continue_receiver</a> (const <a class="el" href="a00049.html">continue_receiver</a> &amp;src)</td></tr>
<tr class="memdesc:a3483cef04880be4c4c3907936af9afae"><td class="mdescLeft">&#160;</td><td class="mdescRight">Copy constructor. <br/></td></tr>
<tr class="separator:a3483cef04880be4c4c3907936af9afae"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3921e10cb2c5666d4541259d47713754"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a3921e10cb2c5666d4541259d47713754"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00049.html#a3921e10cb2c5666d4541259d47713754">register_predecessor</a> (<a class="el" href="a00164.html#a18472c96f8466de089aa2287460b606e">predecessor_type</a> &amp;) __TBB_override</td></tr>
<tr class="memdesc:a3921e10cb2c5666d4541259d47713754"><td class="mdescLeft">&#160;</td><td class="mdescRight">Increments the trigger threshold. <br/></td></tr>
<tr class="separator:a3921e10cb2c5666d4541259d47713754"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa0c679a297c71fba43380b07ef69563b"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00049.html#aa0c679a297c71fba43380b07ef69563b">remove_predecessor</a> (<a class="el" href="a00164.html#a18472c96f8466de089aa2287460b606e">predecessor_type</a> &amp;) __TBB_override</td></tr>
<tr class="memdesc:aa0c679a297c71fba43380b07ef69563b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Decrements the trigger threshold. <a href="#aa0c679a297c71fba43380b07ef69563b">More...</a><br/></td></tr>
<tr class="separator:aa0c679a297c71fba43380b07ef69563b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aff28d4bd579e21b6471adfbbc115ed28"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aff28d4bd579e21b6471adfbbc115ed28"></a>
<a class="el" href="a00056.html">built_predecessors_type</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>built_predecessors</b> () __TBB_override</td></tr>
<tr class="separator:aff28d4bd579e21b6471adfbbc115ed28"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0734c8ca4ad1b0c3237ebdf9446b59b1"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a0734c8ca4ad1b0c3237ebdf9446b59b1"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>internal_add_built_predecessor</b> (<a class="el" href="a00164.html#a18472c96f8466de089aa2287460b606e">predecessor_type</a> &amp;s) __TBB_override</td></tr>
<tr class="separator:a0734c8ca4ad1b0c3237ebdf9446b59b1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aaf7f670011d394d220a4f1aaa60b37e1"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aaf7f670011d394d220a4f1aaa60b37e1"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>internal_delete_built_predecessor</b> (<a class="el" href="a00164.html#a18472c96f8466de089aa2287460b606e">predecessor_type</a> &amp;s) __TBB_override</td></tr>
<tr class="separator:aaf7f670011d394d220a4f1aaa60b37e1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae15016fbe08fc0530989405bfab98e9c"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ae15016fbe08fc0530989405bfab98e9c"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>copy_predecessors</b> (predecessor_list_type &amp;v) __TBB_override</td></tr>
<tr class="separator:ae15016fbe08fc0530989405bfab98e9c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aae2dbd7283ea44d0834fcd5c31176261"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aae2dbd7283ea44d0834fcd5c31176261"></a>
size_t&#160;</td><td class="memItemRight" valign="bottom"><b>predecessor_count</b> () __TBB_override</td></tr>
<tr class="separator:aae2dbd7283ea44d0834fcd5c31176261"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_methods_a00119"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_a00119')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="a00119.html">tbb::flow::interface9::receiver&lt; continue_msg &gt;</a></td></tr>
<tr class="memitem:a6ac09b1571cea3efd1fdbdaf4e6ce71a inherit pub_methods_a00119"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a6ac09b1571cea3efd1fdbdaf4e6ce71a"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00119.html#a6ac09b1571cea3efd1fdbdaf4e6ce71a">try_put</a> (const typename internal::async_helpers&lt; <a class="el" href="a00048.html">continue_msg</a> &gt;::filtered_type &amp;t)</td></tr>
<tr class="memdesc:a6ac09b1571cea3efd1fdbdaf4e6ce71a inherit pub_methods_a00119"><td class="mdescLeft">&#160;</td><td class="mdescRight">Put an item to the receiver. <br/></td></tr>
<tr class="separator:a6ac09b1571cea3efd1fdbdaf4e6ce71a inherit pub_methods_a00119"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af4b8b1ae090b4b5f2c2ba39b2d85401b inherit pub_methods_a00119"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="af4b8b1ae090b4b5f2c2ba39b2d85401b"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><b>try_put</b> (const typename internal::async_helpers&lt; <a class="el" href="a00048.html">continue_msg</a> &gt;::async_type &amp;t)</td></tr>
<tr class="separator:af4b8b1ae090b4b5f2c2ba39b2d85401b inherit pub_methods_a00119"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7f58c8ec0f790193be2e477b2546ead2 inherit pub_methods_a00119"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a7f58c8ec0f790193be2e477b2546ead2"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00119.html#a7f58c8ec0f790193be2e477b2546ead2">try_put</a> (const <a class="el" href="a00048.html">continue_msg</a> &amp;t)</td></tr>
<tr class="memdesc:a7f58c8ec0f790193be2e477b2546ead2 inherit pub_methods_a00119"><td class="mdescLeft">&#160;</td><td class="mdescRight">Put an item to the receiver. <br/></td></tr>
<tr class="separator:a7f58c8ec0f790193be2e477b2546ead2 inherit pub_methods_a00119"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a33c66d3eb36a9e95db44fce5efeb65b4 inherit pub_methods_a00119"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a33c66d3eb36a9e95db44fce5efeb65b4"></a>
virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00119.html#a33c66d3eb36a9e95db44fce5efeb65b4">~receiver</a> ()</td></tr>
<tr class="memdesc:a33c66d3eb36a9e95db44fce5efeb65b4 inherit pub_methods_a00119"><td class="mdescLeft">&#160;</td><td class="mdescRight">Destructor. <br/></td></tr>
<tr class="separator:a33c66d3eb36a9e95db44fce5efeb65b4 inherit pub_methods_a00119"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_methods_a00164"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_a00164')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="a00164.html">tbb::flow::interface9::internal::untyped_receiver</a></td></tr>
<tr class="memitem:a632631c8a370c1dd1fa8815cbc5e18ec inherit pub_methods_a00164"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a632631c8a370c1dd1fa8815cbc5e18ec"></a>
virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#a632631c8a370c1dd1fa8815cbc5e18ec">~untyped_receiver</a> ()</td></tr>
<tr class="memdesc:a632631c8a370c1dd1fa8815cbc5e18ec inherit pub_methods_a00164"><td class="mdescLeft">&#160;</td><td class="mdescRight">Destructor. <br/></td></tr>
<tr class="separator:a632631c8a370c1dd1fa8815cbc5e18ec inherit pub_methods_a00164"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a84f8406cd5e3252965d9e238575eaede inherit pub_methods_a00164"><td class="memTemplParams" colspan="2"><a class="anchor" id="a84f8406cd5e3252965d9e238575eaede"></a>
template&lt;typename X &gt; </td></tr>
<tr class="memitem:a84f8406cd5e3252965d9e238575eaede inherit pub_methods_a00164"><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00164.html#a84f8406cd5e3252965d9e238575eaede">try_put</a> (const X &amp;t)</td></tr>
<tr class="memdesc:a84f8406cd5e3252965d9e238575eaede inherit pub_methods_a00164"><td class="mdescLeft">&#160;</td><td class="mdescRight">Put an item to the receiver. <br/></td></tr>
<tr class="separator:a84f8406cd5e3252965d9e238575eaede inherit pub_methods_a00164"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-methods"></a>
Protected Member Functions</h2></td></tr>
<tr class="memitem:a958c02e4dbd967575a9f03290bb0cad3"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a958c02e4dbd967575a9f03290bb0cad3"></a>
&#160;</td><td class="memItemRight" valign="bottom"><b>concurrent_unordered_set_traits</b> (const hash_compare &amp;hc)</td></tr>
<tr class="separator:a958c02e4dbd967575a9f03290bb0cad3"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-static-methods"></a>
Static Protected Member Functions</h2></td></tr>
<tr class="memitem:a3f4bfe96ddb3db04d4701e06611fc73d"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a3f4bfe96ddb3db04d4701e06611fc73d"></a>
static const Key &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>get_key</b> (const value_type &amp;value)</td></tr>
<tr class="separator:a3f4bfe96ddb3db04d4701e06611fc73d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a83b0bfae936dac53172d62a6dab4062e"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a83b0bfae936dac53172d62a6dab4062e"></a>
task *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00049.html#a83b0bfae936dac53172d62a6dab4062e">try_put_task</a> (const <a class="el" href="a00049.html#a9b5c2950832344121fcc9e83ce569786">input_type</a> &amp;) __TBB_override</td></tr>
<tr class="memdesc:a83b0bfae936dac53172d62a6dab4062e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Put item to successor; return task to run the successor if possible. <br/></td></tr>
<tr class="separator:a83b0bfae936dac53172d62a6dab4062e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7074cdcd8437cde18780f7dcca69e349"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a7074cdcd8437cde18780f7dcca69e349"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00049.html#a7074cdcd8437cde18780f7dcca69e349">reset_receiver</a> (reset_flags f) __TBB_override</td></tr>
<tr class="memdesc:a7074cdcd8437cde18780f7dcca69e349"><td class="mdescLeft">&#160;</td><td class="mdescRight">put receiver back in initial state <br/></td></tr>
<tr class="separator:a7074cdcd8437cde18780f7dcca69e349"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ace97f82507453a8f3bc234d8de9f960d"><td class="memItemLeft" align="right" valign="top">virtual task *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00049.html#ace97f82507453a8f3bc234d8de9f960d">execute</a> ()=0</td></tr>
<tr class="memdesc:ace97f82507453a8f3bc234d8de9f960d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Does whatever should happen when the threshold is reached. <a href="#ace97f82507453a8f3bc234d8de9f960d">More...</a><br/></td></tr>
<tr class="separator:ace97f82507453a8f3bc234d8de9f960d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a533c7cbad8f0b004cce7c018b33ff091"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a533c7cbad8f0b004cce7c018b33ff091"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><b>is_continue_receiver</b> () __TBB_override</td></tr>
<tr class="separator:a533c7cbad8f0b004cce7c018b33ff091"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pro_methods_a00119"><td colspan="2" onclick="javascript:toggleInherit('pro_methods_a00119')"><img src="closed.png" alt="-"/>&#160;Protected Member Functions inherited from <a class="el" href="a00119.html">tbb::flow::interface9::receiver&lt; continue_msg &gt;</a></td></tr>
<tr class="memitem:a1e7c654dfee72d5ceb414cf2048e2587 inherit pro_methods_a00119"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a1e7c654dfee72d5ceb414cf2048e2587"></a>
virtual task *&#160;</td><td class="memItemRight" valign="bottom"><b>try_put_task_wrapper</b> (const void *p, bool is_async) __TBB_override</td></tr>
<tr class="separator:a1e7c654dfee72d5ceb414cf2048e2587 inherit pro_methods_a00119"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pro_methods_a00164"><td colspan="2" onclick="javascript:toggleInherit('pro_methods_a00164')"><img src="closed.png" alt="-"/>&#160;Protected Member Functions inherited from <a class="el" href="a00164.html">tbb::flow::interface9::internal::untyped_receiver</a></td></tr>
<tr class="memitem:a999d560da68ba411a66954b40bd93b54 inherit pro_methods_a00164"><td class="memTemplParams" colspan="2"><a class="anchor" id="a999d560da68ba411a66954b40bd93b54"></a>
template&lt;typename X &gt; </td></tr>
<tr class="memitem:a999d560da68ba411a66954b40bd93b54 inherit pro_methods_a00164"><td class="memTemplItemLeft" align="right" valign="top">task *&#160;</td><td class="memTemplItemRight" valign="bottom"><b>try_put_task</b> (const X &amp;t)</td></tr>
<tr class="separator:a999d560da68ba411a66954b40bd93b54 inherit pro_methods_a00164"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-attribs"></a>
Protected Attributes</h2></td></tr>
<tr class="memitem:ae134f56adf668d7bd31f7ee8fb36ead5"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ae134f56adf668d7bd31f7ee8fb36ead5"></a>
hash_compare&#160;</td><td class="memItemRight" valign="bottom"><b>my_hash_compare</b></td></tr>
<tr class="separator:ae134f56adf668d7bd31f7ee8fb36ead5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1d97ad36d754a37ec203f64d9ee1ebf1"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a1d97ad36d754a37ec203f64d9ee1ebf1"></a>
<a class="el" href="a00056.html">built_predecessors_type</a>&#160;</td><td class="memItemRight" valign="bottom"><b>my_built_predecessors</b></td></tr>
<tr class="separator:a1d97ad36d754a37ec203f64d9ee1ebf1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adcb55d77f7327e6ac7535909acbc435b"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="adcb55d77f7327e6ac7535909acbc435b"></a>
<a class="el" href="a00140.html">spin_mutex</a>&#160;</td><td class="memItemRight" valign="bottom"><b>my_mutex</b></td></tr>
<tr class="separator:adcb55d77f7327e6ac7535909acbc435b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a11f530867dc6379df8549d4a4eed190b"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a11f530867dc6379df8549d4a4eed190b"></a>
int&#160;</td><td class="memItemRight" valign="bottom"><b>my_predecessor_count</b></td></tr>
<tr class="separator:a11f530867dc6379df8549d4a4eed190b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac239ad3bd3ac969ea62485ae08a37f73"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ac239ad3bd3ac969ea62485ae08a37f73"></a>
int&#160;</td><td class="memItemRight" valign="bottom"><b>my_current_count</b></td></tr>
<tr class="separator:ac239ad3bd3ac969ea62485ae08a37f73"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae69537e3d76b4ef916ada355407dac1c"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ae69537e3d76b4ef916ada355407dac1c"></a>
int&#160;</td><td class="memItemRight" valign="bottom"><b>my_initial_predecessor_count</b></td></tr>
<tr class="separator:ae69537e3d76b4ef916ada355407dac1c"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="friends"></a>
Friends</h2></td></tr>
<tr class="memitem:abaf9bf74ca5f2854d09f5f07337280eb"><td class="memTemplParams" colspan="2"><a class="anchor" id="abaf9bf74ca5f2854d09f5f07337280eb"></a>
template&lt;typename R , typename B &gt; </td></tr>
<tr class="memitem:abaf9bf74ca5f2854d09f5f07337280eb"><td class="memTemplItemLeft" align="right" valign="top">class&#160;</td><td class="memTemplItemRight" valign="bottom"><b>run_and_put_task</b></td></tr>
<tr class="separator:abaf9bf74ca5f2854d09f5f07337280eb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1360e38efe396058978cf3754ad620f5"><td class="memTemplParams" colspan="2"><a class="anchor" id="a1360e38efe396058978cf3754ad620f5"></a>
template&lt;typename X , typename Y &gt; </td></tr>
<tr class="memitem:a1360e38efe396058978cf3754ad620f5"><td class="memTemplItemLeft" align="right" valign="top">class&#160;</td><td class="memTemplItemRight" valign="bottom"><b>internal::broadcast_cache</b></td></tr>
<tr class="separator:a1360e38efe396058978cf3754ad620f5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acbd9ac2610587a99cd7d43344297cc49"><td class="memTemplParams" colspan="2"><a class="anchor" id="acbd9ac2610587a99cd7d43344297cc49"></a>
template&lt;typename X , typename Y &gt; </td></tr>
<tr class="memitem:acbd9ac2610587a99cd7d43344297cc49"><td class="memTemplItemLeft" align="right" valign="top">class&#160;</td><td class="memTemplItemRight" valign="bottom"><b>internal::round_robin_cache</b></td></tr>
<tr class="separator:acbd9ac2610587a99cd7d43344297cc49"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a05ec930a348f7eed564236d00edbda24"><td class="memTemplParams" colspan="2"><a class="anchor" id="a05ec930a348f7eed564236d00edbda24"></a>
template&lt;typename U &gt; </td></tr>
<tr class="memitem:a05ec930a348f7eed564236d00edbda24"><td class="memTemplItemLeft" align="right" valign="top">class&#160;</td><td class="memTemplItemRight" valign="bottom"><b>limiter_node</b></td></tr>
<tr class="separator:a05ec930a348f7eed564236d00edbda24"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a73cd25db4e6e9497940262f70f3ffc54"><td class="memTemplParams" colspan="2"><a class="anchor" id="a73cd25db4e6e9497940262f70f3ffc54"></a>
template&lt;typename TT , typename M &gt; </td></tr>
<tr class="memitem:a73cd25db4e6e9497940262f70f3ffc54"><td class="memTemplItemLeft" align="right" valign="top">class&#160;</td><td class="memTemplItemRight" valign="bottom"><b>internal::successor_cache</b></td></tr>
<tr class="separator:a73cd25db4e6e9497940262f70f3ffc54"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Base class for receivers of completion messages. </p>
<p>These receivers automatically reset, but cannot be explicitly waited on </p>
</div><h2 class="groupheader">Member Function Documentation</h2>
<a class="anchor" id="ace97f82507453a8f3bc234d8de9f960d"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">virtual task* tbb::flow::interface9::continue_receiver::execute </td>
<td>(</td>
<td class="paramname">)</td><td></td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span><span class="mlabel">pure virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Does whatever should happen when the threshold is reached. </p>
<p>This should be very fast or else spawn a task. This is called while the sender is blocked in the <a class="el" href="a00119.html#a6ac09b1571cea3efd1fdbdaf4e6ce71a" title="Put an item to the receiver. ">try_put()</a>. </p>
<p>Referenced by <a class="el" href="a00049.html#a83b0bfae936dac53172d62a6dab4062e">try_put_task()</a>.</p>
</div>
</div>
<a class="anchor" id="aa0c679a297c71fba43380b07ef69563b"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">bool tbb::flow::interface9::continue_receiver::remove_predecessor </td>
<td>(</td>
<td class="paramtype"><a class="el" href="a00164.html#a18472c96f8466de089aa2287460b606e">predecessor_type</a> &amp;&#160;</td>
<td class="paramname">)</td><td></td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Decrements the trigger threshold. </p>
<p>Does not check to see if the removal of the predecessor now makes the current count exceed the new threshold. So removing a predecessor while the graph is active can cause unexpected results. </p>
<p>Reimplemented from <a class="el" href="a00119.html#ae8f45b84f3179964dd77f32835ece6c0">tbb::flow::interface9::receiver&lt; continue_msg &gt;</a>.</p>
</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
<li>concurrent_unordered_set.h</li>
<li><a class="el" href="a00189.html">flow_graph.h</a></li>
</ul>
</div><!-- contents -->
<hr>

Some files were not shown because too many files have changed in this diff Show More