[英]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.