如何解决“ fpclassify”:对重载函数的歧义调用

帕特里克7

我是C ++的新手。我已经获得了安装模拟的任务,但是我一直遇到错误代码。我能够解决其中大多数问题,但是我不确定其中有一个如何解决的问题。

错误代码为C2668,其描述为“ fpclassify”:对重载函数的歧义调用。项目为“运行仿真”,文件为415行上的corecrt_math.h。

老实说,我不确定所提供的任何信息是否有用,也不确定要提供什么信息。如果您能问我一些问题,并尽我所能回答这些问题,可能会更好一些?我包含了Visual Studio 19的屏幕截图。

视觉工作室
(点击图片放大)

可重现的示例(演示

#include <cmath>

int main() {
    std::isnan(1);
}

预期结果:可以编译。

泰德·林格莫

您可能std::fpclassify以某种方式了一个整数。Visual Studio有一个整数重载的问题,该<cmath>函数的重载类似于您的情况,而不是double按照以下方式将整数强制转换为a

c.math.syn#2.2

[…] if any argument of arithmetic type corresponding to a double parameter has type double or an integer type, then all arguments of arithmetic type corresponding to double parameters are effectively cast to double.

I wrote an error report for std::signbit but it's the same for all <cmath> functions that I've tested and std::fpclassify is one of them - and it's used internally by many other cmath functions.

Line 415 in corecrt_math.h is within the isnan function which calls fpclassify internally.

Steps to fix the problem:

  • When you build your project you'll get a list of errors in the Error List box. Look for lines showing see reference to function template instantiation 'bool isnan<int>(_Ty) noexcept' being compiled or similar. The <int> part may be any integer type.
  • 双击该行,IDE会将光标放在对isnan整数的调用上
  • 呼叫替换为isnan(integer)isnan(static_cast<double>(integer))
  • cmath引起问题的任何其他功能重复这些步骤

注意:isnan与整数一起使用是没有意义的。会始终返回,因此启用了优化功能的编译器应将整个调用替换为isnan(integer)falsefalse

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何解决方法引用中的重载歧义?

来自分类Dev

如何解决对重载定义的歧义引用

来自分类Dev

如何解决这种歧义?

来自分类Dev

如何解决函数调用?

来自分类Dev

模板编程:对重载函数的歧义调用

来自分类Dev

解决重载函数的歧义

来自分类Dev

对重载整数构造函数的歧义调用

来自分类Dev

如何解决我的GADT中的歧义

来自分类Dev

如何消除重载函数的歧义

来自分类Dev

如何使用SFINAE解决重载函数中的歧义

来自分类Dev

C ++模板和对重载函数的歧义调用

来自分类Dev

如何解决传递给Boost线程的函数中的歧义

来自分类Dev

函数返回零如何解决呢?

来自分类Dev

如何解决和解决lambda函数问题?

来自分类Dev

如何解决给定x的函数?

来自分类Dev

如何解决def函数运行问题

来自分类Dev

如何解决php中的smarty函数?

来自分类Dev

在这种情况下,jvm如何解决对重载方法的调用?

来自分类Dev

如何解决“无参数构造函数”

来自分类Dev

如何解决这种歧义?

来自分类Dev

如何解决函数调用?

来自分类Dev

如何解决这样的比例函数?

来自分类Dev

如何使用SFINAE解决重载函数中的歧义

来自分类Dev

C ++模板和对重载函数的歧义调用

来自分类Dev

如何解决以下代码中的函数重载歧义

来自分类Dev

如何解决javascript“不是函数”错误

来自分类Dev

如何解决钻石问题的这种歧义

来自分类Dev

如何解决cucumberjs中的歧义问题?

来自分类Dev

如何解决聚合函数错误?