- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我在使用标准和 Microsoft Visual Studio 2013 编写简单的随机数生成器时遇到问题。当我尝试编译时,它会抛出一堆与 xutility 文件相关的错误。当我尝试使用 BOOST 库来完成同样的事情时,我抛出了一堆类似的错误,所以这可能是 MSVC 的问题。
#include <iostream>
#include <chrono>
#include <random>
using std::cout;
using std::endl;
auto seed = std::chrono::high_resolution_clock::now();
int main()
{
std::uniform_int_distribution<> randNum(1, 6);
cout << randNum(seed) << endl;
return 0;
}
这是它抛出的错误:
错误 1 错误 C2039:“result_type”:不是“std::chrono::time_point”的成员 e:\program files (x86)\microsoft visual studio 12.0\vc\include\xutility 3256
错误 2 错误 C2146:语法错误:缺少“;”在标识符“_Ty1”之前 e:\program files (x86)\microsoft visual studio 12.0\vc\include\xutility 3256
错误 3 错误 C4430:缺少类型说明符 - 假定为 int。注意:C++不支持default-int e:\program files (x86)\microsoft visual studio 12.0\vc\include\xutility 3256
错误 4 错误 C2065:“_Ty1”:未声明的标识符 e:\program files (x86)\microsoft visual studio 12.0\vc\include\xutility 3258
错误 5 error C2070: 'unknown-type': illegal sizeof operand e:\program files (x86)\microsoft visual studio 12.0\vc\include\xutility 3258
错误 6 error C2065: '_Ty1' : undeclared identifier e:\program files (x86)\microsoft visual studio 12.0\vc\include\xutility 3259
错误 7 错误 C2923:“std::_If”:“_Ty1”不是参数“_Ty2”的有效模板类型参数 e:\program files (x86)\microsoft visual studio 12.0\vc\include\xutility 3259
错误 8 错误 C2955:“std::_If”:使用类模板需要模板参数列表 e:\program files (x86)\microsoft visual studio 12.0\vc\include\xutility 3259
这是 xutility 中似乎引起问题的代码部分:
// TEMPLATE CLASS _Rng_from_urng
template<class _Diff, class _Urng>
class _Rng_from_urng
{ // wrap a URNG as an RNG
public:
typedef typename make_unsigned<_Diff>::type _Ty0;
typedef typename _Urng::result_type _Ty1;
typedef typename _If<sizeof (_Ty1) < sizeof (_Ty0),
_Ty0, _Ty1>::type _Udiff;
此后该类还有很多代码,但错误发生在最后两行。
顺便说一句,我花了几个小时查询不同的搜索以尝试找到答案,然后再发布到这里,但没有可用的结果,尽管这很可能是我的一个缺陷。
谢谢!
在 Sebastion 的帮助下,所有以前的错误都已解决,但是产生了一个新错误:
修改后的代码:
std::default_random_engine engine(seed);
cout << randNum(engine) << endl;
错误:
错误 1 error C2039: 'generate' : is not a member of 'std::chrono::time_point' e:\program files (x86)\microsoft visual studio 12.0\vc\include\random 1618
最佳答案
cout << randNum(seed) << endl;
这就是您使用发行版的方式。您需要创建一个用种子初始化的本地引擎,然后将引擎传递给分发的调用运算符(operator)。
std::default_random_engine engine(seed);
cout << randNum(engine) << endl;
有关更详细的示例,请参阅 cppreference 中的示例:
关于c++ - xutility 错误(<chrono> <random> C++ 标准库),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30956915/
关闭。这个问题是opinion-based .它目前不接受答案。 想要改进这个问题? 更新问题,以便 editing this post 可以用事实和引用来回答它. 关闭 8 年前。 Improve
C++20 计时类型/值之间有什么区别 month{7}和 months{7} ?有两个如此相似的名字是不是很困惑? 最佳答案 是的,同时拥有 month 可能会令人困惑。和 months第一次遇到这
在我的项目中,在我升级到 VS2015 之前,它编译得很好。现在我收到 10 个与 std::chrono::timepoint 有关的错误。这些都是错误:https://gyazo.com/0d3c
在 Linux 上运行(uname 说:) Linux 2.6.32-431.29.2.el6.x86_64 #1 SMP Sun Jul 27 15:55:46 EDT 2014 x86_64 x8
下面的代码不打印epoch。 typedef std::chrono::high_resolution_clock Clock; typedef std::chrono::milliseconds M
我有这个测试代码: #include #include #include namespace chrono = std::chrono; int main() { struct time
我正在使用 jmeter 和 maven 进行性能测试 (REST)。 在我的 pom 中,我有以下插件: chronos-jmeter-maven-plugin:执行我的 jmx 项目 chrono
我有一个 chrono::format::strftime 的静态数组我的应用程序支持的格式。我想避免在运行时解析它们,所以我定义了一个 lazy_static!将它们解析为 chrono::form
我正在尝试编写一个允许用户指定 chrono::duration 的函数,例如 chrono::seconds 并返回 chrono 的结果::duration::count. 我可以使用以下模板函数
考虑以下代码片段: #include #include int main() { auto result1 = std::chrono::duration_cast(std::chron
考虑下面这段代码 #include #include #include int main() { using std::chrono::system_clock; using std
boost::chrono::steady_clock::time_point 之间有什么区别?和 boost::chrono::time_point ,为什么不能相互转换? 这似乎非常多余。 最佳答
我正在尝试在 mingw64 (GCC v11.2) 中构建我的程序。我有以下结构: 在头文件中: struct Timer { std::chrono::time_point start;
有没有什么优雅的方法可以将 boost chrono time_point 转换为标准库中的等价物? 最佳答案 恐怕你不能保证转换,除非你先验地接受 boost::chrono::steady_clo
以下程序: #include #include #include inline uint64_t now() { return std::chrono::duration_cast
我有一个变量存储为 long 来自 std::chrono::system_clock::time_point.time_since_epoch().count() 的值。我现在想从 long 变量中
extern crate chrono; use chrono::{DateTime, Utc}; use std::time::Duration; pub fn after(start: DateT
我想在几秒钟内使用 chrono 库找出 2 个时钟之间的差异。我尝试了多种方法,以下是其中之一。所有这些都工作正常,直到差异为 59 秒,但之后超时。我真的需要差异的实际值,即使它超过 59 秒 #
我试图计算执行插入排序函数期间耗时。所以我做了如下。附言- 函数运行正常并对所有数字进行排序。编译器-GCC window auto start = chrono::steady_clock:
我有一个年 (int)、月 (int) 和日 (int) 形式的日期,例如,2018、10、12 表示 2018 年 10 月 12 日。 有没有一种方法可以使用带有这些整数的 C++ Chrono
我是一名优秀的程序员,十分优秀!