yeah, that seems to be what it's doing:
https://github.com/jeremy-rifkin/libassert/blob/bd33ba116f209bf71761c58dccc2f3bf277e0824/include/libassert/expression-decomposition.hpp#L281-L288
this shit is abusing the ever living fuck out of operator overloading to shove it into a bunch of structs representing the operation, from what I can tell