[問題] (已解決)特殊的變數/函式宣告方式的意義

作者: layu19920414 (Guan-Jie Huang)   2017-11-11 03:22:31
可能有點標題內文不符,
是說昨天在leetcode上面看到一段code,
他函式/變數的宣告方式有點複雜,
具體code如下:
static int SPEED_UP = [](){
ios_base::sync_with_stdio(false);
cin.tie(0);
return 0;
}();
完整的code則在此 https://goo.gl/LY6wAQ 。
大概可以理解這是不執行cin清buffer的動作,
可是那個 [](){ … }() 是第一次看到這寫法,
也不知道如何具體描述並且查詢,
也不太像跟命令式/表達句相關的東西,
還請各位熟門路的老司機帶個路惹QAQ
作者: bibo9901 (function(){})()   2017-11-11 03:24:00
c++11的lambda
作者: layu19920414 (Guan-Jie Huang)   2017-11-11 03:32:00
太神惹 感謝一樓XD
作者: james732 (好人超)   2017-11-11 20:37:00
這個寫法可以讓這個function在main之前執行嗎?
作者: kingofsdtw (不能閒下來!!)   2017-11-11 21:53:00
有神快拜!!
作者: LPH66 (-6.2598534e+18f)   2017-11-11 23:05:00
@james 它是 static global 啊[](){...} 是個 lambda, 在它後面貼個 () 呼叫它
作者: james732 (好人超)   2017-11-12 00:24:00
不使用lambda有辦法達到一樣的效果嗎?剛剛在想用lambda有什麼好處,就看到後面的()
作者: loveflames (咕啾咕啾魔法陣)   2017-11-12 00:37:00
functor啊
作者: CoNsTaR ((const *))   2017-11-12 02:28:00
用 lambda 有閉包,不知道算不算好處啦
作者: Ommm5566 (56天團)   2017-11-12 09:43:00
跟std的algorithm搭配神方便 又可以限制scope好用度算是僅次於type deduction吧
作者: loveflames (咕啾咕啾魔法陣)   2017-11-12 09:59:00
functor得將class設計成滿足STL需求,lambda不用考慮這些話說動態初始化是否在main之前是implementation-defined
作者: james732 (好人超)   2017-11-12 13:26:00
咦所以這個function什麼時候被呼叫是看實作的?
作者: loveflames (咕啾咕啾魔法陣)   2017-11-12 15:44:00
http://en.cppreference.com/w/cpp/language/initialization裡面的deferred dynamic initialization

Links booklink

Contact Us: admin [ a t ] ucptt.com