struct S
{
S();
S(S const&) = delete;
};
auto x = [s = S()]{};
看起来 MSVC 在构建 lambda 时不适用(在 C++17 中是强制性的?)复制省略。这打破了我的一些代码......VC的行为是否违反标准?
最佳答案
根据“语言律师”的评论:这是一个 known bug在已在 VS19 v16.2 和 VS17 v15.8 中修复的 MSVC 中。不幸的是(截至目前)修复仅适用于 /std:c++latest
.
关于c++ - 如果对象没有复制构造函数,则 lambda 捕获失败(在 MSVC 上),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62882877/