There are other engines written in C++ (in part or in whole) in rebar. And it is useful to compare it with engines not written in C++ too.
https://www.boost.org/doc/libs/1_83_0/doc/html/xpressive.htm...
A performance comparison would be interesting.
The first compile time regular expressions I saw that just used normal regular expressions was D's CTRE which produced an even faster "engine" than Boost Xpressive. This was thanks to D's compile time function evaluation reaching a point something like this was possible.
I just started using this CTRE for a regular expression whose performance had become problematic and I'm very impressed with it so far. It's pretty easy to surpass std::regex but not sacrificing usability was surprising. Build times haven't been affected too much either (for my use case).
Edit: here is her talk, at 39 minutes she shares the benchmarks. https://m.youtube.com/watch?v=QM3W36COnE4
--
0: https://github.com/alexnask/ctregex.zig
1: I think the difference between C++ template language and Zig comptime is that Zig's comptime is almost equal as Zig's regular language, whereas the experience of programming C++ templates almost feels like learning a separate, equally complex language.
> CL-PPCRE uses compiler macros to pre-compile scanners at load time if possible. This happens if the compiler can determine that the regular expression (no matter if it's a string or an S-expression) is constant at compile time and is intended to save the time for creating scanners at execution time (probably creating the same scanner over and over in a loop).
https://learn.microsoft.com/en-us/dotnet/standard/base-types...
That’s like saying you can’t drive during winter with your car because it came with summer tires... just change your tires?