3
我想寫一個函數,檢查float
,double
或long double
完全符合IEEE-754格式。我的意思是:返回浮點類型是否完全符合IEEE-754的函數?
我認爲std::numeric_limits<T>::is_iec559
是對應於,但它long double
在我的Linux 64返回true
bits其中sizeof(long double) = 16 bytes
但內部編碼在80-bit
英特爾格式。那麼該怎麼做?
80位英特爾格式**是符合IEEE-754格式的格式(具體來說,它滿足第3.7節中定義的「binary64擴展」格式的要求)。我想你想要一個謂詞來指定一個格式是否是IEEE-754「基本格式」(或可能是「交換格式」);這比'is_iec559'聲稱表示的更具體的要求。 –
由於內存對齊的要求,我經常在x86_32上看到'sizeof(long double)'爲12個字節,在x86_64 GNU G ++上看到16個字節。 –