2016-12-05 67 views
1

C++中有什么不同的功能,我可以替代功能晶圆厂()? 例如这样:用C++替换晶圆厂

fabs(tab[j][i]) > fabs(tab[max][i]) 
+7

为什么你需要更换它?它的工作方式与C早期的相同。 –

+1

此外,请仔细阅读标签维基,您使用的四个标签中的三个不适用于此。 –

回答

0

如果参数始终为double,我建议您仍使用fabs - 它更可靠。风险是:有时只有abs(int)将可见,因此您的double参数将被截断为int(但您可能会收到编译器警告)。

其中的一个原因是,直到C++ 17它不能保证一个单个报头包括abs(int)abs(double)<cmath>必须包含abs(double)<cstdlib>和必须含有abs(int),但是当然它们可以包含两者。所以,改变编译器可能会改变选择哪个超载。

又如:如果您#include"math.h"而不是<cmath>,并使用Visual C++,将abs(double)可见?这将是 - 到Visual Studio 2013,但是当你升级到Visual Studio 2015时,你会失去它。

当然,当其参数类型未知时,例如使用abs时,仍然应该使用它。它是模板的一部分。

+3

防止包含来自错误语言的标题? – Quentin

+0

@Quentin这只是一个例子,而不是最好的一个。我会更新答案。 – Eugene