/* @copyright Louis Dionne 2014 Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt) */ #include #include #include #include using namespace boost::hana; int main() { //! [main] auto to_string = [](auto x) { return (std::ostringstream{} << x).str(); }; auto show = [=](auto x, auto y) { return "(" + to_string(x) + " + " + to_string(y) + ")"; }; assert(scanr(show, 4, list(1, "2", '3')) == list( "(1 + (2 + (3 + 4)))", "(2 + (3 + 4))", "(3 + 4)", 4 )); //! [main] }