00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017 #ifndef VCSN_MISC_IOMANIP_HXX
00018 # define VCSN_MISC_IOMANIP_HXX
00019
00028 # include <vaucanson/misc/iomanip.hh>
00029
00030 namespace utility
00031 {
00032
00033
00034
00035
00036
00037 template <class Self>
00038 const Self&
00039 iomanip<Self>::self() const
00040 {
00041 return *static_cast<const Self*> (this);
00042 }
00043
00044 template <class IOM>
00045 std::ostream&
00046 operator << (std::ostream& ostr, const iomanip<IOM>& m)
00047 {
00048 return m.self() (ostr);
00049 }
00050
00051
00052
00053
00054
00055 template <class T>
00056 void
00057 pword_delete(std::ios_base::event ev, std::ios_base &io, int idx)
00058 {
00059 if (ev == std::ios_base::erase_event)
00060 delete static_cast<T*> (io.pword(idx));
00061 }
00062
00063 }
00064
00065 #endif // ! VCSN_MISC_IOMANIP_HXX