与现有的普通函数是否匹配, 如果匹配(也就是和()一致时)则调用, 否则编译失败
两个版本的函数同时存在, 优先调用initializer_list版本的函数
当使用()进行调用时, 则只能使用普通版本的函数调用...具体的接口通常是使用了range-for进行转交
标准的{}和()不同, ()允许参数自动窄化, 但是{}不允许
min和max和其它一些STL算法现在也有了对应的initializer_list版本了...因此如果目标模板有多个参数但是我们只想传递一个参数的话, 可以利用模板别名将默认值进行包装, 从而减少需要传递的模板参数数量....这里来从比较底层的角度解释lambda的特性
lambda可以视作一个匿名的函数对象, 其默认是内联的因此会在调用点自动展开, 减少上下文切换的开销....但是要注意VS的编译器尽管早就支持了新版本的C++但是由于设计上的问题, 直到今日这个值的定义默认依然是199711, 不过新版本的VS允许用户自己改变这个值了.