When you write x, y
in generic code, most of the time you intend that to mean “evaluate x
,
then evaluate y
and make that the result”. But since operator,
can be overloaded, this could
end up meaning something else entirely.
A simple workaround is to stick a void()
in between the two expressions:
x, void(), y
Since you can’t take a void
parameter, there’s no way for this to result in a call to an overloaded operator,
.