#include <chrono>
#include <iostream>
#include <thread>
int main()
{
using std::chrono::system_clock;
using std::chrono::milliseconds;
using std::chrono::nanoseconds;
using std::chrono::duration_cast;
const auto duration = milliseconds(100);
const auto start = system_clock::now();
std::this_thread::sleep_for(duration);
const auto stop = system_clock::now();
const auto d_correct = duration_cast<nanoseconds>(duration).count();
const auto d_actual = duration_cast<nanoseconds>(stop - start).count();
std::cout << "Difference is " << d_actual << ", and it should be roughly " << d_correct << "\n";
}
CiNpbmNsdWRlIDxjaHJvbm8+CiNpbmNsdWRlIDxpb3N0cmVhbT4KI2luY2x1ZGUgPHRocmVhZD4KCmludCBtYWluKCkKewogICB1c2luZyBzdGQ6OmNocm9ubzo6c3lzdGVtX2Nsb2NrOwogICB1c2luZyBzdGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRzOwogICB1c2luZyBzdGQ6OmNocm9ubzo6bmFub3NlY29uZHM7CiAgIHVzaW5nIHN0ZDo6Y2hyb25vOjpkdXJhdGlvbl9jYXN0OwogICBjb25zdCBhdXRvIGR1cmF0aW9uID0gbWlsbGlzZWNvbmRzKDEwMCk7CiAgIGNvbnN0IGF1dG8gc3RhcnQgPSBzeXN0ZW1fY2xvY2s6Om5vdygpOwogICBzdGQ6OnRoaXNfdGhyZWFkOjpzbGVlcF9mb3IoZHVyYXRpb24pOwogICBjb25zdCBhdXRvIHN0b3AgPSBzeXN0ZW1fY2xvY2s6Om5vdygpOwogICBjb25zdCBhdXRvIGRfY29ycmVjdCA9IGR1cmF0aW9uX2Nhc3Q8bmFub3NlY29uZHM+KGR1cmF0aW9uKS5jb3VudCgpOwogICBjb25zdCBhdXRvIGRfYWN0dWFsID0gZHVyYXRpb25fY2FzdDxuYW5vc2Vjb25kcz4oc3RvcCAtIHN0YXJ0KS5jb3VudCgpOwogICBzdGQ6OmNvdXQgPDwgIkRpZmZlcmVuY2UgaXMgIiA8PCBkX2FjdHVhbCA8PCAiLCBhbmQgaXQgc2hvdWxkIGJlIHJvdWdobHkgIiA8PCBkX2NvcnJlY3QgPDwgIlxuIjsKfQo=