V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  blinue  ›  全部回复第 1 页 / 共 5 页
回复总数  87
1  2  3  4  5  
dev home 里面可以快捷配置,实测编译 C++ 项目速度明显快了
142 天前
回复了 Betsy 创建的主题 C++ 求教个神奇的 C++ 打印问题
我在 godbolt 里复现这个问题: https://godbolt.org/z/h45896sM5

只会在 O1 优化下出现,是一个悬垂引用导致的巧合。

1. memo.GetReduceGroupId(group_id) 返回的临时的 std::optional<ReducedGroupId> 存储在 [rsp + 16] 到 [rsp + 24]。optional 本身共 9 个字节,前 8 个字节是 ReducedGroupId ,后跟一个 bool 。

2. reduced_group_id 为 .value() 返回的地址,即 rsp + 16 ,注意这是一个栈上的临时空间,reduced_group_id 为悬垂引用。后续用 rbx 存储 reduced_group_id 引用的地址。

3. tmp.push_back(4) 恰好将 4 ( 8 个字节)存储到 [rsp + 16],覆盖了 reduced_group_id 指向的内存。编译器认为这是安全的,因为临时的 std::optional<ReducedGroupId> 已经析构,这导致后续读取 reduced_group_id 的值为 4 。
143 天前
回复了 Betsy 创建的主题 C++ 求教个神奇的 C++ 打印问题
未定义行为就是编译器怎么做都可以,有一篇很好的博客 https://devblogs.microsoft.com/oldnewthing/20140627-00/?p=633
168 天前
回复了 sparks2 创建的主题 Arc 关于 Arc 浏览器 Windows 版的吐槽
在 AppContainer 里运行的应用不走系统代理。性能差和 WinAppSDK 有很大关系,Win11 里用 WinAppSDK 重写的应用性能都下降很多。
182 天前
回复了 tool2dx 创建的主题 编程 C++的 long 是一个很尴尬的存在。
@tool2dx #3 标准只要求 long 至少 32 位,long long 至少 64 位,具体多长是编译器决定的。要保证一致性最好用 int64_t
182 天前
回复了 tool2dx 创建的主题 编程 C++的 long 是一个很尴尬的存在。
需要 64 位用 int64_t 就好,现代 C++ 基本淘汰了 long 和 long long
193 天前
回复了 panlatent 创建的主题 分享创造 来推荐推荐自己的开源项目和经验吧
上面好多面向开发者的项目,我来一个开源软件:[Magpie]( https://github.com/Blinue/Magpie)

Windows 上的窗口全屏化工具,用来提高游戏的画质。最初只是自用的,现在基本在做我用不到的功能了。
我写自己的项目会花很多时间来优化和重构,和实现新功能一样重要。工作时屎山已经品尝够多了,在自己的项目里呼吸一下新鲜空气
Sublime Merge 用起来最舒服
226 天前
回复了 alexlee0728 创建的主题 C++ vcpkg 依赖
我们已经迁移到 conan 了。vcpkg 的主要问题是不能以细粒度配置每个依赖,比如不支持改变单个依赖的链接方式和 CRT 链接方式,安装旧版本依赖也无比麻烦。
242 天前
回复了 t41372 创建的主题 操作系统 很讨厌桌面端系统的权限管理模式
历史包袱太重。传统软件都安装在 Program Files 里,这个文件夹需要管理员权限才能写。有些游戏要求管理员权限是为了防外挂或快速申请内存。微软做了很多努力,比如 UWP 、MSIX 、AppContainer 等,都没有普及开。
244 天前
回复了 itskingname 创建的主题 git 在 git 分支名上面加斜杠真的太恶心了
@HeyWeGo #48 PC
280 天前
回复了 luzemin 创建的主题 程序员 创建了一个公益项目
时间差不多咯
330 天前
回复了 aoguai 创建的主题 分享创造 我也来送波红包封面
已领,谢谢
1  2  3  4  5  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5563 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 35ms · UTC 03:32 · PVG 11:32 · LAX 19:32 · JFK 22:32
Developed with CodeLauncher
♥ Do have faith in what you're doing.