app.cppисходник консольного приложения, которое загружает дерево, печатает его и сохраняетconstants.hppконстанты, использованные в проектеexceptions.hppкастомные исключенияnary_tree.hppheader-only реализация N-ary дереваnary_tree_test.cppтесты реализации N-ary дереваnode.hppheader-only реализация узла гетерогенного дереваutilities.hppheader-only утилиты проекта
Формат хранения сериализованного дерева (в псевдокоде):
<magic_tag><version>
{parent ID} value_type:value
...
<if string>
{parent ID} value_type:str_len:value
...
См. также файлы in_file.txt и out_file.txt для наглядного представления формата файла данных.
Ключи компиляции итоговой программы (при них не выдается ни одного замечания от компилятора):
/usr/bin/g++ -O0 -g app.cpp -o app -lboost_program_options -std=c++17 -pedantic-errors -Wall -Wextra -Weffc++ -Wsign-conversion