17 #ifndef VCSN_ALGEBRA_IMPLEMENTATION_LETTER_RANGE_HH
18 # define VCSN_ALGEBRA_IMPLEMENTATION_LETTER_RANGE_HH
20 # include <vaucanson/algebra/concept/letter.hh>
26 template <
class T,
class Interval>
31 static_ranged(
const T& v);
32 static_ranged(
const static_ranged& r);
34 static_ranged randomized();
36 const T& value()
const;
44 template <
char From,
char To>
45 struct static_char_interval
47 static bool check(
char c);
58 template <
class T,
class Interval>
59 struct letter_traits< static_ranged<T, Interval> >
63 cardinal = Interval::to_value - Interval::from_value + 1
67 typedef undefined_type first_projection_t;
68 typedef undefined_type second_projection_t;
72 template <
class T,
class Interval>
73 bool operator<(const static_ranged<T, Interval>& lhs,
74 const static_ranged<T, Interval>& rhs);
76 template <
class T,
class Interval>
77 bool operator==(
const static_ranged<T, Interval>& lhs,
78 const static_ranged<T, Interval>& rhs);
80 template <
class Stream,
class T,
class Interval>
81 Stream& operator<<(Stream& s, static_ranged<T, Interval>& sr)
92 # if !defined VCSN_USE_INTERFACE_ONLY || defined VCSN_USE_LIB
93 # include <vaucanson/algebra/implementation/letter/range.hxx>
94 # endif // VCSN_USE_INTERFACE_ONLY
97 #endif // ! VCSN_ALGEBRA_IMPLEMENTATION_LETTER_RANGE_HH