C ++标准(ISO / IEC 14882:03)规定了以下内容( 2.11 / 2 ):
此外,另类 表4中显示的表示 某些运营商和标点符号 (2.5)保留,不得保留 否则使用:
和,and_eq,bitand,bitor,compl, not,not_eq,or,or_eq,xor,xor_eq
我尝试过使用多个编译器而没有问题。
据我了解,我只是禁止将它们用作标识符名称。 英语不是我的第一语言,所以如果有人能够证实我确实可以在表达式中使用这些按位的助记符(例如,“int i = not 0;”),那就太好了。
编辑:我应该指出,我不会使用这些来模糊代码(如果它们有效)。这只是一般知识。 =)
谢谢!
答案 0 :(得分:2)
是的,您可以使用它们作为命名令牌的替代方法。例如:
struct foo {
// defines a destructor
compl foo() { }
};
你的例子也会奏效。然而它会在i中存储一个。如果你不想使用按位,你可以使用compl(〜):
int i = compl 0;