Сохраняющиеся экземпляры std::chrono time_pointC++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Сохраняющиеся экземпляры std::chrono time_point

Сообщение Anonymous »

Как правильно сохранять экземпляры std::chrono time_point и затем считывать их обратно в другой экземпляр того же типа?

Код: Выделить всё

   typedef std::chrono::time_point time_point_t;

time_point_t tp = std::chrono::high_resolution_clock::now();
serializer.write(tp);
.
.
.
time_point_t another_tp;
serializer.read(another_tp);
Вызовы записи/чтения предполагают, что экземпляр типа time_point_t может быть каким-то образом преобразован в байтовое представление, которое затем можно записать на диск или прочитать с него. или розетка и т. д.

Возможное решение, предложенное Альфом, следующее:

Код: Выделить всё

   std::chrono::high_resolution_clock::time_point t0 = std::chrono::high_resolution_clock::now();

//Generate POD to write to disk
unsigned long long ns0 = t0.time_since_epoch().count();

//Read POD from disk and attempt to instantiate time_point
std::chrono::high_resolution_clock::duration d(ns0)

std::chrono::high_resolution_clock::time_point t1(d);

unsigned long long ns1 = t1.time_since_epoch().count();

if ((t0 != t1) || (ns0 != ns1))
{
std::cout 

В случае старого стиля time_t обычно просто записывают весь объект на диск в зависимости от его размера, а затем считывают его обратно тем же способом - Короче говоря, что будет эквивалентом новых типов std::chrono? 

Подробнее здесь: [url]https://stackoverflow.com/questions/22291506/persisting-stdchrono-time-point-instances[/url]
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»