mirror of
https://github.com/boostorg/hana.git
synced 2026-01-23 17:42:37 +00:00
55 lines
1.2 KiB
C++
55 lines
1.2 KiB
C++
/*
|
|
@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 <boost/hana/assert.hpp>
|
|
#include <boost/hana/pair.hpp>
|
|
using namespace boost::hana;
|
|
|
|
|
|
int main() {
|
|
|
|
{
|
|
|
|
//! [pair]
|
|
BOOST_HANA_CONSTEXPR_CHECK(first(pair(1, 'x')) == 1);
|
|
BOOST_HANA_CONSTEXPR_CHECK(second(pair(1, 'x')) == 'x');
|
|
//! [pair]
|
|
|
|
}{
|
|
|
|
//! [comparable]
|
|
BOOST_HANA_CONSTEXPR_CHECK(pair(1, 'x') == pair(1, 'x'));
|
|
BOOST_HANA_CONSTEXPR_CHECK(pair(2, 'x') != pair(1, 'x'));
|
|
BOOST_HANA_CONSTEXPR_CHECK(pair(1, 'y') != pair(1, 'x'));
|
|
//! [comparable]
|
|
|
|
}{
|
|
|
|
//! [orderable]
|
|
BOOST_HANA_CONSTEXPR_CHECK(pair(1, 'x') < pair(1, 'y'));
|
|
BOOST_HANA_CONSTEXPR_CHECK(pair(1, 'x') < pair(10, 'x'));
|
|
BOOST_HANA_CONSTEXPR_CHECK(pair(1, 'y') < pair(10, 'x'));
|
|
//! [orderable]
|
|
|
|
}{
|
|
|
|
//! [foldable]
|
|
BOOST_HANA_CONSTEXPR_CHECK(foldl(pair(1, 3), 0, plus) == 4);
|
|
BOOST_HANA_CONSTEXPR_CHECK(foldr(pair(1, 3), 0, minus) == -2);
|
|
//! [foldable]
|
|
|
|
}{
|
|
|
|
//! [product]
|
|
BOOST_HANA_CONSTEXPR_CHECK(make<Pair>(1, 'x') == pair(1, 'x'));
|
|
BOOST_HANA_CONSTEXPR_CHECK(first(pair(1, 'x')) == 1);
|
|
BOOST_HANA_CONSTEXPR_CHECK(second(pair(1, 'x')) == 'x');
|
|
//! [product]
|
|
|
|
}
|
|
|
|
}
|