Библиотека сериализации YAML для С++?

YAML кажется отличным форматом для файлов конфигурации и постоянных объектов привязки данных в удобочитаемой форме...

Есть ли библиотека C++, которая обрабатывает YAML? Есть ли у Boost::Serialization планы на вариант YAML?

EDIT: я бы предпочел библиотеку OO.


person paxos1977    schedule 28.10.2008    source источник
comment
Я бы хотел, чтобы у Cereal, который в остальном великолепен, была возможность парсить\писать yaml. Он не должен использовать все функции yaml, это просто эквивалент простого дерева json.   -  person Viktor Sehr    schedule 01.03.2016


Ответы (3)


Быстрый поиск дал мне следующее: yaml-cpp

person Luc Hermitte    schedule 28.10.2008

Попробуйте компонент YAML из библиотеки сериализации хранилища BOOST.

EDIT 2014: недавняя разработка, https://groups.google.com/d/msg/boost-devel-archive/mhT7qIh1nsI/uXAuXFAWrxQJ

РЕДАКТИРОВАТЬ 2019: еще не пробовал, но это кажется серьезным подходом: https://github.com/rwols/yaml-archive

person alfC    schedule 08.04.2011
comment
Недавно я попытался заставить его работать, чтобы он скомпилировался: 1) мне пришлось адаптировать библиотеку к более новой версии структуры архива Boost.Serialization (в основном обновление имен внутренних классов), 2) обновить пространство имен, чтобы использовать теперь Spirit .Классический... - person alfC; 02.09.2014
comment
... 3) изменить код кортежей Boost, 4) переместить много кода в .hpp, поскольку некоторые экземпляры не работали. 5) Тем не менее, я не мог заставить его работать, так как оболочка NVP не работает с массивами, наконец, я заставил его выводить сериализацию, которая выглядит правильно, однако я не могу ее десериализовать. После долгой работы я получаю ошибку об использовании грамматики Spirit (что-то о неправильном использовании rule_t в унарном выражении !S >> '=' >> !S. Я больше не могу. Может быть, это окупится, чтобы начать с нуля поверх XML-архива. кейс. - person alfC; 02.09.2014

Я нашел это, пожалуйста, если вы его используете, дайте мне знать, как он это сделал для вас, и, если возможно, опубликуйте какой-нибудь пример,

https://code.google.com/p/google-summer-of-code-2008-boost/downloads/list

ОБНОВЛЕННАЯ ссылка (по состоянию на 2014 год), кажется, указывает на те же файлы, что и ответ хранилища BOOST.

person Community    schedule 20.12.2008