Спасибо за ссылку! Мне не приходилось использовать данную библиотеку, но, похоже, она предоставляет более функциональный интерфейс чем libclang (я говорю именно о C API). Обязательно добавлю в пост.
совместимость сериализуемого size_t между 32 и 64 платформами?
Почему Вы решили, что там будет size_t?
std::size — не то?
А std::size точно умеет работать с std::forward_list?
std::ostream по дефолту не использует исключения. Неплохо бы проверять вообще результаты записи, например.
Проверять каким образом? Количество прочитанных/записанных байт возвращается. Маску для исключений пользователь может установить вне функции чтения/записи.
Может быть учет ByteOrder в сериализации?
Писал об этом в самом начале.
а давайте поиспользуем новых фич
Из новых фич здесь только концепты. Поправьте меня, если я не прав.
Почему не аллоцировать весь контейнер сразу, например, чтобы не делать временные значения и push_back?
Я так и делаю — для sequence контейнеров. Вы же, видимо, говорите о специализации для ассоциативных контейнеров — по очевидным причинам там не получится так сделать.
У него спецификатор доступа —
protected
. Если бы он былpublic
— другое дело.Подробнее здесь: http://www.gotw.ca/publications/mill18.htm
Принято. А про какой именно класс Вы говорите?
ISerializable
?Спасибо за ссылку! Мне не приходилось использовать данную библиотеку, но, похоже, она предоставляет более функциональный интерфейс чем libclang (я говорю именно о C API). Обязательно добавлю в пост.
Спасибо, что заметили, исправлю.
Почему Вы решили, что там будет size_t?
А
std::size
точно умеет работать сstd::forward_list
?Проверять каким образом? Количество прочитанных/записанных байт возвращается. Маску для исключений пользователь может установить вне функции чтения/записи.
Писал об этом в самом начале.
Из новых фич здесь только концепты. Поправьте меня, если я не прав.
Я так и делаю — для sequence контейнеров. Вы же, видимо, говорите о специализации для ассоциативных контейнеров — по очевидным причинам там не получится так сделать.
P.S. Кажется, Вы забыли упомянуть про Data Augmentation. Это решило проблему.