Visual Studio 2019 c++latest random_device uniform_int_distribution 抛出未处理的异常

Posted

技术标签:

【中文标题】Visual Studio 2019 c++latest random_device uniform_int_distribution 抛出未处理的异常【英文标题】:Visual Studio 2019 c++latest random_device uniform_int_distribution throws unhandled exception 【发布时间】:2021-02-03 08:42:30 【问题描述】:
    random_device device;
    uniform_int_distribution<long> dist(-5, 5);
    vector<long> v;
    v.resize(20);
    generate(v.begin(), v.end(), [&]  return dist(device); ); // <- Unhandled exception.

异常详情:

Unhandled exception at 0x00AB3FDF in test.exe: 0xC000001D: Illegal Instruction.

它曾经可以工作,但现在在安装最新的 Visual Studio 2019 更新后失败。任何建议和见解都值得赞赏。

【问题讨论】:

如果您在更新之前创建一个全新的项目而不是使用现有项目,是否也会发生这种情况? “更新前”是什么意思? 与“更新之前”我的意思是您现有的项目在您更新 VS 之前工作。只需尝试在其他位置创建一个全新的项目,然后检查它是否有效。如果你仍然想知道为什么,我可以给你一个提示:混乱的临时 .vs 文件夹 您说的是哪个版本? 16.8.4 还是 16.9 的预览版本之一?它是否在调试和发布中重现?它是否适用于 x86 和 x64 本机?它是在简单的控制台应用程序中发生还是仅在您的其他代码的上下文中发生?您使用的是 C++14、C++17 还是 C++latest 模式? 我使用的是 16.8.4,帖子的标题告诉我使用的是 c++latest。 【参考方案1】:

在win10下VS2019无法重现错误。

这种问题通常是由于 .vs 文件夹中的临时文件损坏或项目设置损坏,在这种情况下是在 VS 更新之后。

您可以做的是创建一个新项目并将设置文件比较/复制到现有项目(最终更新文件路径)。删除现有项目中的 .vs 文件夹也会有所帮助。

【讨论】:

以上是关于Visual Studio 2019 c++latest random_device uniform_int_distribution 抛出未处理的异常的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Visual Studio 2019 中使用 C#10

visualstudio2019如何运行c语言

Visual Studio 2019可以用来玩C语言吗?

Visual Studio 2019 C++ dll Excel VBA 插件问题

Visual Studio 2019怎么编译C语言源程序?

使用 CMake 和 Visual Studio 2019 编译 GLEW?