diff --git a/gsl/gsl_byte b/gsl/gsl_byte index ab5e4e3..9962ab4 100644 --- a/gsl/gsl_byte +++ b/gsl/gsl_byte @@ -103,7 +103,7 @@ inline constexpr byte operator~(byte b) noexcept { return byte(~static_cast::value>> inline constexpr IntegerType to_integer(byte b) noexcept { - return {b}; + return static_cast(b); } template diff --git a/tests/byte_tests.cpp b/tests/byte_tests.cpp index 59ff0cd..3bbf382 100644 --- a/tests/byte_tests.cpp +++ b/tests/byte_tests.cpp @@ -96,6 +96,24 @@ SUITE(byte_tests) a >>= 4; CHECK(a == to_byte<0x0F>()); } + + TEST(to_integer) + { + byte b = to_byte<0x12>(); + + CHECK(0x12 == gsl::to_integer(b)); + CHECK(0x12 == gsl::to_integer(b)); + CHECK(0x12 == gsl::to_integer(b)); + CHECK(0x12 == gsl::to_integer(b)); + + CHECK(0x12 == gsl::to_integer(b)); + CHECK(0x12 == gsl::to_integer(b)); + CHECK(0x12 == gsl::to_integer(b)); + CHECK(0x12 == gsl::to_integer(b)); + +// CHECK(0x12 == gsl::to_integer(b)); // expect compile-time error +// CHECK(0x12 == gsl::to_integer(b)); // expect compile-time error + } } }