一种 C++20 以前封装 SFINAE 的办法:
template<class T, class = std::enable_if_t<std::is_arithmetic_v<T>>>
using Arithmetic = T;
template<class T>
void foo(Arithmetic<T>);
和 C++20 的 concept 写法很近似了:template<class T>
concept Arithmetic = std::is_arithmetic_v<T>;
template<Arithmetic T>
void foo(T);