我在Visual Studio 2015 Update 1上运行此代码,我在下面指出的地方遇到了非常奇怪的访问冲突错误。如果我将表达式简化为类似int mid = (max - min) / 2;
的代码,则代码可以正常工作。
#include <experimental/generator>
std::experimental::generator<int> range(int min, int max)
{
int mid = min + (max - min) / 2; // write access violation
yield mid;
}
int main()
{
for (auto x : range(10, 20)) { }
}
有谁知道可能是什么问题?我怀疑它可能是编译器错误。
答案 0 :(得分:0)
这是Visual Studio 2015 Update 1中已确认的错误: https://connect.microsoft.com/VisualStudio/feedback/details/2337518/std-experimental-generator-write-access-violation
据报道,它将在Update 2中修复