我真的不知道如何重命名以下功能。 该示例仅适用于模板特化。
template<typename A, typename B>
auto MAX(const A &one, const B &two) -> decltype(one > two ? one : two) {
static_assert(std::is_floating_point<A>::value || std::is_integral<A>::value, "ERROR - bigger(): template parameters not of type float or int\n");
static_assert(std::is_floating_point<B>::value || std::is_integral<B>::value, "ERROR - bigger(): template parameters not of type float or int\n");
return one > two ? one : two;
}
template<typename A, typename B>
const auto min = &MAX<A,B>;
使用:
const auto min = &MAX<float,float>;