相关疑难解决方法(0)

std :: chrono :: duration缺少立即滴答计数操作背后的原因是什么?

假设我们有

#include <chrono>
#include <iostream>
#include <ctime>

namespace Ratios { typedef std::ratio<60*60*24,1> Days; }

typedef std::chrono::system_clock Clock;
typedef Clock::time_point TimePoint;
Run Code Online (Sandbox Code Playgroud)

我们main看起来像

int main(int argc, char *argv[])
{
    // argc check left out for brevity
    const Clock::rep d = static_cast<Clock::rep>(std::atoi(argv[1]));
    // Right now
    TimePoint now = Clock::now();
    // Start with zero days
    auto days = std::chrono::duration<Clock::rep, Ratios::Days>::zero();

    // Now we'd like to add d to the days
    days += d; // Error!
    days.count() = d; // Error!
    days = …
Run Code Online (Sandbox Code Playgroud)

c++ c++11 c++-chrono

16
推荐指数
3
解决办法
4149
查看次数

在浮动中获得计时秒

http://en.cppreference.com/w/cpp/chrono的示例中,在a中获取秒值double.这是我想要的行为.然而,这似乎依赖于隐含的假设,即时间点减法产生表示秒的值.我找不到任何解释为什么持续时间在没有实际指定时间单位时产生浮点秒的原因.在没有使用的情况auto下,有人可以展示如何在浮点类型中显式获取时间单位,例如秒,或者指向文档或解释为什么上述转换代表秒数?

有问题的转换基本上是:

std::chrono::time_point<std::chrono::system_clock> start = std::chrono::system_clock::now();
std::chrono::time_point<std::chrono::system_clock> end = std::chrono::system_clock::now();
std::chrono::duration<double> elapsed_seconds = end-start; // why does this represent seconds as opposed to some other time unit?
double secondsInDouble = elapsed_seconds.count();
Run Code Online (Sandbox Code Playgroud)

有关转换的示例,请参阅以下帖子.

如何从<chrono>获得int milli和float秒的持续时间?

C++ chrono - 获取float或long long的持续时间

以特定的方式获得计时时间

计时器不能正确转换秒数

c++ floating-point seconds c++-chrono

7
推荐指数
1
解决办法
4863
查看次数

标签 统计

c++ ×2

c++-chrono ×2

c++11 ×1

floating-point ×1

seconds ×1