]>
git.proxmox.com Git - ceph.git/blob - ceph/src/boost/libs/hana/example/extend.cpp
1 // Copyright Louis Dionne 2013-2017
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/eval.hpp>
7 #include <boost/hana/extend.hpp>
8 #include <boost/hana/extract.hpp>
9 #include <boost/hana/lazy.hpp>
14 namespace hana
= boost::hana
;
18 T
read_one(std::istream
& s
) {
28 auto from_stream
= hana::extend(hana::make_lazy(read_one
<int>)(std::ref(s
)), [](auto i
) {
29 return hana::eval(i
) + 1;
32 BOOST_HANA_RUNTIME_CHECK(hana::extract(from_stream
) == 2);
33 BOOST_HANA_RUNTIME_CHECK(hana::extract(from_stream
) == 3);
34 BOOST_HANA_RUNTIME_CHECK(hana::extract(from_stream
) == 4);