lockfree_forward.hpp 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. // Copyright (C) 2008-2016 Tim Blechmann
  2. //
  3. // Distributed under the Boost Software License, Version 1.0. (See
  4. // accompanying file LICENSE_1_0.txt or copy at
  5. // http://www.boost.org/LICENSE_1_0.txt)
  6. #ifndef BOOST_LOCKFREE_FORWARD_HPP_INCLUDED
  7. #define BOOST_LOCKFREE_FORWARD_HPP_INCLUDED
  8. #ifndef BOOST_DOXYGEN_INVOKED
  9. #include <cstddef> // size_t
  10. #include <boost/config.hpp>
  11. #ifdef BOOST_NO_CXX11_VARIADIC_TEMPLATES
  12. #include <boost/parameter/aux_/void.hpp>
  13. #endif
  14. namespace boost {
  15. namespace lockfree {
  16. // policies
  17. template <bool IsFixedSized>
  18. struct fixed_sized;
  19. template <size_t Size>
  20. struct capacity;
  21. template <class Alloc>
  22. struct allocator;
  23. // data structures
  24. #ifdef BOOST_NO_CXX11_VARIADIC_TEMPLATES
  25. template <typename T,
  26. class A0 = boost::parameter::void_,
  27. class A1 = boost::parameter::void_,
  28. class A2 = boost::parameter::void_>
  29. #else
  30. template <typename T, typename ...Options>
  31. #endif
  32. class queue;
  33. #ifdef BOOST_NO_CXX11_VARIADIC_TEMPLATES
  34. template <typename T,
  35. class A0 = boost::parameter::void_,
  36. class A1 = boost::parameter::void_,
  37. class A2 = boost::parameter::void_>
  38. #else
  39. template <typename T, typename ...Options>
  40. #endif
  41. class stack;
  42. #ifdef BOOST_NO_CXX11_VARIADIC_TEMPLATES
  43. template <typename T,
  44. class A0 = boost::parameter::void_,
  45. class A1 = boost::parameter::void_>
  46. #else
  47. template <typename T, typename ...Options>
  48. #endif
  49. class spsc_queue;
  50. }
  51. }
  52. #endif // BOOST_DOXYGEN_INVOKED
  53. #endif // BOOST_LOCKFREE_FORWARD_HPP_INCLUDED