Энтузиасты создали do-нотацию для C++
Сообщество энтузиастов написало собственный DSL на макросах, который работает как do-нотация из функциональных языков. Используются продвинутые возможности препроцессора. В представленном проекте реализована новая техника для парсинга DSL, что может поспособствовать созданию дальнейших DSL на препроцессоре C и C++. Код в репозитории написан на C++23 и открыт под лицензией MIT, а сама техника может быть использована и просто в си-препроцессоре.
// Без DSL:
auto result = bind(mx, [&](auto x) {
return bind(my, [&](auto y) {
return make_value(x, y);
});
});
// С DSL:
auto result = DO(
LET x IS(mx);
LET y IS(my);
return make_value(x, y);
);
Источник: http://www.opennet.ru/opennews/art.shtml? num=64975
OpenNet прочитано 4296 раз
