12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849 |
- // Copyright (c) 2001-2010 Hartmut Kaiser
- //
- // Distributed under the Boost Software License, Version 1.0. (See accompanying
- // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
- // The purpose of this example is to show how a simple custom generator
- // directive can be written. We develop a custom generator allowing to wrap
- // the generated output after each 5th column.
- //
- // For more information see: http://boost-spirit.com/home/?page_id=659
- #include <boost/spirit/include/karma_generate_attr.hpp>
- #include <boost/spirit/include/karma_char.hpp>
- #include <boost/spirit/include/karma_operator.hpp>
- #include <boost/spirit/include/karma_numeric.hpp>
- #include <string>
- #include "simple_columns_directive.hpp"
- namespace karma = boost::spirit::karma;
- int main()
- {
- using custom_generator::columns;
- std::vector<int> v;
- for (int i = 0; i < 17; ++i)
- v.push_back(i);
- std::string generated;
- std::back_insert_iterator<std::string> sink(generated);
- bool result = karma::generate_delimited(
- sink, columns[*karma::int_], karma::space, v);
- if (result)
- {
- std::cout << "-------------------------------- \n";
- std::cout << "Generation succeeded\n";
- std::cout << "generated output: " << "\n" << generated << "\n";
- std::cout << "-------------------------------- \n";
- }
- else
- {
- std::cout << "-------------------------------- \n";
- std::cout << "Generation failed\n";
- std::cout << "-------------------------------- \n";
- }
- return 0;
- }
|