编辑C++代码时出现std::chrono::monotonic_clock has not decalred的解决方法

本文探讨了在编辑C++代码时遇到的std::chrono::monotonic_clock兼容性问题,并提供了解决方案。通过预处理器宏定义,可以选择使用std::chrono::steady_clock来替代,确保代码在不同C++标准下的正确运行。

编辑C++代码时出现std::chrono::monotonic_clock has not decalred的提示可能是因为C++版本兼容问题

我的代码本身提供了当出现兼容问题时的选择以下为我的代码:

#ifdef COMPLIEDWITHC11

   std::chrono::steady_clock::time_point t2=std::chrono::steady_clock::now();

#else

  std::chrono::monotoinc_clock::time_point t2=std::chrono::monotoinc_clock::now();

  #endif

 

当std::chrono::monotonic_clock出现兼容问题时我们可以手动选择 std::chrono::steady_clock::time

只需在代码开头加上#define  COMPLIEDWITHC11即可解决该问题

若出现该类问题的小伙伴可以借此参考看是否可以解决

home/huahua/vslam_ws/src/ORB_SLAM3/Examples_old/Stereo-Inertial/stereo_inertial_tum_vi.cc: In function ‘int main(int, char**)’: /home/huahua/vslam_ws/src/ORB_SLAM3/Examples_old/Stereo-Inertial/stereo_inertial_tum_vi.cc:207:26: error:std::chrono::monotonic_clockhas not been declared 207 | std::chrono::monotonic_clock::time_point t1 = std::chrono::monotonic_clock::now(); | ^~~~~~~~~~~~~~~ /home/huahua/vslam_ws/src/ORB_SLAM3/Examples_old/Stereo-Inertial/stereo_inertial_tum_vi.cc:216:26: error:std::chrono::monotonic_clockhas not been declared 216 | std::chrono::monotonic_clock::time_point t2 = std::chrono::monotonic_clock::now(); | ^~~~~~~~~~~~~~~ /home/huahua/vslam_ws/src/ORB_SLAM3/Examples_old/Stereo-Inertial/stereo_inertial_tum_vi.cc:224:87: error: ‘t2’ was not declared in this scope; did you mean ‘tm’? 224 | double ttrack= std::chrono::duration_cast<std::chrono::duration<double> >(t2 - t1).count(); | ^~ | tm /home/huahua/vslam_ws/src/ORB_SLAM3/Examples_old/Stereo-Inertial/stereo_inertial_tum_vi.cc:224:92: error: ‘t1’ was not declared in this scope; did you mean ‘y1’? 224 | double ttrack= std::chrono::duration_cast<std::chrono::duration<double> >(t2 - t1).count(); | ^~ | y1 /home/huahua/vslam_ws/src/ORB_SLAM3/Examples_old/Stereo-Inertial/stereo_inertial_tum_vi.cc:125:12: warning: unused variable ‘t_resize’ [-Wunused-variable] 125 | double t_resize = 0.f; | ^~~~~~~~ /home/huahua/vslam_ws/src/ORB_SLAM3/Examples_old/Stereo-Inertial/stereo_inertial_tum_vi.cc:126:12: warning: unused variable ‘t_track’ [-Wunused-variable] 126 | double t_track = 0.f; | ^~~~~~~ /home/huahua/vslam_ws/src/ORB_SLAM3/Examples_old/Monocular-Inertial/mono_inertial_tum_vi.cc: In function ‘int main(int, char**)’: /home/huahua/vslam_ws/src/ORB_SLAM3/Examples_old/Monocular-Inertial/mono_inertial_tum_vi.cc:201:26: error:std::chrono::monotonic_clockhas not been declared 201 | std::chrono::monotonic_clock::time_point t1 = std::chrono::monotonic_clock::now(); | ^~~~~~~~~~~~~~~ /home/huahua/vslam_ws/src/ORB_SLAM3/Examples_old/Monocular-Inertial/mono_inertial_tum_vi.cc:211:26: error:std::chrono::monotonic_clockhas not been declared 211 | std::chrono::monotonic_clock::time_point t2 = std::chrono::monotonic_clock::now();
最新发布
07-08
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值