簡體   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