小编Ill*_*ion的帖子

将双 chrono:: 秒转换为毫秒

我有简单的功能:

void foo(std::chrono::milliseconds ms) {
    std::cout << ms.count() << " milliseconds" << std::endl;
}
Run Code Online (Sandbox Code Playgroud)

接下来我这样称呼他们:

int main() {
    using namespace std::chrono_literals;

    boo(3s);
    boo(1h);
    boo(100ms);
}
Run Code Online (Sandbox Code Playgroud)

输出很简单:

3000 milliseconds
3600000 milliseconds
100 milliseconds
Run Code Online (Sandbox Code Playgroud)

但是,如果我想像这样使用这个函数怎么办:

boo(3.5s);
boo(0.5s);
boo(0.3days);
Run Code Online (Sandbox Code Playgroud)

然后我编译错误。所以,我可以编写接收的函数chrono::duration

3000 milliseconds
3600000 milliseconds
100 milliseconds
Run Code Online (Sandbox Code Playgroud)

然后3.5s会起作用,但1h3.5h不起作用。那么,问题是,我可以编写通用函数将1s// 1.s/ 1m/ 1.5m/ 1h/ 1.5hetc 中的任何一个转换为毫秒吗?也许我可以创建chrono::seconds/小时的重载运算符?还是只是投、投、投?

c++ milliseconds seconds c++-chrono

5
推荐指数
1
解决办法
274
查看次数

标签 统计

c++ ×1

c++-chrono ×1

milliseconds ×1

seconds ×1