首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >太多<chrono>错误(std::chrono::timepoint) (VS2015)

太多<chrono>错误(std::chrono::timepoint) (VS2015)
EN

Stack Overflow用户
提问于 2015-12-13 22:36:16
回答 1查看 885关注 0票数 1

在我的项目中,在升级到VS2015之前,它编译得很好。现在,我得到了与std::chrono::timepoint有关的10个错误。这些都是错误:https://gyazo.com/0d3c51cf87c49661b0f24da4a027b0d9 (图像,因为有这么多)

导致错误的代码行示例:

fStart = clock::now();引起no operator '=' matches these operands

double t = std::chrono::duration_cast<std::chrono::milliseconds>(clock::now() - fStart).count();

原因

no instance of function template 'std::chrono::duraction_cast' matches the argument list. argument types are: ( <error-type> )

(fStart是chrono::system_clock::timepoint,t显然是双重的)

如果有人想要看到这些错误,那么下面是这些错误的全部函数:

代码语言:javascript
复制
void Animation::update() {
    using clock = std::chrono::high_resolution_clock;
    if (animType == TYPE_MS) {
        if (firstUpdate) {
            fStart = clock::now();
            firstUpdate = false;
        }

    double t = std::chrono::duration_cast<std::chrono::milliseconds>(clock::now() - fStart).count();

    if (!paused) {
        if (t >= frames[frame]->getTime())
            advance();
    }
} else if (animType == TYPE_FRAME) {
    if (firstUpdate)
        firstUpdate = false;

    if (!paused)
        fTime += speed;

        if (speed < 0.0) {
            if (fTime <= -frames[frame]->getTime())
                advance();
        } else {
            if (fTime >= frames[frame]->getTime())
                advance();
        }
    }
}

我该怎么做才能修好这些?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-12-13 23:48:23

我建议放弃使用std::chrono::high_resolution_clock

如果您需要跨处理器运行或进程必须稳定的time_point,请使用std::chrono::system_clock,它与民用日历有明确的关系。

否则使用std::chrono::steady_clock。这钟就像秒表。它有利于计时,但它不能告诉你当前(公民)的时间。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34257225

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档