17 #ifndef VCSN_MISC_SUPPORT_HH
18 # define VCSN_MISC_SUPPORT_HH
31 # include <vaucanson/automata/concept/handlers.hh>
50 typedef typename C::key_type key_type;
51 typedef typename C::const_iterator map_iterator;
54 typedef typename map_iterator::iterator_category iterator_category;
55 typedef typename map_iterator::difference_type difference_type;
56 typedef key_type value_type;
57 typedef key_type* pointer;
58 typedef key_type& reference;
87 key_type operator* ()
const;
101 typedef std::set<U> container_t;
103 typedef typename container_t::const_iterator iterator;
106 typedef typename iterator::iterator_category iterator_category;
107 typedef typename iterator::difference_type difference_type;
108 typedef value_t value_type;
109 typedef value_t* pointer;
110 typedef value_t& reference;
137 SupportIterator (iterator);
139 value_t operator* ()
const;
140 self_t& operator++ ();
141 self_t operator++ (
int);
142 bool operator!= (
const SupportIterator&)
const;
143 bool operator== (
const SupportIterator&)
const;
150 template <
class U,
class T>
151 class Support<std::map<U, T> >
159 Support (
const std::map<U, T>&);
160 Support (
const Support&);
164 unsigned size ()
const;
174 const std::map<U, T>& m_;
179 class Support<std::set<U> >
187 Support (
const std::set<U>&);
188 Support (
const Support&);
190 iterator begin ()
const;
191 iterator end ()
const;
192 unsigned size ()
const;
195 iterator find (
const U& k)
const;
202 const std::set<U>& m_;
210 # if !defined VCSN_USE_INTERFACE_ONLY || defined VCSN_USE_LIB
211 # include <vaucanson/misc/support.hxx>
212 # endif // VCSN_USE_INTERFACE_ONLY
215 #endif // ! VCSN_MISC_SUPPORT_HH