std::experimental::generator 写访问冲突

std::experimental::generator write access violation

我是 运行 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)) { }
}

有谁知道可能是什么问题?我怀疑这可能是一个编译器错误。

这是 Visual Studio 2015 更新 1 中已确认的错误: https://connect.microsoft.com/VisualStudio/feedback/details/2337518/std-experimental-generator-write-access-violation

据说会在更新 2 中修复