C++ 如何将boost::chrono::process\u cpu\u clock::duration转换为毫秒

C++ 如何将boost::chrono::process\u cpu\u clock::duration转换为毫秒,c++,c++11,boost,chrono,C++,C++11,Boost,Chrono,我使用的是boost 1.59.0 我试图使用boost::chrono::process\u cpu\u clock来计时代码块。我想用毫秒来报告这次,而不是纳秒。我曾想过使用duration\u cast模板函数,尽管我只找到了将单个duration值作为参数的示例,而不是process\u cpu\u clock.now()返回的三个值的元组 下面是我编写的代码: chrono::process_cpu_clock mytimer; const auto start = mytimer.n

我使用的是boost 1.59.0

我试图使用boost::chrono::process\u cpu\u clock来计时代码块。我想用毫秒来报告这次,而不是纳秒。我曾想过使用duration\u cast模板函数,尽管我只找到了将单个duration值作为参数的示例,而不是process\u cpu\u clock.now()返回的三个值的元组

下面是我编写的代码:

chrono::process_cpu_clock mytimer;
const auto start = mytimer.now();
// do work
const auto duration = mytimer.now() - start;
const auto duration_msec = duration_cast<milliseconds>(duration);
chrono::进程\ cpu \时钟mytimer;
const auto start=mytimer.now();
//工作
const auto duration=mytimer.now()-start;
常量自动持续时间=持续时间(持续时间);
duration_msec
duration
完全相同;它不会转换为毫秒

也许duration_cast并不打算将process_cpu_clock::duration类型作为参数;但是,它可以编译


我做错了什么?

您确定使用的是boost名称空间而不是std吗?通过在代码中显式地使用它,它可以按预期工作:您确定您使用的是boost名称空间而不是std吗?通过在这里显式地将其与代码一起使用,它可以按预期工作: