为什么C ++需要运算符同义词?

时间:2015-10-09 14:24:16

标签: c++ operators

在维基百科上查找C ++的运营商列表时,我发现了一篇关于operator synonyms的文章:

  

C ++定义[6]关键字作为许多运算符的别名:和(&&),bitand(&),and_eq(& =),或(||),bitor(|) ,or_eq(| =),xor(^),xor_eq(^ =),not(!),not_eq(!=)和compl(〜)。这些可以与它们替换的标点符号完全相同的方式使用,因为它们在不同名称下不是相同的运算符,而是相应运算符的名称(字符串)的简单标记替换。这意味着表达式(a> 0和flag)和(a> 0&& flag)具有相同的含义。这也意味着,例如,bitand关键字不仅可以用来替换按位运算符和运算符地址,还可以用来指定引用类型(例如,int bit和ref = n) 。 ISO C规范允许将这些关键字作为头文件iso646.h中的预处理器宏。为了与C兼容,C ++提供了头文件ciso646,其中包含无效。

然后我想知道:为什么我们需要这些operator synonyms?如果有人提供一些用例,那就太好了。

1 个答案:

答案 0 :(得分:10)

所有答案都在这里: http://en.cppreference.com/w/cpp/language/operator_alternative

基本上,这些是无法用ISO 646字符代码集表示的符号。