首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >谁创造了统一(或统一)赋值操作符这个术语?

谁创造了统一(或统一)赋值操作符这个术语?
EN

Stack Overflow用户
提问于 2012-01-23 07:41:17
回答 2查看 795关注 0票数 7

C++维基书指的是

..。在C++0x中,这样的赋值运算符称为统一赋值运算符,因为它不需要编写两个不同的赋值运算符.

对于接受其值的类类型的赋值操作符:

代码语言:javascript
复制
String & operator = (String s) // the pass-by-value parameter serves as a temporary
{
   s.swap (*this); // Non-throwing swap
   return *this;
}

我试着搜索这个词,但似乎并没有得到广泛的使用。

它是从哪里来的?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-01-23 08:04:24

它似乎是指发生在正式类型系统中的统一。其思想是,如果只有通过一定的合法替代才能将r值和l值统一到同一类型(统一),那么分配就形成了良好的形式。

维基百科声称,这个想法最初是由约翰·艾伦·罗宾逊给予有意义的关注(可能还有它的名字)。

票数 4
EN

Stack Overflow用户

发布于 2012-01-23 07:49:42

我不知道是谁写的,但维基的书错了。“统一”这个词在c++0x“标准”中完全没有出现过一次(你真的应该使用"C++11“这个词,它是在2011年8月批准的)。

正确的术语是复制省略。来自C++0x (n3242,我在不花钱的情况下最后能得到的),12.8 Copying and moving class objects, /34

当满足某些条件时,即使对象的复制/移动构造函数和/或析构函数有副作用,也允许实现省略类对象的复制/移动构造。 在这种情况下,实现将省略的复制/移动操作的源和目标视为引用同一对象的两种不同方式,并且该对象的销毁发生在如果不进行优化就会销毁这两个对象的晚些时候。 这种复制/移动操作,称为复制省略,允许在下列情况下(可合并以消除多个副本).

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8968452

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档