2013-06-12 68 views
0

我有一個完整的用C++開發軟件的設計。我真的不想改變結構。以整數存儲錯誤值

但是,我有時會得到錯誤的輸出存儲在整數變量。輸出不是任何數字,輸出是NaN。但我不想添加任何其他變量來檢查我的整數變量是否有錯誤。

有沒有辦法將一個東西如NaN存儲在一個整型變量中?

+0

類似的問題:http://stackoverflow.com/questions/3949457/can-an-integer-be-nan-in-c基本上似乎是沒有。 –

+1

你想要像'std :: optional'而不使用它?有沒有南整數,所以要麼你可以負擔奢侈品爲此目的奉獻一個特殊的價值,或者你需要改變你的界面。 –

+0

@ShafikYaghmour謝謝,我做了搜索,但什麼也沒有。我提交了關閉請求。 – totten

回答

2

這不是魔術,它是信息論的基礎知識。 int是存儲範圍[INT_MIN,INT_MAX]中的值的東西。這是它所能做的,不多不多。

您僅限於使用int值,而您只能使用某個值作爲指標。如果這還不夠好,你必須重新考慮這個約束。

0

不,沒有價值,你可以存儲在一個整體類型,可以代表NaN

如果你需要存儲這個值,你將不得不重新考慮你的設計。這並不意味着添加一個新的變量,但你可能會改變一個現有的變量。例如,當前存儲此值的int變量可能是NaN,可能會更改爲boost::optional <int>之類的值。這樣,如果值爲NaN,則可能未設置,否則設置。

+0

有人不喜歡這個。我很想知道爲什麼。 –

+0

可選提供的性能與int相同嗎? – gnzlbg