Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
Разработка программного обеспечения

Serialization

Boost , The Boost C++ Libraries BoostBook Documentation Subset , Chapter 10. Boost.Date_Time

BoostC++ Libraries

...one of the most highly regarded and expertly designed C++ library projects in the world. Herb Sutter and Andrei Alexandrescu, C++ Coding Standards

PrevUpHomeNext

Serialization

Библиотека boost::date_time совместима с библиотекой boost::serialization и xml-архивами. Список классов, которые можно сериализовать:

boost::gregorian

boost::posix_time

Для создания библиотеки date_time не требуется никаких дополнительных шагов.

ПРИМЕЧАНИЕ: в связи с изменением интерфейса библиотеки сериализации теперь требуется, чтобы все потоковые объекты были константными до записи в архив. Для этого допускается следующая функция шаблона (и используется в тестах date_time). В это время не требуется никаких специальных шагов для чтения из архива.

      template<class archive_type, class temporal_type>
      void save_to(archive_type& ar, const temporal_type& tt)
      {
        ar << tt;
      }
    

Пример использования text_archive:

      using namespace boost::posix_time;
      using namespace boost::gregorian;
      ptime pt(date(2002, Feb, 14)), hours(10)), pt2(not_a_date_time);
      std::ofstream ofs("tmp_file");
      archive::test_oarchive oa(ofs);
      save_to(oa, pt);                 // NOTE: no macro
      ofs.close();
      std::ifstream ifs("tmp_file");
      archive::text_iarchive ia(ifs);
      ia >> pt2;                       // NOTE: no macro
      ifs.close();
      pt == pt2; // true

Пример использования xml_archive:

      using namespace boost::gregorian;
      date d(2002, Feb, 14), d2(not_a_date_time);
      std::ofstream ofs("tmp_file");
      archive::xml_oarchive oa(ofs);
      save_to(oa, BOOST_SERIALIZATION_NVP(d)); // macro required for xml_archive
      ofs.close();
      std::ifstream ifs("tmp_file");
      archive::xml_iarchive ia(ifs);
      ia >> BOOST_SERIALIZATION_NVP(d2);       // macro required for xml_archive
      ifs.close();
      d == d2; // true

Для использования кода сериализации date_time должны быть явно включены соответствующие файлы заголовка. Файлы заголовков:

      boost/date_time/gregorian/greg_serialize.hpp

и

      boost/date_time/posix_time/time_serialize.hpp


PrevUpHomeNext

Статья Serialization раздела The Boost C++ Libraries BoostBook Documentation Subset Chapter 10. Boost.Date_Time может быть полезна для разработчиков на c++ и boost.




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.



:: Главная :: Chapter 10. Boost.Date_Time ::


реклама


©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru

Время компиляции файла: 2024-08-30 11:47:00
2025-05-19 17:15:30/0.0063149929046631/0