- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我不确定如何使用 duration_cast 及其语法。 duration_cast 可以只在 std:chrono 的成员之间转换吗?是否可以用来将整数或 float 转换为时间点?我也在做一个项目,我试图使用持续时间找到当前时间和初始时间之间的持续时间,但我一直收到错误 No matching function for call to 'duration_cast'
#define time std::chrono::high_resolution_clock
#define duration(x, y) std::chrono::duration_cast<std::milli>(x-y)
time::time_point c_time = time::now();
time::time_point start;
auto dur = duration(c_time, start);
最佳答案
几乎没有理由用现代 C++ 接触预处理器。它会混淆您的代码并使其变得脆弱(显然 #include
除外)。
您的代码可以重写为:
using time = std::chrono::high_resolution_clock;
auto duration = [](auto x, auto y) { return std::chrono::duration_cast<std::milli>(x-y); };
time::time_point c_time = time::now();
time::time_point start;
auto dur = duration(c_time, start);
您的代码的问题是 std::milli
是一个ratio
而不是duration
。您正在寻找std::chrono::milliseconds
反而。代码现在可以编译:
using time = std::chrono::high_resolution_clock;
auto duration = [](auto x, auto y) { return std::chrono::duration_cast<std::chrono::milliseconds>(x-y); };
time::time_point c_time = time::now();
time::time_point start;
auto dur = duration(c_time, start);
关于c++ - 不确定如何将 duration_cast 用作宏函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57009866/
如果我转换为更粗略的时间单位(例如 std::chrono::minutes 为 std::chrono::hours),duration_cast 将如何 圆?例如,如果转换为 std::chron
我不确定如何使用 duration_cast 及其语法。 duration_cast 可以只在 std:chrono 的成员之间转换吗?是否可以用来将整数或 float 转换为时间点?我也在做一个项目
我想要自纪元以来的毫秒数。一个流行的解决方案如下所示(这里提出的这个问题的解决方案之一 Get time since epoch in milliseconds, preferably using C
我需要将一种 std::chrono::duration 转换为另一种,但我需要知道何时无法进行这种转换,因为该值无法表示。 我没有在标准库中找到任何工具来检查这个。 cppreference pag
我正在使用 std::chrono 清理我的计时器类。其他一切都很顺利,除了我似乎无法将 duration_cast 应用于派生类。嗯,我让它以不同的方式工作,但我仍然想知道我错过了什么。 参见 he
我想问的是,如何以皮秒、飞秒等任何单位计算时间,甚至更精确。我正在计算函数的运行时间并使用纳秒,当我使用毫秒或纳秒时,函数的运行时间返回 0。我认为 Chrono 库只支持到纳秒,这是我在输入 chr
所以在c++11 Chrono 图书馆提供, duration_cast : Computations are done in the widest type available and conver
我正在编写一些必须处理 NTP 时间的代码。我决定使用 std::chrono::duration 来代表他们,我希望这会让我的时间数学更容易做。 NTP 时间由无符号的 64 位整数表示,高 32
我想做的,我的项目: 我想做一个等待0.5秒的程序,例如,做一些事情,比如说cout #include #include using namespace std; using namespace
这是我在这里的第一个问题,我也是 C++ 的新手,但我会尽我所能尽可能具体。如果我含糊不清,请告诉我: 我正在尝试使用 chrono 和 duration_cast 来测量排序方法(合并排序)对给定整
这是一个简单的程序(数组排序): #include #include #include #include #include typedef unsigned int myInt; stati
我想我在 std::chrono::duration_cast 的 GCC 实现中发现了一个错误。谁能证实我这一点? 测试代码: using Ticks = std::chrono::duration
我找不到关于以下哪段代码正确的明确答案: 目的是每隔“val”毫秒在循环中执行一些代码。正如我之前所了解的,您可以将持续时间替换为您想要的任何单位(秒、纳米等)。但是,您是否需要使用 duration
我正在查看一些使用 duration_cast 的代码。看着它,我想知道为什么不使用 static_cast,因为 static_cast 在生活中的目的是在类型之间进行转换。 为什么 C++ 需要一
我不明白下面的行为 unsigned long begin_time = \ std::chrono::duration_cast(std::chrono::steady_clock::now
我正在运行一个简单的程序,其中,我使用 system_clock::now 获取一个 time_point,然后使用 this_thread::sleep_for(seconds(1)) 和 time
当我们使用 std::chrono::duraction_cast 时,我们会这样写: auto int_ms = std::chrono::duration_cast(t2 - t1); 我们在类
我是一名优秀的程序员,十分优秀!