Die Gemeinschaft von Enthusiasten hat eine eigene DSL basierend auf Makros entwickelt, die wie die do-Notation aus funktionalen Sprachen funktioniert. Es kommen erweiterte Funktionen des Preprozessors zum Einsatz. Im vorgelegten Projekt wurde eine neue Technik zum Parsen von DSL implementiert, die die Schaffung weiterer DSL im C- und C++-Preprozessor unterstützen kann. Der Code im Repository ist in C++23 geschrieben und unter der MIT-Lizenz veröffentlicht, und die Technik kann auch einfach im C-Präprozessor verwendet werden. // Ohne DSL: auto result = bind(mx, [&](auto x) { return bind(my, [&](auto y) { return make_value(x, y); }); }); // Mit DSL: auto result = DO( LET x IS(mx); LET y IS(my); return make_value(x, y); );
Quelle: opennet.ru