Metaparse - это библиотека генератора парсера для метапрограмм шаблонов. Целью этой библиотеки является поддержка создания парсеров, которые анализируют во время компиляции. Эта библиотека предназначена для использования для создания встраиваемого домена для языка C++. Ввод сгенерированного парсера представляет собой строку времени компиляции см.строка. Результатом процесса парсеризации является либо ошибка, либо любой другой результат, указанный автором парсера.
Библиотека похожа на Boost. Дух, однако, в то время как парсеры построены с Духом, парсеры построены с Метапарсом во время компиляции. Парсеры, построенные с помощью Metaparse, могут выводить:
- типы
- постоянные значения
- объекты (типы с публичными статическими элементами)
- Функции C++ (типы с публичным статичным методом)
- шаблонные метафункциональные классы
Смотрите разделЧто можно построить из строки времени компиляции?Подробнее.
На основе функций C++11 библиотека может предоставлять расширенные утилиты для определения строки ввода, остальная часть библиотеки работает также на компиляторах на основе C++98. Обратите внимание, что если вы строите тесты и примеры с помощью Boost. Создавайте с помощью GCC или Clang, компилятор не будет включать C++11 (или более новый). Для построения тестов и примеров в C++11-режиме необходимо запуститьb2cxxflags="-std=c++11".
Внешний учебник можно найти по адресуhttps://github.com/sabel83/metaparse_tutorial#metaparse-tutorial