把auto帶回家

2022-05-08 11:09:12 字數 899 閱讀 5728

c++0x把 auto 關鍵字改成了 自動型別宣告關鍵字。

比如:map> >::const_iterator it = c.begin();

可以寫成

auto it = c.begin();

因為型別可以從 c.begin()推導,所以前面的型別宣告是重複的。dry(don't repeat yourself)

gcc 4.4 就開始支援這 c++ 0x特性, visual c++ 2010也支援。

但我們平時使用的 gcc 很多版本都還很低,這該怎麼辦呢?

gcc 擴充套件 typeof 幫你忙

linux中也有**使用 typeof

上例可以改成:

typeof(c.begin) it = c.begin();

**少了很多,但是 c.begin()還是重複了。不過這次的重複是文字上的重複,好解決,巨集。

#define auto_type(name, value)  typeof(value) a = (value)

那麼上例可以改成:

auto_type(it, c.begin());

js, php等指令碼使用 var來定義變數,可以改的更直觀

#define var(name, op, value) typeof(value) name = (value)

使用:var( it, =, c.begin());

漂亮多了吧。

以後,用這個巨集,就可以減少很多**重複了。嘿嘿,不錯,沒有c++0x,日子也能湊合著過。

背景知識:

typeof是gcc的擴充套件關鍵字, c++0x 把它標準化為 decltype

typeof 就像是 sizeof, 只是sizeof取的是大小, typeof取的是型別。

妻把情人帶回家謊稱遠方親戚

父親是生意人,母親是單位領導。在我的記憶裡,父母陪同我的時間很少。大多時候,我都是和保姆阿姨一起度過。保姆阿姨是個兩面派女人,在我父母面前,對我很好,當父母不在家時,經常對我咆哮。好幾次,我請求爸媽辭掉保姆,並希望父母能多陪陪我,但被父母拒絕了。我的童年 沒有親情,只有驚嚇。似乎習慣了被人欺負,以至...

清明小長假 海爾空氣淨化器把健康帶回家

清明節到了,陽光靜好,百花盛開,很多人都想趁著春光去旅遊 去踏青。但是,也有大部分人想利用 3 天的小長假 宅 在家 休養生息 雖說 萬物清明 可這個季節也總讓人捉摸不定,各種汙染也會隨著氣溫的回公升而 生髮 所以外出旅遊一定要謹防花粉過敏 細菌 灰塵的侵襲。當然,呆在家也不意味著足夠的安全,室內的...

別把緊張情緒帶回家 下班後的10個最佳放鬆法

在經歷了一天激烈的打拼後,不少職場中人會將工作場所的緊張情緒帶回家中,回到家中仍然無法放鬆。如果發生這種情況,試試以下10種調節方法,它們能夠幫助你從辦公狀態調整到居家狀態 1 將工作留在辦公室 下班時盡量不要將工作帶回家中 即使是迫不得已,每週在家裡工作不能超過兩個晚上 2 提前為下班做準備 在下...