2016-04-21 21 views
6

Se ho una variabileC++ 11: incremento time_point di un secondo

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

, come posso definire un'altra variabile time_point t2 tale che rappresenta il punto di tempo esattamente uno seconda dopo di t1?

Qualcosa come auto t2 = t1 + "1s". Cosa devo sostituire "1s" con?

+1

Usa una [durata] adatta (http://en.cppreference.com/w/cpp/chrono/duration). –

+2

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

risposta

8

Se si utilizza C++ 14 (VS-2015, o -std=c++14 con gcc o clangore), quindi:

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

Se si utilizza C++ 11:

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

Se non si vuole fare una copia, ma aggiungere 1 secondo per t1 sé, += è anche ok:

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