1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980 |
- #ifndef BOOST_CONTAINER_OPTIONS_HPP
- #define BOOST_CONTAINER_OPTIONS_HPP
- #ifndef BOOST_CONFIG_HPP
- # include <boost/config.hpp>
- #endif
- #if defined(BOOST_HAS_PRAGMA_ONCE)
- # pragma once
- #endif
- #include <boost/container/detail/config_begin.hpp>
- #include <boost/container/container_fwd.hpp>
- #include <boost/intrusive/pack_options.hpp>
- namespace boost {
- namespace container {
- #if !defined(BOOST_CONTAINER_DOXYGEN_INVOKED)
- template<tree_type_enum TreeType, bool OptimizeSize>
- struct tree_opt
- {
- static const boost::container::tree_type_enum tree_type = TreeType;
- static const bool optimize_size = OptimizeSize;
- };
- #endif
- BOOST_INTRUSIVE_OPTION_CONSTANT(tree_type, tree_type_enum, TreeType, tree_type)
- BOOST_INTRUSIVE_OPTION_CONSTANT(optimize_size, bool, Enabled, optimize_size)
- #if defined(BOOST_CONTAINER_DOXYGEN_INVOKED) || defined(BOOST_CONTAINER_VARIADIC_TEMPLATES)
- template<class ...Options>
- #else
- template<class O1 = void, class O2 = void, class O3 = void, class O4 = void>
- #endif
- struct tree_assoc_options
- {
-
- typedef typename ::boost::intrusive::pack_options
- < tree_assoc_defaults,
- #if !defined(BOOST_CONTAINER_VARIADIC_TEMPLATES)
- O1, O2, O3, O4
- #else
- Options...
- #endif
- >::type packed_options;
- typedef tree_opt<packed_options::tree_type, packed_options::optimize_size> implementation_defined;
-
- typedef implementation_defined type;
- };
- }
- }
- #include <boost/container/detail/config_end.hpp>
- #endif
|