File tree Expand file tree Collapse file tree 4 files changed +57
-0
lines changed
Expand file tree Collapse file tree 4 files changed +57
-0
lines changed Original file line number Diff line number Diff line change 88#include < boost/safe_numbers/unsigned_integers.hpp>
99#include < boost/safe_numbers/iostream.hpp>
1010#include < boost/safe_numbers/limits.hpp>
11+ #include < boost/safe_numbers/literals.hpp>
1112
1213#endif // BOOST_SAFENUMBERS_HPP
Original file line number Diff line number Diff line change @@ -34,6 +34,7 @@ run ../test/quick.cpp safe_numbers : : : <dependency>safe_numbers ;
3434run ../test/test_construct_unsigned_type.cpp safe_numbers : : : <dependency>safe_numbers ;
3535run ../test/test_limits.cpp safe_numbers : : : <dependency>safe_numbers ;
3636run ../test/test_unsigned_addition.cpp safe_numbers : : : <dependency>safe_numbers ;
37+ run ../test/test_unsigned_literals.cpp safe_numbers : : : <dependency>safe_numbers ;
3738
3839run ../test/compile_integer_type_properties.cpp safe_numbers : : : <dependency>safe_numbers ;
3940
Original file line number Diff line number Diff line change @@ -59,6 +59,7 @@ run test_limits.cpp ;
5959run limits_link_1.cpp limits_link_2.cpp limits_link_3.cpp ;
6060compile-fail compile_fail_unsigned_construction_from_bool.cpp ;
6161run test_unsigned_streaming.cpp ;
62+ run test_unsigned_literals.cpp ;
6263
6364# Compile Tests
6465compile compile_tests/compile_test_unsigned_integers.cpp ;
Original file line number Diff line number Diff line change 1+ // Copyright 2025 Matt Borland
2+ // Distributed under the Boost Software License, Version 1.0.
3+ // https://www.boost.org/LICENSE_1_0.txt
4+
5+ #include < boost/safe_numbers.hpp>
6+ #include < boost/core/lightweight_test.hpp>
7+
8+ using namespace boost ::safe_numbers;
9+ using namespace boost ::safe_numbers::literals;
10+
11+ template <typename T>
12+ void test ();
13+
14+ template <>
15+ void test<u8 >()
16+ {
17+ const auto good_value {42_u8};
18+ BOOST_TEST_EQ (good_value, u8 {42u });
19+ BOOST_TEST_THROWS (18446744073709551615_u8, std::overflow_error);
20+ }
21+
22+ template <>
23+ void test<u16 >()
24+ {
25+ const auto good_value {42_u16};
26+ BOOST_TEST_EQ (good_value, u16 {42u });
27+ BOOST_TEST_THROWS (18446744073709551615_u16, std::overflow_error);
28+ }
29+
30+ template <>
31+ void test<u32 >()
32+ {
33+ const auto good_value {42_u32};
34+ BOOST_TEST_EQ (good_value, u32 {42u });
35+ BOOST_TEST_THROWS (18446744073709551615_u32, std::overflow_error);
36+ }
37+
38+ template <>
39+ void test<u64 >()
40+ {
41+ const auto good_value {42_u64};
42+ BOOST_TEST_EQ (good_value, u64 {42u });
43+ BOOST_TEST_NO_THROW (BOOST_TEST_EQ (18446744073709551615_u64, u64 {18446744073709551615ULL }));
44+ }
45+
46+ int main ()
47+ {
48+ test<u8 >();
49+ test<u16 >();
50+ test<u32 >();
51+ test<u64 >();
52+
53+ return boost::report_errors ();
54+ }
You can’t perform that action at this time.
0 commit comments