【问题标题】:#include <random> started to throw a lot of errors#include <random> 开始抛出很多错误
【发布时间】:2021-08-23 15:59:28
【问题描述】:

正在编写一些代码,然后尝试启动它,但出现了大约 500 个错误。

一段时间后,我创建了一个新项目并开始删除我编写的代码片段,以检测导致错误的原因。

我最终得到了这个:

#include <random>
int main()
{
    return 0;
}

令我惊讶的是,它并没有解决错误! 仍然有大约 50 个错误,当我尝试编译项目时,我得到了这个:

Build started ...
1> ------ Build started: project: test, Configuration: Debug Win32 ------
1> test.cpp
1> C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\random (374.5): error C2760: syntax error: unexpected token "id"; "expression" is required
1> C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\random (463): message: a reference to an instance of the class function template "std :: linear_congruential_engine <_Uint, _Ax, _Cx, _Mx> "
1> C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\random (374,5): error C2187: syntax error: unexpected element "id" here
1> C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\random (374.5): error C2062: "unsigned int" type is not required
1> C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\random (374,1): error C2238: unexpected tokens before ";"
1> C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\random (469.5): error C2760: syntax error: unexpected token "id"; "expression" is required
1> C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\random (556): message: a reference to an instance of the class function template "std :: linear_congruential <_Uint, _Ax, _Cx, _Mx> "
1> C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\random (469.5): error C2187: syntax error: unexpected element "id" here
1> C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\random (469.5): error C2062: "unsigned int" type is not required
1> C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\random (469,1): error C2238: unexpected tokens before ";"
1> C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\random (865.5): error C2760: syntax error: unexpected token "id"; "expression" is required
1> C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\random (925): message: a reference to an instance of the class function template "std :: subtract_with_carry_engine <_Ty, _Wx, _Sx, _Rx> "
1> C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\random (865,5): error C2187: syntax error: unexpected element "id" here
1> C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\random (865.5): error C2062: "unsigned int" type is not required
1> C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\random (865,1): error C2238: unexpected tokens before ";"
1> C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\random (1185.5): error C2760: syntax error: unexpected token "id"; "expression" is required
1> C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\random (1261): message: a reference to an instance of the class function template "std :: mersenne_twister_engine <_Ty, _Wx, _Nx, _Mx, _Rx, _Px, _Ux, _Dx, _Sx, _Bx, _Tx, _Cx, _Lx, _Fx> "
1> C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\random (1185,5): error C2187: syntax error: unexpected element "id" here
1> C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\random (1185.5): error C2062: "unsigned int" type is not required
1> C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\random (1185,1): error C2238: unexpected tokens before ";"
1> C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\random (1410.5): error C2760: syntax error: unexpected token "id"; "expression" is required
1> C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\random (1544): message: a reference to an instance of the class function template "std :: independent_bits_engine <_Engine, _Wx, _UIntType> "
1> C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\random (1410,5): error C2187: syntax error: unexpected element "id" here
1> C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\random (1410,5): error C2062: "unsigned int" type is not required
1> C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\random (1410,1): error C2238: unexpected tokens before ";"
1> C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSV C\14.29.30037\include\random (1863.5): error C2760: syntax error: unexpected token "id"; "expression" is required
1> C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\random (1885): message: a reference to an instance of the class function template "std :: uniform_int_distribution <_Ty> "
1> C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\random (1863.5): error C2187: syntax error: unexpected element "id" here
1> C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\random (1863.5): error C2062: "unsigned int" type is not required
1> C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\random (1863,1): error C2238: unexpected tokens before ";"
1> C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\random (2062.5): error C2760: syntax error: unexpected token "id"; "expression" is required
1> C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\random (2164): message: a reference to an instance of the class function template "std :: geometric_distribution <_Ty> "
1> C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\random (2062.5): error C2187: syntax error: unexpected element "id" here
1> C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\random (2062.5): error C2062: "unsigned int" type is not required
1> C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\random (2062,1): error C2238: unexpected tokens before ";"
1> C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\random (2222.5): error C2760: syntax error: unexpected token "id"; "expression" is required
1> C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\random (2347): message: a reference to an instance of the class function template "std :: poisson_distribution <_Ty> "
1> C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\random (2222.5): error C2187: syntax error: unexpected element "id" here
1> C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\random (2222.5): error C2062: "unsigned int" type is not required
1> C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\random (2222,1): error C2238: unexpected tokens before ";"
1> C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\random (2379.5): error C2760: syntax error: unexpected token "id"; "expression" is required
1> C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\random (2554): message: a reference to an instance of the class function template "std :: binomial_distribution <_Ty> "
1> C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\random (2379.5): error C2187: syntax error: unexpected element "id" here
1> C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\random (2379.5): error C2062: "unsigned int" type is not required
1> C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\random (2379,1): error C2238: unexpected tokens before ";"
1> C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\random (4272.5): error C2760: syntax error: unexpected token "id"; "expression" is required
1> C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\random (4388): message: a reference to an instance of the class function template "std :: negative_binomial_distribution <_Ty> "
1> C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\random (4272.5): error C2187: syntax error: unexpected element "id" here
1> C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\random (4272.5): error C2062: "unsigned int" type is not required
1> C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\random (4272,1): error C2238: unexpected tokens before ";"
1> C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\random (4418.5): error C2760: syntax error: unexpected token "id"; "expression" is required
1> C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\random (4587): message: running compiling an instance reference class function template "std :: discrete_distribution <_Ty>"
1> C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\random (4418.5): error C2187: syntax error: unexpected element "id" here
1> C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\random (4418.5): error C2062: "unsigned int" type is not required
1> C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\random (4418,1): error C2238: unexpected tokens before ";"
1> C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\random (4418.5): error C2059: syntax error :,
1> C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\random (4418): error C2062: "unknown-type" is not required
1> Build of the project "test.vcxproj" completed with an error.
========== Build: success: 0, with errors: 1, no changes: 0, skipped: 0 ========== 

已修复。 “随机”以某种方式发生了变化,它的大小是 172 053 字节,而必须是 172 041 字节。重新安装 VS 并备份这些文件。

感谢大家的帮助

【问题讨论】:

  • 你重建解决方案 / 重启 VS / 重启 Windows / 修复 VS。通常是其中之一。虽然项目文件也可能损坏,但不太可能。
  • 检查命令行定义的项目设置。
  • 第 374 行是 _RNG_REQUIRE_UINTTYPE 宏的第一次使用,我猜它或它使用的宏之一已损坏或其他地方的定义存在冲突,random 应该是172,041 字节。 Get-FileHash "C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\random" 应该返回 7A8378B21B6DC5AE4573D49CA6277A5C6B87C34FD1DF5F4C481584CA4C086862
  • 我的随机文件有不同的大小和哈希我创建了一个全新的项目,问题没有解决。另外,我大约一周没有更改任何 VS 设置。这个问题只是没有明显的原因出现正如我从 cmets 中了解到的,我必须重新安装 VS。会尝试找到一个更好的解决方案,但如果我没有幸运找到一个,我会重新安装它并告诉它是否有效。

标签: c++ visual-studio random c++17 visual-studio-2019


【解决方案1】:

您的代码中只能包含一个头文件,即#include&lt;bits/stdc++.h&gt; 它会处理你所有的头文件。

【讨论】:

猜你喜欢
  • 1970-01-01
  • 2014-12-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-06-06
  • 2015-02-23
  • 2022-08-04
相关资源
最近更新 更多