委员会们关心的是对象构造的精确性,所以增加了个list initialization
CPP reference 的文档编写者,在他们脑袋里面是有picture的,但是在我们读者看来就是,wtf? 总的来说就是那种懂的都懂的解释
为什么要出现这种都行,第一cpp 11 之前是允许narrow conversion的, 为了让我们的对象被精确的构造,从而实现zero abstraction 的伟大目标,加了这个list initialization ,
第一种就是为了区分是不是aggregate type , 所谓的aggregate type简单来说就是数组类型或者你没有搞花里胡哨constructor的类型,那么有两种策略就是 直接初始化和拷贝初始化
拷贝初始化一般跟等号挂钩,直接初始化一般跟pvalue挂钩,作为copy elision的一部分
看了cpp reference那么多情况,我想那帮人真的能记住这么多situation吗。。
zero initialization, direct initializaion , default initialization , copy initiliazation
Does a language need that much complexity?
果然, cppcon 有老哥 做了个演讲,the nightmare of Initialization in C++.