簡體   English   中英

如何檢查C ++編譯器是否使用IEEE 754浮點標准

[英]How to check if C++ compiler uses IEEE 754 floating point standard

我想問一個跟隨這個問題的問題,如果編譯器使用標准,那么定義檢查可以很好地回答這個問題。 然而,這只適用於C。 有沒有辦法在C ++中做同樣的事情?

我不希望將浮點類型轉換為文本或使用一些非常復雜的轉換函數。 我只需要編譯器檢查。 如果您知道此類兼容編譯器的列表,請發布鏈接。 我找不到。

實際上,你有一種更簡單的方法來實現這一點。 從C ++標准18.2.1.1 ,類numeric_limits存在於std 要訪問所述靜態成員,您只需執行以下操作:

std::numeric_limits<double>::is_iec559;

要么:

std::numeric_limits<float>::is_iec559;

如果正在使用IEEE 754,則應該返回true ,否則返回false。

作為一種替代方法, Adam的答案的第二部分也應該用於C ++。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM