Writes a string to an I/O object. Same as o.write(f). Provided for
completeness with the other print functions.
*/
-unsigned print(Base &o, const std::string &f)
+inline unsigned print(Base &o, const std::string &f)
{ return o.write(f); }
template<typename A1>
-unsigned print(Base &o, const std::string &f, A1 a1)
+inline unsigned print(Base &o, const std::string &f, A1 a1)
{ return o.write(format(f, a1)); }
template<typename A1, typename A2>
-unsigned print(Base &o, const std::string &f, A1 a1, A2 a2)
+inline unsigned print(Base &o, const std::string &f, A1 a1, A2 a2)
{ return o.write(format(f, a1, a2)); }
template<typename A1, typename A2, typename A3>
-unsigned print(Base &o, const std::string &f, A1 a1, A2 a2, A3 a3)
+inline unsigned print(Base &o, const std::string &f, A1 a1, A2 a2, A3 a3)
{ return o.write(format(f, a1, a2, a3)); }
template<typename A1, typename A2, typename A3, typename A4>
-unsigned print(Base &o, const std::string &f, A1 a1, A2 a2, A3 a3, A4 a4)
+inline unsigned print(Base &o, const std::string &f, A1 a1, A2 a2, A3 a3, A4 a4)
{ return o.write(format(f, a1, a2, a3, a4)); }
template<typename A1, typename A2, typename A3, typename A4, typename A5>
-unsigned print(Base &o, const std::string &f, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5)
+inline unsigned print(Base &o, const std::string &f, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5)
{ return o.write(format(f, a1, a2, a3, a4, a5)); }
} // namespace IO