C++ 模板化类型的最小/最大值

C++ 模板化类型的最小/最大值,c++,templates,C++,Templates,我有一个相当基本的问题。假设我有一个模板函数: bool is_max(std::uint32_t val) { return (val == std::numeric_limits<uint32_t>::max()); } bool是最大值(std::uint32\u t val){ 返回值(val==std::numeric_limits::max()); } 但是,为了使我的功能更灵活,我希望使用模板: template <typename T> bool

我有一个相当基本的问题。假设我有一个模板函数:

bool is_max(std::uint32_t val) {
  return (val == std::numeric_limits<uint32_t>::max());
}
bool是最大值(std::uint32\u t val){
返回值(val==std::numeric_limits::max());
}
但是,为了使我的功能更灵活,我希望使用模板:

template <typename T>
bool is_max(T val) {
  return (val == ???);
}
模板
布尔值为最大值(T val){
返回值(val=?);
}
std::numeric_limits函数可用于内置类型,但显然不适用于用户定义的类型


当前内置的和大多数数字类型(我正在尝试使用)是否有一些标准运算符或函数可以在此处用于查找最小/最大值?

处理此问题的方法是继续使用
std::numeric\u limits
,并为所有所需的输入类型添加模板专门化

引述:

实施可能为实施特定类型提供
std::numeric_限制的专门化:例如,GCC提供
std::numeric_限制
。非标准库可能会为库提供的类型添加专门化,例如,OpenEXR为16位浮点类型提供
std::numeric_limits


处理此问题的方法是继续使用
std::numeric\u limits
,并为所有所需的输入类型添加模板专门化

引述:

实施可能为实施特定类型提供
std::numeric_限制的专门化:例如,GCC提供
std::numeric_限制
。非标准库可能会为库提供的类型添加专门化,例如,OpenEXR为16位浮点类型提供
std::numeric_limits


您可以为自己的类型创建
std::numeric\u limits
的专门化您可以为自己的类型创建
std::numeric\u limits
的专门化