C++ 11:将time_point增加一秒

thi*_*wfx 6 clock c++11 c++-chrono

如果我有

std::chrono::steady_clock::time_point t1 = std::chrono::steady_clock::now();
Run Code Online (Sandbox Code Playgroud)

变量,我该如何定义另一个time_point变量t2,使其代表正好一秒后的时间点t1

有点像auto t2 = t1 + "1s".我该怎么用"1s"替换?

How*_*ant 8

如果您使用的是C++ 14(VS-2015,或者-std=c++14使用gcc或clang),那么:

using namespace std::chrono_literals;
auto t2 = t1 + 1s;
Run Code Online (Sandbox Code Playgroud)

如果您使用的是C++ 11:

using namespace std::chrono;
auto t2 = t1 + seconds{1};
Run Code Online (Sandbox Code Playgroud)

如果您不想制作副本,但为t1自己添加1秒,+=也可以:

t1 += 1s;
t1 += seconds{1};
Run Code Online (Sandbox Code Playgroud)