summaryrefslogtreecommitdiff
path: root/boost/lockfree/queue.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'boost/lockfree/queue.hpp')
-rw-r--r--boost/lockfree/queue.hpp17
1 files changed, 15 insertions, 2 deletions
diff --git a/boost/lockfree/queue.hpp b/boost/lockfree/queue.hpp
index bb699efc45..808bebd6c5 100644
--- a/boost/lockfree/queue.hpp
+++ b/boost/lockfree/queue.hpp
@@ -17,6 +17,7 @@
#include <boost/type_traits/has_trivial_destructor.hpp>
#include <boost/config.hpp> // for BOOST_LIKELY & BOOST_ALIGNMENT
+#include <boost/lockfree/detail/allocator_rebind_helper.hpp>
#include <boost/lockfree/detail/atomic.hpp>
#include <boost/lockfree/detail/copy_payload.hpp>
#include <boost/lockfree/detail/freelist.hpp>
@@ -35,6 +36,14 @@
#pragma warning(disable: 4324) // structure was padded due to __declspec(align())
#endif
+#if defined(BOOST_INTEL) && (BOOST_INTEL_CXX_VERSION > 1000)
+#pragma warning(push)
+#pragma warning(disable:488) // template parameter unused in declaring parameter types,
+ // gets erronously triggered the queue constructor which
+ // takes an allocator of another type and rebinds it
+#endif
+
+
namespace boost {
namespace lockfree {
@@ -181,7 +190,7 @@ public:
}
template <typename U>
- explicit queue(typename node_allocator::template rebind<U>::other const & alloc):
+ explicit queue(typename detail::allocator_rebind_helper<node_allocator, U>::type const & alloc):
head_(tagged_node_handle(0, 0)),
tail_(tagged_node_handle(0, 0)),
pool(alloc, capacity)
@@ -212,7 +221,7 @@ public:
}
template <typename U>
- queue(size_type n, typename node_allocator::template rebind<U>::other const & alloc):
+ queue(size_type n, typename detail::allocator_rebind_helper<node_allocator, U>::type const & alloc):
head_(tagged_node_handle(0, 0)),
tail_(tagged_node_handle(0, 0)),
pool(alloc, n + 1)
@@ -544,6 +553,10 @@ private:
} /* namespace lockfree */
} /* namespace boost */
+#if defined(BOOST_INTEL) && (BOOST_INTEL_CXX_VERSION > 1000)
+#pragma warning(pop)
+#endif
+
#if defined(_MSC_VER)
#pragma warning(pop)
#endif