Die Community von Enthusiasten hat eine eigene DSL auf Basis von Makros geschrieben, die wie eine Do-Notation aus funktionalen Sprachen funktioniert. Fortgeschrittene Möglichkeiten des Präprozessors werden genutzt. In dem vorgestellten Projekt wurde eine neue Technik zur Analyse der DSL implementiert, die die Erstellung weiterer DSLs für den C- und C++-Präprozessor 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