首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在g++中使用std::copysign

在g++中使用std::copysign
EN

Stack Overflow用户
提问于 2016-11-28 23:09:20
回答 1查看 1K关注 0票数 0

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

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

到目前为止,这是有效的,除了没有包括cmath在内的std::copysign。所以我必须使用不带名称空间的copysign。

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

PS:我不想仅仅因为名称空间不兼容而手动管理不同平台上的相同文件。

编译标志为:

代码语言:javascript
复制
-c -fmessage-length=0 -MT"$@" -mcpu=cortex-a9 -mfpu=vfpv3 -mfloat-abi=hard -std=c++11
EN

回答 1

Stack Overflow用户

发布于 2016-11-28 23:16:05

你可以为msvc创建一个宏。

代码语言:javascript
复制
#if defined(_MSC_VER) 
#define copysign std::copysign
#endif

但是,c++11应该具有std名称空间。如果你不是在启用c++11的情况下编译,你可能会得到一组更老的库?我会去确认一下你是不是。如果你不能在你的平台上使用c++11编译,那么上面的方法应该可以工作。如果需要,可以添加更多的预处理器标志来瞄准更多的平台。

另一种选择是

代码语言:javascript
复制
using namespace std;

这将涵盖这两种情况。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40847529

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档