VSO_0180466_algorithm_overhauls: Suppress -Wcharacter-conversion for Clang 21 by YexuanXiao · Pull Request #5657 · microsoft/STL (original) (raw)

template <template <class, class> class Test, class Left>
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
}