I was thinking about implementing a ternary put operator in cpp similar to “<<“:
mystream <<< param2 param3;
Is this possible? Does it already exist? One remark: I remember having seen this:
out <<STDERR param
Wouldnt this already be a ternary operator?
To send C++ output to the stderr stream, use
cerr << var1 << var2orclog << 1 << 2.There is exactly one ternary operator in C++,
?:, and it cannot be overloaded.<<<is a binary operator in all languages where I’ve seen it. C++ does not have it; such a character sequence would be parsed as<< <which is nonsense as neither can be used as a unary operator.Finally, the second and third “operands” there are separated only by whitespace. C++ has no grammar productions including
expression expression; that would lead to serious ambiguities.The chaining behavior as in
cerr << var1 << var2is achieved by overloads of the formThe
ostream &return type allows the result of the first callcerr << var1to be used as the left-hand operand to<< var2.