--- /dev/null
+////////////////////////////////////////////////////////////////////////////////\r
+\r
+// Author: Andy Rushton\r
+// Copyright: (c) Southampton University 1999-2004\r
+// (c) Andy Rushton 2004-2009\r
+// License: BSD License, see ../docs/license.html\r
+\r
+////////////////////////////////////////////////////////////////////////////////\r
+#include "string_pair.hpp"\r
+\r
+namespace stlplus\r
+{\r
+\r
+ ////////////////////////////////////////////////////////////////////////////////\r
+ // any forward iterator sequence\r
+\r
+ template <typename I, typename S>\r
+ std::string sequence_to_string(I begin,\r
+ I end, \r
+ S to_string,\r
+ const std::string& separator)\r
+ {\r
+ std::string result;\r
+ for (I i = begin; i != end; i++)\r
+ {\r
+ if (i != begin) result += separator;\r
+ result += to_string(*i);\r
+ }\r
+ return result;\r
+ }\r
+\r
+ ////////////////////////////////////////////////////////////////////////////////\r
+ // any sequence where the value is a pair\r
+\r
+ template <typename I, typename S1, typename S2>\r
+ std::string pair_sequence_to_string(I begin,\r
+ I end,\r
+ S1 to_string_fn1,\r
+ S2 to_string_fn2,\r
+ const std::string& pair_separator,\r
+ const std::string& separator)\r
+ {\r
+ std::string result;\r
+ for (I i = begin; i != end; i++)\r
+ {\r
+ if (i != begin) result += separator;\r
+ result += pair_to_string(*i, to_string_fn1, to_string_fn2, pair_separator);\r
+ }\r
+ return result;\r
+ }\r
+\r
+ ////////////////////////////////////////////////////////////////////////////////\r
+\r
+} // end namespace stlplus\r