00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017 #ifndef VCSN_MISC_ESCAPER_HH
00018 # define VCSN_MISC_ESCAPER_HH
00019
00028 # include <set>
00029
00030 # include <vaucanson/misc/iomanip.hh>
00031
00032 namespace utility
00033 {
00034
00056 template <class T>
00057 struct escaper : public iomanip< escaper<T> >
00058 {
00059 explicit
00060 escaper(const T& w);
00061 std::ostream& operator () (std::ostream& ostr) const;
00062 protected:
00063 const T& w_;
00064 };
00065
00072 template <class T>
00073 escaper<T>
00074 make_escaper(const T& w);
00075
00085 struct setesc : public iomanip<setesc>
00086 {
00087 setesc(const std::set<char>& s);
00088 std::ostream& operator () (std::ostream& ostr) const;
00089 protected:
00090 const std::set<char>& s_;
00091 };
00092
00099 std::set<char>& getesc(std::ostream& ostr);
00100
00101 }
00102
00103 # ifndef VCSN_USE_INTERFACE_ONLY
00104 # include <vaucanson/misc/escaper.hxx>
00105 # endif // VCSN_USE_INTERFACE_ONLY
00106
00107 #endif // ! VCSN_MISC_ESCAPER_HH