You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Visual Studio 2022中reinterpret_cast右值引用报错是否为MSVC Bug?

MSVC编译reinterpret_cast代码触发错误是否属于编译器Bug?
int i;
reinterpret_cast<int &&>( std::move( i ) );

这段代码在Visual Studio 2022中编译时会触发如下错误:

error C2102: '&' requires l-value

但GCC和Clang均能正常编译通过这段代码。

这确实属于MSVC的编译器Bug。

原因在于:std::move(i)的返回类型本身就是int&&,根据C++标准,允许对右值执行reinterpret_cast转换到对应的右值引用类型——哪怕源表达式已经是该类型的右值。MSVC此处错误地将该场景判定为需要左值的操作,才抛出了不符合预期的C2102错误。

内容的提问来源于stack exchange,提问作者Fedor

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.15 03:20:32