17 #ifndef VCSN_AUTOMATA_IMPLEMENTATION_LISTG_LISTG_SPARSE_INTERVAL_HH
18 # define VCSN_AUTOMATA_IMPLEMENTATION_LISTG_LISTG_SPARSE_INTERVAL_HH
26 # include <vaucanson/automata/concept/handlers.hh>
37 template <
class T,
class ExcludedContainer>
41 typedef vcsn::handler<T, unsigned> handler_t;
42 typedef handler_t integer_t;
43 typedef ExcludedContainer excluded_container_t;
44 typedef typename excluded_container_t::const_iterator iterator_t;
52 integer_t operator* ();
58 const excluded_container_t* excluded_;
70 template <
class T,
class ExcludedContainer>
71 struct iterator_traits<vcsn::misc::SparseIterator
72 <vcsn::handler<T, unsigned>, ExcludedContainer> >
74 typedef input_iterator_tag iterator_category;
75 typedef vcsn::handler<T, unsigned> value_type;
76 typedef int difference_type;
78 typedef int& reference;
104 template <
class T,
class ExcludedContainer>
108 typedef vcsn::handler<T, unsigned> handler_t;
109 typedef handler_t integer_t;
110 typedef ExcludedContainer excluded_container_t;
114 SparseInterval (integer_t, integer_t,
const excluded_container_t&);
120 unsigned size ()
const;
121 std::string to_string ()
const;
123 handler_t back()
const;
126 const excluded_container_t& excluded_;
138 # if !defined VCSN_USE_INTERFACE_ONLY || defined VCSN_USE_LIB
139 # include <vaucanson/automata/implementation/listg/listg_sparse_interval.hxx>
140 # endif // VCSN_USE_INTERFACE_ONLY
143 #endif // ! VCSN_AUTOMATA_IMPLEMENTATION_LISTG_LISTG_SPARSE_INTERVAL_HH