作者热门文章
- mongodb - 在 MongoDB mapreduce 中,如何展平值对象?
- javascript - 对象传播与 Object.assign
- html - 输入类型 ="submit"Vs 按钮标签它们可以互换吗?
- sql - 使用 MongoDB 而不是 MS SQL Server 的优缺点
与 Why is copy constructor called instead of conversion constructor? 有点相关
初始化有两种语法,直接初始化和复制初始化:
A a(b);
A a = b;
我想知道他们有不同定义行为的动机。对于拷贝初始化,涉及到一个额外的拷贝,我想不出那个拷贝有什么用途。由于它是临时拷贝,因此可以并且可能会对其进行优化,因此用户不能依赖它的发生-因此,额外的拷贝本身不足以引起不同的行为。那么……为什么?
最佳答案
只是一种猜测,但如果没有 Bjarne Stroustrup 确认它的真实情况,恐怕很难更确定:
之所以这样设计,是因为假定程序员会期望这样的行为,即他会期望在使用 = 符号时完成复制,而不是使用直接初始化语法来完成。
我认为可能的复制省略仅在标准的更高版本中添加,但我不确定 - 这是有人可以通过检查标准历史确定的。
关于c++ - 复制和直接初始化行为不同的动机是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11223285/
为了了解 Redux 的动机,我阅读了官方链接 https://redux.js.org/introduction/motivation还有这个 stackoverflow 问题 Explain Re
您好,这个 firebase 函数曾经可以工作,但知道它现在工作时间更长了,我收到此错误消息 Function returned undefined, expected Promise or valu
我是一名优秀的程序员,十分优秀!