你可以替换&在引用中有bitand?

时间:2013-06-08 22:18:27

标签: c++ syntax c++11

在C ++中,我们可以为and撰写&&,为or撰写||,为bitand撰写&bitor |

现在我想知道andbitand是否只适用于那些运算符的位置,或者定义引用的位置(g ++ 4.6.3接受bitand作为引用 - rvalue引用似乎不支持该版本 - 但当然可能只是编译器没有捕获错误。)

简而言之:以下代码是否有效?

int and x = 3;

int a;
int bitand y = a;

当然我永远不会写这样的代码(除非参与混淆的代码竞赛),但它实际上是否有效?

1 个答案:

答案 0 :(得分:11)

根据C ++ 11,2.6 / 4:

  

在语言的所有方面,每个替代令牌的行为分别与其主要令牌相同

所以int and a = 5;完全有效,但也非常疯狂。


更多例子:

struct ete
{
    compl ete();
    int egr()and;
};