2016-04-21 12 views
6

Jeśli mam zmiennąC++ 11: przyrost time_point przez jedną sekundę

std::chrono::steady_clock::time_point t1 = std::chrono::steady_clock::now(); 

, w jaki sposób można zdefiniować inną zmienną time_point t2 taki sposób, że reprezentuje punkt czasowy dokładnie jeden sekund po z t1?

Coś takiego jak auto t2 = t1 + "1s". Co powinienem zastąpić "1s"?

+1

Wykorzystanie odpowiedni [czas trwania] (http://pl.cppreference.com/w/cpp/chrono/duration). –

+2

std :: chrono :: seconds (1) – DAG

Odpowiedz

8

Jeśli używasz C++ 14 (VS-2015, lub -std=c++14 z gcc lub brzękiem), wówczas:

using namespace std::chrono_literals; 
auto t2 = t1 + 1s; 

Jeśli używasz C++ 11:

using namespace std::chrono; 
auto t2 = t1 + seconds{1}; 

Jeśli nie chcesz, aby wykonać kopię, ale dodać 1 sekundę do t1 się, += jest ok:

t1 += 1s; 
t1 += seconds{1};