18 #ifndef VCSN_ALGEBRA_IMPLEMENTATION_MONOID_STR_WORDS_HH
19 # define VCSN_ALGEBRA_IMPLEMENTATION_MONOID_STR_WORDS_HH
24 # include <vaucanson/algebra/implementation/monoid/free_monoid.hh>
25 # include <vaucanson/algebra/implementation/alphabets/alphabet_set.hh>
38 std::basic_string<typename A::letter_t>& v,
39 const std::string& in);
43 op_in_mul(
const algebra::FreeMonoid<A>& s,
44 std::basic_string<typename A::letter_t>& dst,
45 const std::basic_string<typename A::letter_t>& src);
48 std::basic_string<typename A::letter_t>
49 op_mul(
const algebra::FreeMonoid<A>& s,
50 const std::basic_string<typename A::letter_t>& a,
51 const std::basic_string<typename A::letter_t>& b);
53 template<
typename A,
typename St,
typename U,
typename V>
57 const std::basic_string<typename A::letter_t, U, V>& v);
60 const std::basic_string<typename A::letter_t>&
61 identity_value(
SELECTOR(algebra::FreeMonoid<A>),
62 SELECTOR(std::basic_string<typename A::letter_t>));
66 std::basic_string<typename A::letter_t>
67 op_convert(
SELECTOR(algebra::FreeMonoid<A>),
68 SELECTOR(std::basic_string<typename A::letter_t>),
69 const typename A::letter_t& c);
71 template<
typename A,
typename B,
typename C,
typename D>
73 op_is_atom(
const algebra::FreeMonoid<A>&,
74 const std::basic_string<B, C, D>& v);
86 std::basic_string<typename A::letter_t> >
93 std::basic_string<typename alphabet_t::letter_t> >
word_t;
100 typename alphabet_t::value_t>
::
105 typename alphabet_t::value_t>
::
116 std::basic_string<
typename first_projection_alphabet_t::
124 std::basic_string<
typename second_projection_alphabet_t::
145 # if !defined VCSN_USE_INTERFACE_ONLY || defined VCSN_USE_LIB
146 # include <vaucanson/algebra/implementation/monoid/str_words.hxx>
147 # endif // ! VCSN_USE_INTERFACE_ONLY
149 #endif // ! VCSN_ALGEBRA_IMPLEMENTATION_MONOID_STR_WORDS_HH