ACloudViewer  3.9.4
A Modern Library for 3D Data Processing
ParallelSort.h
Go to the documentation of this file.
1 // ----------------------------------------------------------------------------
2 // - CloudViewer: www.cloudViewer.org -
3 // ----------------------------------------------------------------------------
4 // Copyright (c) 2018-2024 www.cloudViewer.org
5 // SPDX-License-Identifier: MIT
6 // ----------------------------------------------------------------------------
7 
8 #pragma once
9 
10 #ifdef ParallelSort
11 #undef ParallelSort
12 #pragma message \
13  "Replacing preprocessor symbol 'ParallelSort' with the one defined in Parallel.h"
14 #endif
15 
16 #if defined(_MSC_VER) && (_MSC_VER >= 1800)
17 
18 // Parallel Patterns Library (for parallel sort)
19 #include <ppl.h>
20 
21 #define ParallelSort Concurrency::parallel_sort
22 
23 #elif USE_TBB
24 
25 #include <tbb/parallel_sort.h>
26 
27 #define ParallelSort tbb::parallel_sort
28 
29 #else
30 
31 #include <algorithm>
32 
33 #define ParallelSort std::sort
34 
35 #endif