将chrono :: duration与一个整数进行比较

时间:2019-08-12 08:37:49

标签: c++ chrono

我正在尝试比较使用固定整数执行一段代码所花费的时间。

例如:

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'(aka   'duration')和'int')

任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:7)

您需要告诉它12是什么意思。是几秒钟?毫秒?所以要么投下它:

chrono::seconds(12)

或者(我最喜欢的)将其设为时间字面量。如果您的意思是12秒,那么:

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

if (timeDiff > 12s) {

如果是毫秒:

if (timeDiff > 12ms) {