Энтузиасты создали 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 прочитано 917 раз