首页 > 解决方案 > 将 chrono::duration 与整数进行比较

问题描述

我正在尝试将执行一段代码与固定整数所用的时间进行比较。

例如:

auto startProcessingTime = chrono::high_resolution_clock::now();
chrono::duration<int> timeDiff = (chrono::duration_cast<chrono::seconds>(chrono::high_resolution_clock::now() - startProcessingTime));

    if (timeDiff > 12) {
        // DO SOMETHING
        continue;
    }

但是在运行这个我得到以下错误:

二进制表达式的无效操作数('chrono::duration' 和 'int')

如何转换timeDiff为整数?

我也试过:

chrono::seconds s = chrono::duration_cast<chrono::seconds>(timeDiff);

然而,

二进制表达式的无效操作数('chrono::seconds'(又名'duration')和'int')

任何帮助将不胜感激。

标签: c++chrono

解决方案


你需要告诉它是什么12意思。是秒吗?毫秒?所以要么投它:

chrono::seconds(12)

或者(我最喜欢的)使它成为一个计时文字。如果您的意思是 12 秒,那么:

using namespace std::chrono_literals;
// ...

if (timeDiff > 12s) {

如果是毫秒:

if (timeDiff > 12ms) {

推荐阅读