有代码
#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
。