cpp中的三元投入运算符可能吗?

时间:2013-01-25 14:39:21

标签: c++ stream operator-keyword put ternary

我在考虑在cpp中实现类似于“<<”的三元put运算符:

mystream <<< param2 param3;

这可能吗?它已经存在了吗?一句话:我记得见过这个:

out <<STDERR param

这不是三元运营商吗?

2 个答案:

答案 0 :(得分:2)

要将C ++输出发送到stderr流,请使用cerr << var1 << var2clog << 1 << 2

C ++中只有一个三元运算符?:,它不能重载。

<<<是我见过的所有语言的二元运算符。 C ++没有它;这样的字符序列将被解析为<< <这是无稽之谈,因为它们都不能用作一元运算符。

最后,第二个和第三个“操作数”只用空格分隔。 C ++没有语法产生,包括expression expression;这将导致严重的模棱两可。


cerr << var1 << var2中的链接行为是通过表单

的重载来实现的
std::ostream & operator << ( std::ostream &, my_class const & );

ostream &返回类型允许将第一个调用cerr << var1的结果用作<< var2的左侧操作数。

答案 1 :(得分:1)

不,你不能组成新的运营商。您只能使用现有的,<<<不在其中。

out <<STDERR param

这可能意味着什么,都可以是宏或文字。