13 #ifndef _MRU_LIST_HPP_
14 #define _MRU_LIST_HPP_
18 #define BOOST_MULTI_INDEX_ENABLE_INVARIANT_CHECKING
19 #define BOOST_MULTI_INDEX_ENABLE_SAFE_MODE
23 #include <boost/config.hpp>
25 #include <boost/multi_index_container.hpp>
26 #include <boost/multi_index/hashed_index.hpp>
27 #include <boost/multi_index/identity.hpp>
28 #include <boost/multi_index/member.hpp>
29 #include <boost/multi_index/mem_fun.hpp>
30 #include <boost/multi_index/sequenced_index.hpp>
48 template <
typename Item,
typename KeyExtractor = boost::multi_index::
identity<Item> >
51 typedef boost::multi_index::multi_index_container
54 boost::multi_index::indexed_by
56 boost::multi_index::sequenced<>,
57 boost::multi_index::hashed_unique<KeyExtractor>
73 std::pair<iterator,bool> p=
il.push_front(item);
76 il.relocate(
il.begin(),p.first);
85 template<
typename Modifier>
88 return il.modify(position, modifier);
92 std::size_t
size()
const {
return il.size();}
121 #endif // _MRU_LIST_HPP_