--- /dev/null
+// boost lockfree: allocator rebind helper
+//
+// Copyright (C) 2017 Minmin Gong
+//
+// Distributed under the Boost Software License, Version 1.0. (See
+// accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+
+#ifndef BOOST_LOCKFREE_ALLOCATOR_REBIND_HELPER_HPP_INCLUDED
+#define BOOST_LOCKFREE_ALLOCATOR_REBIND_HELPER_HPP_INCLUDED
+
+#include <memory>
+
+namespace boost {
+namespace lockfree {
+namespace detail {
+
+template <class allocator_type, class value_type>
+struct allocator_rebind_helper
+{
+#if !defined( BOOST_NO_CXX11_ALLOCATOR )
+ typedef typename std::allocator_traits<allocator_type>::template rebind_alloc<value_type> type;
+#else
+ typedef typename allocator_type::template rebind<value_type>::other type;
+#endif
+};
+
+} /* namespace detail */
+} /* namespace lockfree */
+} /* namespace boost */
+
+#endif /* BOOST_LOCKFREE_ALLOCATOR_REBIND_HELPER_HPP_INCLUDED */