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 回答