9

C++ では、andfor &&orfor ||bitandfor 、&およびbitorforと書くことができます|

andここで、 とbitandがこれらの演算子が意図されている場所、または参照が定義されている場所でのみ有効かどうか疑問に思います(g++ 4.6.3 はbitand参照を受け入れます — 右辺値参照はそのバージョンではサポートされていないようです — しかしもちろん、それは単にコンパイラではない可能性があります)エラーをキャッチします)。

要するに: 次のコードは有効な C++ ですか?

int and x = 3;

int a;
int bitand y = a;

もちろん、私はそのようなコードを書くことはありません (難読化されたコードのコンテストに参加する場合を除いて) が、実際に有効なのでしょうか?

4

1 に答える 1

11

C++11 によると、2.6/4:

言語のすべての点で、各代替トークンは、それぞれそのプライマリ トークンと同じように動作します。

完全に正気int and a = 5;ではありませんが、完全に有効です。


その他の例:

struct ete
{
    compl ete();
    int egr()and;
};
于 2013-06-08T22:22:27.963 に答える