我在一个C++模板化任务中有一个虚拟函数,当它在Visual 2015中编译时(我尝试了调试/发布和x86/x64的所有组合),它在以下代码行的编译器错误C1001中始终失败:
e_Ty *d(new e_Ty[l]);其中e_Ty是类的模板参数。只有当我使用e_Ty设置为std::pair<const int &, int &>的模板类时,才会发生此错误。这是否是不应该工作的正当理由,还是MSVC中的一个bug?
编辑
备注:
l是一个局部变量,它是提前声明的(由于函数调用而赋值的)。auto和使用赋值样式的初始化,但这些方法都不起作用。e_Ty是int时,代码编译得很好。发布于 2018-06-12 12:32:43
它是否与:C++11 constexpr causes compiler's internal error (C1001)有关,值得一看
如果涉及到一个参数,则报告VS2015和VS2017编译器在与模板代码一起使用时会崩溃。
https://stackoverflow.com/questions/37602558
复制相似问题