-2

「<<」に似た三項put演算子をcppに実装することを考えていました。

mystream <<< param2 param3;

これは可能ですか?すでに存在しますか?1つのコメント:私はこれを見たのを覚えています:

out <<STDERR param

これはすでに三項演算子ではないでしょうか?

4

2 に答える 2

2

C ++出力をstderrストリームに送信するには、cerr << var1 << var2またはを使用しますclog << 1 << 2

C ++には3項演算子が1つだけあり、?:オーバーロードすることはできません。

<<<私が見たすべての言語の二項演算子です。C++にはありません。<< <このような文字シーケンスは、どちらも単項演算子として使用できないため、ナンセンスとして解析されます。

最後に、そこにある2番目と3番目の「オペランド」は空白だけで区切られています。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 に答える