Предисловие
В ходе разработки своего проекта мне потребовалось иметь возможность записывать содержимое различных структур данных в бинарные файлы, и, так как зачастую в них присутствовали строки, векторы и прочие данные, меняющие свой размер во время выполнения, каждая такая структура требовала индивидуального подхода к организации ее перевода в последовательность байт, пригодную для обратного считывания, а использование boost мне показалось громоздким (да и нет его у меня), да и хотелось самому решить эту задачу. Из-за этого я решил сделать этот процесс как можно менее рутинным и делать я это решил с помощью шаблонов.
Поддерживаются следующие типы данных:
- Все фундаментальные типы С++
- std::string
- std::vector где T — все что угодно из этого же списка.
Любой перечислимый тип
В принципе, чтобы не писать одни и те же переменные в методы и уменьшить вероятность несоответствия списков параметров(что приведет к весьма плохим последствиям), можно ввести поддержку кортежей и вместо передачи списка аргументов передавать всем методам один кортеж.
Всем кто уделил время моей статье — моя благодарность, а тем кто смог дотерпеть до конца еще и уважение.
ссылка на оригинал статьи http://habrahabr.ru/post/263599/
Добавить комментарий