00001 
00002 
00003 
00004 
00005 
00006 
00007 
00008 
00009 
00010 
00011 
00012 
00013 
00014 
00015 
00016 
00017 
00018 #ifndef VCSN_AUTOMATA_IMPLEMENTATION_BMIG_INITIAL_CONTAINER_HH_
00019 # define VCSN_AUTOMATA_IMPLEMENTATION_BMIG_INITIAL_CONTAINER_HH_
00020 
00021 # include <boost/multi_index_container.hpp>
00022 # include <boost/multi_index/member.hpp>
00023 # include <boost/multi_index/ordered_index.hpp>
00024 # include <boost/multi_index/hashed_index.hpp>
00025 # include <boost/functional/hash/hash.hpp>
00026 # include <boost/multi_index/sequenced_index.hpp>
00027 # include <boost/tuple/tuple.hpp>
00028 # include <boost/multi_index/composite_key.hpp>
00029 
00030 namespace vcsn
00031 {
00032   namespace bmig
00033   {
00034 
00040     template <typename U, typename HState>
00041     struct InitialContainer
00042     {
00043 
00044       typedef boost::multi_index_container
00045         <
00046         U,
00047       boost::multi_index::indexed_by
00048         <
00049         boost::multi_index::ordered_non_unique<
00050         BOOST_MULTI_INDEX_MEMBER(U, HState, first)
00051         >
00052         >
00053         > Type;
00054     };
00055 
00056   } 
00057 } 
00058 
00059 #endif // ! VCSN_AUTOMATA_IMPLEMENTATION_BMIG_INITIAL_CONTAINER_HH_
00060