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
的专门化