Устойчивые ли :: теперь возвращает секунды? - PullRequest
0 голосов
/ 20 сентября 2018

Я пытаюсь выяснить, каково значение t?Это секунды или миллисекунды?В справочнике stable_clock не упоминается используемая единица измерения.

 auto t = std::chrono::steady_clock::now() / 1000;
 auto p = t/1000;

Я думаю, now() возвращает секунды, а t - в миллисекундах, а p - в микросекундах.Дайте мне знать, если я правильно понял?

Ответы [ 2 ]

0 голосов
/ 20 сентября 2018

Единица значения, возвращаемая std :: chrono :: stable_clock :: now () не определяется стандартом (это общее значение типа std :: chrono :: time_point ).

Разрешение точки std :: chrono :: time_point (в ней хранится значение типа Duration, указывающее интервал времени от начала эпохи часов) зависит от реализации (платформы / компилятор), ивам не следует полагаться на него.

Чтобы получить желаемую единицу, вы можете легко преобразовать точку времени в значение в секундах, миллисекундах и т. д., используя длительность приведения :

auto milliseconds = std::chrono::duration_cast<std::chrono::milliseconds>(std::chrono::steady_clock::now().time_since_epoch()).count();

( time_since_epoch () возвращает продолжительность, представляющую количество времени между * this и эпохой часов).

0 голосов
/ 20 сентября 2018

Это std::chrono::time_point<std::chrono::steady_clock> (документация на CppReference , как правило, лучшего качества).

Угадайте ваш следующий вопрос - для перевода из этого числа в секунды вы будете использоватьtime_since_epoch() (в документации приведен пример извлечения из него безразмерного количества секунд) или, альтернативно, (now - epoch) / 1_second

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...