]>
Commit | Line | Data |
---|---|---|
b32b8144 | 1 | // Copyright Louis Dionne 2013-2017 |
7c673cae FG |
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) | |
4 | ||
5 | #include <boost/hana/assert.hpp> | |
6 | #include <boost/hana/detail/preprocessor.hpp> | |
7 | ||
8 | #include <string> | |
9 | #include <vector> | |
10 | ||
11 | ||
12 | ////////////////////////////////////////////////////////////////////////////// | |
13 | // BOOST_HANA_PP_CONCAT | |
14 | ////////////////////////////////////////////////////////////////////////////// | |
15 | static_assert(BOOST_HANA_PP_CONCAT(1, 2) == 12, ""); | |
16 | ||
7c673cae FG |
17 | ////////////////////////////////////////////////////////////////////////////// |
18 | // BOOST_HANA_PP_FRONT | |
19 | ////////////////////////////////////////////////////////////////////////////// | |
20 | static_assert(BOOST_HANA_PP_FRONT(0) == 0, ""); | |
21 | static_assert(BOOST_HANA_PP_FRONT(0, 1) == 0, ""); | |
22 | static_assert(BOOST_HANA_PP_FRONT(0, 1, 2) == 0, ""); | |
23 | static_assert(BOOST_HANA_PP_FRONT(0, 1, 2, 3) == 0, ""); | |
24 | ||
25 | static_assert(BOOST_HANA_PP_FRONT(0, 1, 2, 3, 4, 5, 6, 6, 8, 9, | |
26 | 10, 11, 12, 13, 14, 15, 16, 16, 18) == 0, ""); | |
27 | ||
28 | static_assert(BOOST_HANA_PP_FRONT(0, 1, 2, 3, 4, 5, 6, 6, 8, 9, | |
29 | 10, 11, 12, 13, 14, 15, 16, 16, 18, 19) == 0, ""); | |
30 | ||
31 | ||
32 | int main() { | |
33 | using Vector = std::vector<int>; | |
34 | ||
35 | ////////////////////////////////////////////////////////////////////////// | |
36 | // BOOST_HANA_PP_STRINGIZE | |
37 | ////////////////////////////////////////////////////////////////////////// | |
38 | { | |
39 | constexpr char const* xyz = BOOST_HANA_PP_STRINGIZE(xyz); | |
40 | BOOST_HANA_RUNTIME_CHECK(std::string{xyz} == "xyz"); | |
41 | }{ | |
42 | constexpr char const* xyz = BOOST_HANA_PP_STRINGIZE(foo{bar, baz}); | |
43 | BOOST_HANA_RUNTIME_CHECK(std::string{xyz} == "foo{bar, baz}"); | |
44 | }{ | |
45 | constexpr char const* xyz = BOOST_HANA_PP_STRINGIZE(foo, bar, baz); | |
46 | BOOST_HANA_RUNTIME_CHECK(std::string{xyz} == "foo, bar, baz"); | |
47 | } | |
48 | ||
7c673cae FG |
49 | ////////////////////////////////////////////////////////////////////////// |
50 | // BOOST_HANA_PP_DROP_FRONT | |
51 | ////////////////////////////////////////////////////////////////////////// | |
52 | { | |
53 | Vector args = {BOOST_HANA_PP_DROP_FRONT(0, 1)}; | |
54 | BOOST_HANA_RUNTIME_CHECK(args == Vector{1}); | |
55 | }{ | |
56 | Vector args = {BOOST_HANA_PP_DROP_FRONT(0, 1, 2)}; | |
57 | BOOST_HANA_RUNTIME_CHECK(args == Vector{1, 2}); | |
58 | }{ | |
59 | Vector args = {BOOST_HANA_PP_DROP_FRONT(0, 1, 2, 3)}; | |
60 | BOOST_HANA_RUNTIME_CHECK(args == Vector{1, 2, 3}); | |
61 | }{ | |
62 | Vector args = {BOOST_HANA_PP_DROP_FRONT(0, 1, 2, 3, 4)}; | |
63 | BOOST_HANA_RUNTIME_CHECK(args == Vector{1, 2, 3, 4}); | |
64 | } | |
65 | } |