Шаблоны третьего порядка, или как я портировал Jinja2 на C++
|
|
Четверг, 26 Июля 2018 г. 12:46
+ в цитатник

Под «шаблонами» в контексте C++ обычно понимаются вполне конкретные языковые конструкции. Есть простые шаблоны, которые просто упрощают работу с однотипным кодом. Если у шаблона какой-то из параметров сам по себе шаблон, то это уже, можно сказать, шаблоны второго порядка и генерируют они другие шаблоны в зависимости от своих параметров. Но что если и их возможностей недостаточно и проще генерировать сразу исходный текст? Много исходного текста?
Любителям Python а также HTML-вёрстки знакомо средство (движок, библиотека) для работы с текстовыми шаблонами под названием
Jinja2. На вход этот движок получает файл-шаблон, в котором текст может быть перемешан с управляющими конструкциями, на выходе получается чистый текст, в котором все управляющие конструкции заменены текстом в соответствии с заданными извне (или изнутри) параметрами. Грубо говоря, это что-то вроде ASP-страниц (или C++-препроцессора), только язык разметки другой.
До сих пор реализация этого движка была только для Python. Теперь же она есть и для C++. О том, как и почему так вышло, и пойдёт речь в статье.
Читать дальше -> https://habr.com/post/416581/?utm_source=habrahabr&utm_medium=rss&utm_campaign=416581
Метки:
Разработка под Windows
Разработка под Linux
Open source
c++
jinja2
c++ library
c++14
c++17
c++ библиотеки
-
Запись понравилась
-
0
Процитировали
-
0
Сохранили
-