algo_type.hpp 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. /////////////////////////////////////////////////////////////////////////////
  2. //
  3. // (C) Copyright Ion Gaztanaga 2014-2014
  4. //
  5. // Distributed under the Boost Software License, Version 1.0.
  6. // (See accompanying file LICENSE_1_0.txt or copy at
  7. // http://www.boost.org/LICENSE_1_0.txt)
  8. //
  9. // See http://www.boost.org/libs/intrusive for documentation.
  10. //
  11. /////////////////////////////////////////////////////////////////////////////
  12. #ifndef BOOST_INTRUSIVE_DETAIL_ALGO_TYPE_HPP
  13. #define BOOST_INTRUSIVE_DETAIL_ALGO_TYPE_HPP
  14. #ifndef BOOST_CONFIG_HPP
  15. # include <boost/config.hpp>
  16. #endif
  17. #if defined(BOOST_HAS_PRAGMA_ONCE)
  18. # pragma once
  19. #endif
  20. namespace boost {
  21. namespace intrusive {
  22. enum algo_types
  23. {
  24. CircularListAlgorithms,
  25. CircularSListAlgorithms,
  26. LinearSListAlgorithms,
  27. CommonSListAlgorithms,
  28. BsTreeAlgorithms,
  29. RbTreeAlgorithms,
  30. AvlTreeAlgorithms,
  31. SgTreeAlgorithms,
  32. SplayTreeAlgorithms,
  33. TreapAlgorithms,
  34. UnorderedAlgorithms,
  35. UnorderedCircularSlistAlgorithms,
  36. AnyAlgorithm
  37. };
  38. template<algo_types AlgoType, class NodeTraits>
  39. struct get_algo;
  40. template<algo_types AlgoType, class ValueTraits, class NodePtrCompare, class ExtraChecker>
  41. struct get_node_checker;
  42. } //namespace intrusive
  43. } //namespace boost
  44. #endif //BOOST_INTRUSIVE_DETAIL_ALGO_TYPE_HPP