繁体   English   中英

在g ++中使用std :: copysign

[英]Using std::copysign with g++

我只是使用std :: copysign找出了测试平台之间的一些不兼容性。

在第一次测试中,我尝试在MSVC中测试一些算法。 现在,我尝试将c ++(11)代码移植到Xilinx Zynq平台(A9 + FPGA)。

到目前为止,除了没有cmd的std :: copysign之外,这都可以工作。 因此,我必须使用不带名称空间的copysign。

将此功能添加到名称空间的正确方法是什么?

PS:我不想仅出于命名空间不兼容性而在不同平台上手动管理相同文件。

编译标志为:

-c -fmessage-length=0 -MT"$@" -mcpu=cortex-a9 -mfpu=vfpv3 -mfloat-abi=hard -std=c++11

您可以为msvc创建一个宏。

#if defined(_MSC_VER) 
#define copysign std::copysign
#endif

但是,c ++ 11应该具有std名称空间。 如果您未使用启用的c ++ 11进行编译,则可能会得到一组较旧的库? 我会检查以确保您的身份。 如果您无法在自己的平台上使用c ++ 11进行编译,则上述方法应该可以使用。 如果需要,添加更多预处理器标志以定位更多平台。

另一种选择是

using namespace std;

这将涵盖两种情况。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM