]>
git.proxmox.com Git - ceph.git/blob - ceph/src/boost/libs/hana/example/cppcon_2014/matrix.cpp
ca29fcaa4b44a91de07f1357cb7d27ec7c2ac6ae
1 // Copyright Louis Dionne 2013-2016
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/integral_constant.hpp>
8 #include "matrix/comparable.hpp"
9 namespace hana
= boost::hana
;
10 using namespace cppcon
;
21 BOOST_HANA_CONSTEXPR_CHECK(hana::equal(
33 auto v
= vector(1, '2', hana::int_c
<3>, 4.2f
);
34 BOOST_HANA_CONSTEXPR_CHECK(v
.size() == 4ul);
35 BOOST_HANA_CONSTEXPR_CHECK(v
.nrows() == 4ul);
36 BOOST_HANA_CONSTEXPR_CHECK(v
.ncolumns() == 1ul);
43 row('4', hana::char_c
<'5'>, 6),
44 row(hana::int_c
<7>, '8', 9.3)
46 BOOST_HANA_CONSTEXPR_CHECK(m
.at(hana::int_c
<0>, hana::int_c
<0>) == 1);
47 BOOST_HANA_CONSTEXPR_CHECK(m
.at(hana::int_c
<0>, hana::int_c
<1>) == '2');
48 BOOST_HANA_CONSTEXPR_CHECK(m
.at(hana::int_c
<0>, hana::int_c
<2>) == 3);
50 BOOST_HANA_CONSTEXPR_CHECK(m
.at(hana::int_c
<1>, hana::int_c
<0>) == '4');
51 BOOST_HANA_CONSTANT_CHECK(m
.at(hana::int_c
<1>, hana::int_c
<1>) == hana::char_c
<'5'>);
52 BOOST_HANA_CONSTEXPR_CHECK(m
.at(hana::int_c
<1>, hana::int_c
<2>) == 6);
54 BOOST_HANA_CONSTANT_CHECK(m
.at(hana::int_c
<2>, hana::int_c
<0>) == hana::int_c
<7>);
55 BOOST_HANA_CONSTEXPR_CHECK(m
.at(hana::int_c
<2>, hana::int_c
<1>) == '8');
56 BOOST_HANA_CONSTEXPR_CHECK(m
.at(hana::int_c
<2>, hana::int_c
<2>) == 9.3);
59 // size, ncolumns, nrows
63 row('4', hana::char_c
<'5'>, 6)
65 BOOST_HANA_CONSTEXPR_CHECK(m
.size() == 6ul);
66 BOOST_HANA_CONSTEXPR_CHECK(m
.ncolumns() == 3ul);
67 BOOST_HANA_CONSTEXPR_CHECK(m
.nrows() == 2ul);