内部编译器错误(CL版本:14.27.29110)



有代码

#include <array>
struct Foo {
int bar;
};
int main() {
constexpr auto v = std::array{Foo{}};
return 0;
}

使用C++17:编译时

致命错误C1001:内部编译器错误。。。(编译器文件"msc1.cpp",第1591行("C:\Program Files(x86(\Microsoft Visual Studio\2019\Enterprise\VC\Tools\MSVC\14.27.29110\bin\HostX86\x86\CL.exe"中的内部编译器错误

但是这个-编译

#include <array>
struct Foo {
int bar;
};
int main() {
constexpr std::array<Foo, 1> v{Foo{}};
return 0;
}

所有优化都被禁用,如这里所述

这是编译器错误吗?

这看起来与developercommunity.visualstudio.com上用/std:c++17在16.7.0中的Regression:c++内部编译器错误下报告的错误相同(编译器文件"msc1.cpp",第1591行(。我建议你对那个错误报告投赞成票,并密切关注它可能的解决方案。

该问题是在16.7.0更新中引入的,截至最新的16.7.5尚未修复。临时解决方案是恢复到16.6.5,或者删除/std:c++17,改为使用/std:default/std:c++14

最新更新