00001 #ifndef IOF_PRINT_H
00002 #define IOF_PRINT_H
00003
00017 #include "iof/fmtr.hpp"
00018
00019 namespace iof
00020 {
00021
00022
00023 namespace iof_private
00024 {
00025
00026
00027 }
00028
00029
00030
00031
00033 template <typename TT>
00034 inline
00035 bool prints(std::ostream& out, const TT& obj)
00036 {
00037 return out << obj;
00038 }
00039
00040
00041 template <typename T1>
00042 inline
00043 bool prints(std::ostream& out, const char* fmt, const T1& obj)
00044 {
00045 return iof_private::fmtr_out(out, fmt) << obj;
00046 }
00047
00048
00049 template <typename T1, typename T2>
00050 inline
00051 bool prints(std::ostream& out, const char* fmt, const T1& obj1,
00052 const T2& obj2)
00053 {
00054 return iof_private::fmtr_out(out, fmt) << obj1 << obj2;
00055 }
00056
00057
00058 template <typename T1, typename T2, typename T3>
00059 inline
00060 bool prints(std::ostream& out, const char* fmt,
00061 const T1& obj1, const T2& obj2, const T3& obj3)
00062 {
00063 return iof_private::fmtr_out(out, fmt) << obj1 << obj2 << obj3;
00064 }
00065
00066
00067 template <typename T1, typename T2, typename T3, typename T4>
00068 inline
00069 bool prints(std::ostream& out, const char* fmt,
00070 const T1& obj1, const T2& obj2, const T3& obj3, const T4& obj4)
00071 {
00072 return iof_private::fmtr_out(out, fmt) << obj1 << obj2 << obj3 << obj4;
00073 }
00074
00075
00076 template <typename T1, typename T2, typename T3, typename T4, typename T5>
00077 inline
00078 bool prints(std::ostream& out, const char* fmt, const T1& obj1,
00079 const T2& obj2, const T3& obj3, const T4& obj4, const T5& obj5)
00080 {
00081 return iof_private::fmtr_out(out, fmt) << obj1 << obj2 << obj3 << obj4 << obj5;
00082 }
00083
00084
00085 template <typename T1, typename T2, typename T3, typename T4, typename T5, typename T6>
00086 inline
00087 bool prints(std::ostream& out, const char* fmt, const T1& obj1,
00088 const T2& obj2, const T3& obj3, const T4& obj4, const T5& obj5,
00089 const T6& obj6)
00090 {
00091 return iof_private::fmtr_out(out, fmt) << obj1 << obj2 << obj3 << obj4 << obj5 << obj6;
00092 }
00093
00094
00095 template <typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7>
00096 inline
00097 bool prints(std::ostream& out, const char* fmt, const T1& obj1,
00098 const T2& obj2, const T3& obj3, const T4& obj4, const T5& obj5,
00099 const T6& obj6, const T7& obj7)
00100 {
00101 return iof_private::fmtr_out(out, fmt) << obj1 << obj2 << obj3 << obj4 << obj5 << obj6 << obj7;
00102 }
00103
00104
00105 template <typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8>
00106 inline
00107 bool prints(std::ostream& out, const char* fmt, const T1& obj1,
00108 const T2& obj2, const T3& obj3, const T4& obj4, const T5& obj5,
00109 const T6& obj6, const T7& obj7, const T8& obj8)
00110 {
00111 return iof_private::fmtr_out(out, fmt) << obj1 << obj2 << obj3 << obj4 << obj5 << obj6 << obj7 << obj8;
00112 }
00113
00114
00115 template <typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8, typename T9>
00116 inline
00117 bool prints(std::ostream& out, const char* fmt, const T1& obj1,
00118 const T2& obj2, const T3& obj3, const T4& obj4, const T5& obj5,
00119 const T6& obj6, const T7& obj7, const T8& obj8, const T9& obj9)
00120 {
00121 return iof_private::fmtr_out(out, fmt) << obj1 << obj2 << obj3 << obj4 << obj5 << obj6 << obj7 << obj8 << obj9;
00122 }
00123
00124
00125 template <typename T1, typename T2, typename T3, typename T4, typename T5, typename T6,
00126 typename T7, typename T8, typename T9, typename T10>
00127 inline
00128 bool prints(std::ostream& out, const char* fmt, const T1& obj1,
00129 const T2& obj2, const T3& obj3, const T4& obj4, const T5& obj5,
00130 const T6& obj6, const T7& obj7, const T8& obj8, const T9& obj9, const T10& obj10)
00131 {
00132 return iof_private::fmtr_out(out, fmt) << obj1 << obj2 << obj3 << obj4 << obj5 << obj6 << obj7 << obj8 << obj9 << obj10;
00133 }
00134
00135
00136 }
00137
00138 #endif // IOF_PRINT_H
00139
00140