Cpp List Initialization

本文探讨了C++中引入list initialization的原因及其对对象构造精确性的影响。文章对比了直接初始化与拷贝初始化的不同,并解释了这些变化如何帮助实现零抽象的目标。

委员会们关心的是对象构造的精确性,所以增加了个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++.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值