热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

什么向后兼容性需要为rvalues分配?

如何解决《什么向后兼容性需要为rvalues分配?》经验,应该怎么弄,您有好建议吗?

C++ Primer 5th:

(代码也来自书中,这里提供了99%的上下文)

#include 
using namespace std;
int main()
{
    //no error
    string s1 = "123", s2 = "aaaa";
    s1 + s2 = "wow";
    auto a = (s1 + s2).find("a");
}

在新标准(这里是C++ 11)之前,没有办法阻止这种使用.为了保持向后兼容性,库类继续允许赋值给rvalues,但是,我们可能希望在我们自己的类中阻止这种用法.在这种情况下,我们想强制左手操作数(即this点的对象)为左值.

什么向后兼容性需要为rvalues分配?

顺便说一句,我也很好奇为什么s1 + s2 = "wow"被允许但int i = 3, j = 4; i + j = 7;不允许.(因为它密切相关,我选择不打开另一个问题)


推荐阅读
author-avatar
潜伏在人间_144
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有