| void test_all_numeric_types_impl() { |
| Test<Left, char>{}(); |
| Test<Left, signed char>{}(); |
| Test<Left, unsigned char>{}(); |
| Test<Left, wchar_t>{}(); |
| #ifdef __cpp_char8_t |
| Test<Left, char8_t>{}(); |
| #endif // __cpp_char8_t |
| Test<Left, char16_t>{}(); |
| Test<Left, char32_t>{}(); |
| Test<Left, short>{}(); |
| Test<Left, unsigned short>{}(); |
| Test<Left, int>{}(); |
| Test<Left, unsigned int>{}(); |
| Test<Left, long>{}(); |
| Test<Left, unsigned long>{}(); |
| Test<Left, long long>{}(); |
| Test<Left, unsigned long long>{}(); |
| Test<Left, float>{}(); |
| Test<Left, double>{}(); |
| Test<Left, long double>{}(); |
| } |
|
| template <template <class, class> class Test> |
| void test_all_numeric_types() { |
| test_all_numeric_types_impl<Test, char>(); |
| test_all_numeric_types_impl<Test, signed char>(); |
| test_all_numeric_types_impl<Test, unsigned char>(); |
| test_all_numeric_types_impl<Test, wchar_t>(); |
| #ifdef __cpp_char8_t |
| test_all_numeric_types_impl<Test, char8_t>(); |
| #endif // __cpp_char8_t |
| test_all_numeric_types_impl<Test, char16_t>(); |
| test_all_numeric_types_impl<Test, char32_t>(); |
| test_all_numeric_types_impl<Test, short>(); |
| test_all_numeric_types_impl<Test, unsigned short>(); |
| test_all_numeric_types_impl<Test, int>(); |
| test_all_numeric_types_impl<Test, unsigned int>(); |
| test_all_numeric_types_impl<Test, long>(); |
| test_all_numeric_types_impl<Test, unsigned long>(); |
| test_all_numeric_types_impl<Test, long long>(); |
| test_all_numeric_types_impl<Test, unsigned long long>(); |
| test_all_numeric_types_impl<Test, float>(); |
| test_all_numeric_types_impl<Test, double>(); |
| test_all_numeric_types_impl<Test, long double>(); |
| #ifdef __cpp_lib_byte |
| Test<byte, byte>{}(); |
| #endif // __cpp_lib_byte |
| } |