【发布时间】:2017-11-30 10:18:38
【问题描述】:
我有下面的方法,它摄入std::chrono::milliseconds
void SomeMethod(std::chrono::milliseconds some_value) {
// some logic
}
我可以通过以下方式调用它:
using namespace std::chrono_literals;
SomeMethod(1000ms);
有效。
但是,我想通过传递一个成员变量或一些全局声明的变量以下列方式调用它。像这样的,
using namespace std::chrono_literals;
std::chrono::system_clock::duration timeout = 3000ms;
但我收到以下错误:
error: no viable conversion from 'duration<[...], ratio<[...], 1000000>>' to 'duration<[...], ratio<[...], 1000>>'
SomeMethod(some_value);
^~~~~~~
【问题讨论】:
-
你的初始化不应该是:std::chrono::milliseconds timeout = 3000ms;