lzoje 最近的时间轴更新
lzoje

lzoje

V2EX 第 259562 号会员,加入于 2017-10-14 00:10:10 +08:00
今日活跃度排名 13756
lzoje 最近回复了
@hkiJava 什么叫真正的 nfc ? nfc 是近场通讯技术,和解不解锁没啥关系。而且要解锁也更安全一点。
29 天前
回复了 wjx0912 创建的主题 Rust 一个 rust 溢出的问题
debug 版本会检测,release 版本不检测的。https://doc.rust-lang.org/stable/book/ch03-02-data-types.html#integer-overflow
42 天前
回复了 Symbo1ic 创建的主题 C++ C++中右值与右值引用在使用中的疑问
对了,第一个问题我前面看错了。为什么 shift 会 copy ,shift2 会 move 。因为你返回的都不是引用类型呀。你要知道,main 和 f2 和 f3 的栈空间都是不一样的。f2 f3 结束后,在其栈上的东西对于 main 来说都是不可用的,所以最后返回的东西要复制到 main 的栈上,所以会有 copy 或者 move 。如果你返回引用就不会了。
42 天前
回复了 Symbo1ic 创建的主题 C++ C++中右值与右值引用在使用中的疑问
@Symbo1ic 现在的编译器应该都默认启动返回值优化的,如果没有优化会有很多次复制的。需不需要返回一个 move 包裹的值,是看具体情况的,毕竟移动有什么效果取决于你的移动构造或者移动赋值函数做了什么。
42 天前
回复了 Symbo1ic 创建的主题 C++ C++中右值与右值引用在使用中的疑问
先回答下第三点,这实际上应该是编译器 nrvo 优化的效果( n 是 named value ,rvo 是 return value optimization )。这个优化的效果相当于给被优化的函数添加一个引用参数,这个引用就是返回的引用。

所以第一点的问题,f2 和 f3 里都无法做 nrvo 优化,因为返回值是一个右值引用,而不是栈变量(虽然我们能看到那个是栈变量,但是编译器应该是判断不到)。

第二点很简单,你返回栈地址就是有问题的,虽然编译器可以给你做这个优化,但不是所有地方都能做这个优化,这得编译器决定。我个人理解是这样的。
44 天前
回复了 laikick 创建的主题 问与答 再见爱人 4 这综艺大家看了吗
@billzhuang 可能因为杨子爹味是因为利益相关,张泉灵只是路人。
47 天前
回复了 wisefree 创建的主题 C++ 请教一个 C++性能问题
可以试下 new 之后访问一下,然后再测
47 天前
回复了 wisefree 创建的主题 C++ 请教一个 C++性能问题
new 的时候并没有实际分配到内存,所以第一次访问的时候都是未命中,比较耗时
@Belmode C++ 和 java 主要有个差异是 C++ 的声明和定义是分离的。所以生成要修改两个文件,并且这两个文件关联没有规则的(有些可能会是文件名一致,但不一定)。
@InkStone 确实有这个想法,通过调用 clangd 做,应该不难。
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1382 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 18ms · UTC 17:38 · PVG 01:38 · LAX 09:38 · JFK 12:38
Developed with CodeLauncher
♥ Do have faith in what you're doing.