00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014 #ifndef _ARAGELI_io_hpp_
00015 #define _ARAGELI_io_hpp_
00016
00017 #include "config.hpp"
00018
00019 #include <iostream>
00020
00021
00022 namespace Arageli
00023 {
00024
00025
00027 template <typename T, typename Ch, typename ChT>
00028 inline std::basic_ostream<Ch, ChT>& output_polynom_first_default
00029 (std::basic_ostream<Ch, ChT>& out, const T& x)
00030 { return out << x; }
00031
00033 template <typename T, typename Ch, typename ChT>
00034 std::basic_ostream<Ch, ChT>& output_polynom_internal_default
00035 (std::basic_ostream<Ch, ChT>& out, const T& x);
00036
00038 template <typename T, typename Ch, typename ChT>
00039 std::basic_ostream<Ch, ChT>& output_pow_default
00040 (std::basic_ostream<Ch, ChT>& out, const T& x);
00041
00043 template <typename T, typename Ch, typename ChT>
00044 std::basic_istream<Ch, ChT>& input_polynom_first_default
00045 (std::basic_istream<Ch, ChT>& in, T& x);
00046
00048 template <typename T, typename Ch, typename ChT>
00049 std::basic_istream<Ch, ChT>& input_polynom_internal_default
00050 (std::basic_istream<Ch, ChT>& in, T& x);
00051
00053 template <typename T, typename Ch, typename ChT>
00054 inline std::basic_istream<Ch, ChT>& input_pow_default
00055 (std::basic_istream<Ch, ChT>& in, T& x)
00056 { return in >> x; }
00057
00058
00059 template <typename T, typename Ch, typename ChT>
00060 inline std::basic_ostream<Ch, ChT>& output_polynom_first
00061 (std::basic_ostream<Ch, ChT>& out, const T& x)
00062 { return output_polynom_first_default(out, x); }
00063
00064 template <typename T, typename Ch, typename ChT>
00065 inline std::basic_ostream<Ch, ChT>& output_polynom_internal
00066 (std::basic_ostream<Ch, ChT>& out, const T& x)
00067 { return output_polynom_internal_default(out, x); }
00068
00069 template <typename T, typename Ch, typename ChT>
00070 inline std::basic_ostream<Ch, ChT>& output_pow
00071 (std::basic_ostream<Ch, ChT>& out, const T& x)
00072 { return output_pow_default(out, x); }
00073
00074 template <typename T, typename Ch, typename ChT>
00075 inline std::basic_istream<Ch, ChT>& input_polynom_first
00076 (std::basic_istream<Ch, ChT>& in, T& x)
00077 { return input_polynom_first_default(in, x); }
00078
00079 template <typename T, typename Ch, typename ChT>
00080 inline std::basic_istream<Ch, ChT>& input_polynom_internal
00081 (std::basic_istream<Ch, ChT>& in, T& x)
00082 { return input_polynom_internal_default(in, x); }
00083
00084 template <typename T, typename Ch, typename ChT>
00085 inline std::basic_istream<Ch, ChT>& input_pow
00086 (std::basic_istream<Ch, ChT>& in, T& x)
00087 { return input_pow_default(in, x); }
00088
00089
00090 }
00091
00092
00093 #ifdef ARAGELI_INCLUDE_CPP_WITH_EXPORT_TEMPLATE
00094 #define ARAGELI_INCLUDE_CPP_WITH_EXPORT_TEMPLATE_IO
00095 #include "io.cpp"
00096 #undef ARAGELI_INCLUDE_CPP_WITH_EXPORT_TEMPLATE_IO
00097 #endif
00098
00099
00100 #endif // #ifndef _ARAGELI_io_hpp_