]>
git.proxmox.com Git - ceph.git/blob - ceph/src/boost/libs/hana/example/reverse_fold.cpp
5ecf535931b55b847874504679a70ec2446eacbf
1 // Copyright Louis Dionne 2013-2022
2 // Distributed under the Boost Software License, Version 1.0.
3 // (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
5 #include <boost/hana/assert.hpp>
6 #include <boost/hana/reverse_fold.hpp>
7 #include <boost/hana/tuple.hpp>
11 namespace hana
= boost::hana
;
14 auto to_string
= [](auto x
) {
15 std::ostringstream ss
;
21 auto f
= [=](std::string s
, auto element
) {
22 return "f(" + s
+ ", " + to_string(element
) + ")";
25 // With an initial state
26 BOOST_HANA_RUNTIME_CHECK(
27 hana::reverse_fold(hana::make_tuple(1, '2', 3.0, 4), "5", f
)
29 "f(f(f(f(5, 4), 3), 2), 1)"
32 // Without an initial state
33 BOOST_HANA_RUNTIME_CHECK(
34 hana::reverse_fold(hana::make_tuple(1, '2', 3.0, 4, "5"), f
)
36 "f(f(f(f(5, 4), 3), 2), 1)"