对于float类型,std :: equal_to是否可靠?

Ale*_*lex 2 c++ equality std floating-accuracy

更确切的说,做std::equal_to<float>()(float a,float b)std::equal_to<double>()(double a,double b)没有的要好一些漂浮平等喜欢abs(diff) < EPSILON或只是a==b

Bri*_*ian 7

std::equal_to用于==执行比较.如果你想与容差进行比较,你必须自己写.(或使用图书馆.)

  • @Nawaz*导致未定义的行为,除非声明取决于用户定义的外部链接名称* (4认同)
  • C++ 11的相关引用是*"只有当声明取决于用户定义的类型且专业化符合原始标准库要求时,程序才可以为任何标准库模板添加模板专用化到命名空间`std`模板并没有明确禁止."*(17.6.4.2.1 [namespace.std]) (3认同)
  • @Nawaz我认为您不允许在内置类型上专门化标准库模板. (2认同)