c++ - 将 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')
任何帮助将不胜感激。
解决方案
你需要告诉它是什么12
意思。是秒吗?毫秒?所以要么投它:
chrono::seconds(12)
或者(我最喜欢的)使它成为一个计时文字。如果您的意思是 12 秒,那么:
using namespace std::chrono_literals;
// ...
if (timeDiff > 12s) {
如果是毫秒:
if (timeDiff > 12ms) {