[问题] (已解决)特殊的变量/函式宣告方式的意义

楼主: 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