blob: 9c06319885c6aba1403310b72b5f36652b3f82d4 [file] [log] [blame]
Brian Silverman59623332018-08-04 23:36:56 -07001// (C) Copyright Jeremy Siek 2001-2004.
2// Distributed under the Boost Software License, Version 1.0. (See
3// accompanying file LICENSE_1_0.txt or copy at
4// http://www.boost.org/LICENSE_1_0.txt)
5
6// Revision History:
7
8// 27 Feb 2001 Jeremy Siek
9// Initial checkin.
10
11#include <iostream>
12#include <string>
13#include <vector>
14
15#include <boost/function_output_iterator.hpp>
16
17struct string_appender
18{
19 string_appender(std::string& s)
20 : m_str(&s)
21 {}
22
23 void operator()(const std::string& x) const
24 {
25 *m_str += x;
26 }
27
28 std::string* m_str;
29};
30
31int main(int, char*[])
32{
33 std::vector<std::string> x;
34 x.push_back("hello");
35 x.push_back(" ");
36 x.push_back("world");
37 x.push_back("!");
38
39 std::string s = "";
40 std::copy(x.begin(), x.end(),
41 boost::make_function_output_iterator(string_appender(s)));
42
43 std::cout << s << std::endl;
44
45 return 0;
46}