簡體   English   中英

C ++ 11 chrono:為time_point對象賦值

[英]C++11 chrono:assigning values to time_point objects

我正在嘗試使用chrono來測量某些函數所花費的時間,所以我的代碼如下所示:

#include <chrono>
#include <iostream>

using namespace std;

void doSomething()
{
  //code goes here
}

int main()
{
  chrono::time_point<chrono::system_clock> start,end;
  start=chrono::system_clock::now;
  doSomething();
  end=chrono::system_clock::now;
}

所以,基本上,我正在遵循cppreference的代碼示例。

問題是我在start=chrono::system_clock::nowend=chrono::system_clock::now都有以下錯誤

error: no match for 'operator=' (operand types are 
'std::chrono::time_point<std::chrono::system_clock, 
std::chrono::duration<long long int, std::ratio<1ll, 1000000000ll> > >'
and 'std::chrono::system_clock::time_point()noexcept (true) 
{aka std::chrono::time_point<std::chrono::system_clock,
std::chrono::duration<long long int, std::ratio<1ll, 1000000000ll> > >()noexcept (true)}')

我也嘗試改變chrono::time_point<chrono::system_clock> start,end; chrono::system_clock::time_point start,end; 錯誤幾乎相同:

error: no match for 'operator=' (operand types are
'std::chrono::system_clock::time_point 
{aka std::chrono::time_point<std::chrono::system_clock,
std::chrono::duration<long long int, std::ratio<1ll, 1000000000ll> > >}'
and 'std::chrono::system_clock::time_point()noexcept (true) 
{aka std::chrono::time_point<std::chrono::system_clock,
std::chrono::duration<long long int, std::ratio<1ll, 1000000000ll> > >()noexcept (true)}')

我正在使用Qt 5.1.0(32位)和MinGW 4.8 32位作為編譯器。 我還必須通過在我的.pro文件中添加QMAKE_CXXFLAGS+=-std=c++11來為c ++ 11支持添加編譯器標志。

system_clock::now使用()

  chrono::time_point<chrono::system_clock> start,end;
  start=chrono::system_clock::now(); //<-- Fix

 doSomething();
  end=chrono::system_clock::now();  //<-- Fix

計算經過時間為:

  auto duration = end - start;
  std::cout << chrono::duration <double, std::milli> (duration).count()
            << " ms" << std::endl;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM