-2

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

mystream <<< param2 param3;

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

out <<STDERR param

这不是已经是三元运算符了吗?

4

2 回答 2

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

于 2013-01-25T14:47:30.613 回答
1

不,你不能编造新的运营商。您只能使用现有的,而<<<不是其中的。

out <<STDERR param

这可以意味着任何东西,都可以是宏或文字。

于 2013-01-25T14:40:16.493 回答