ATLAS Offline Software
concurrent_vector.h
Go to the documentation of this file.
1 // This file's extension implies that it's C, but it's really -*- C++ -*-.
2 /*
3  * Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration.
4  */
19 #ifndef ATHCONTAINERS_CONCURRENT_VECTOR_H
20 #define ATHCONTAINERS_CONCURRENT_VECTOR_H
21 
22 
23 #ifdef ATHCONTAINERS_NO_THREADS
24 
25 
26 #include <vector>
27 
28 
29 namespace AthContainers_detail {
30 
31 
32 template <class T>
33 using concurrent_vector = std::vector<T>;
34 
35 
36 } // namespace AthContainers_detail
37 
38 
39 #else // not ATHCONTAINERS_NO_THREADS
40 
41 
42 // See ATLINFR-4996 for an explanation of this clunky
43 // warning suppression.
44 #if (__cplusplus > 201703L) && defined(__ROOTCLING__)
45 #pragma clang diagnostic push
46 #pragma clang diagnostic ignored "-Wdeprecated-volatile"
47 #endif // >C++17 with ROOT
48 #include "tbb/concurrent_vector.h"
49 #if (__cplusplus > 201703L) && defined(__ROOTCLING__)
50 #pragma clang diagnostic pop
51 #endif // >C++17 with ROOT
52 
53 
55 
56 
57 using tbb::concurrent_vector;
58 
59 
60 } // namespace AthContainers_detail
61 
62 
63 
64 #endif
65 
66 
67 #endif // not ATHCONTAINERS_CONCURRENT_VECTOR_H
AthContainers_detail
Definition: concurrent_vector.h:54