I found this answer, which is nice, but not enough for me.
They offer
boost::format("error! value was %1% but I expected %2%") % actualValue % expectedValue
Which is nice, but much less readable than what I would like (in some syntax):
boost::format("error! value was %actualValue % but I expected %expectedValue%")
In C# that is
$"error! value was {actualValue} but I expected {expectedValue}"
In Python that is
f"error! value was {actualValue} but I expected {expectedValue}"
Is that supported somehow in C++?