大家节日快乐。
我一直在使用 Boost 编写 C++ 预处理序列,以帮助我生成基于运算符的函数对象。到目前为止,我已经完成了源码,但是我遇到了麻烦,无法找到最合适的关键字来标识这些函数对象。
具体来说,经过审查 C++0x 草案后,我未能找到以下运算符的最合适(独特)名称:
- -> 和 . ,它们在草案中都被称为类成员运算符
- ->* 和 .* ,它们都被称为指向成员运算符
你认为你能帮我更好地命名它们吗?
我所使用的参考资料:
- C++0x 草案(可以在线找到)
- 包含大部分可重载运算符的 boost/proto/operators.hpp 头文件。
- 来自维基百科的 C 和 C++ 的运算符,也提供了以下名称
- . 结构体引用
- -> 结构体解引用
- ->* 和 .* 成员指针
以下是我所创建的列表。如有其他建议,将不胜感激。
Symbol Keyword Description
++ , post_increment , post increment
-- , post_decrement , post decrement
++ , pre_increment , pre increment
-- , pre_decrement , pre decrement
+ , unary_plus , additive promotion
- , unary_minus , additive inversion
! , negate , logical negation
~ , complement , complement
* , indirect , indirection
& , address_of , address of
+ , add , addition
- , subtract , subtraction
* , multiplies , multiplication
/ , divides , division
% , modulus , modulo
== , equal , equality
!= , inequal , inequality
> , greater , greater than
< , less , less than
>= , greater_equal , greater or equal than
<= , less_equal , less or equal than
&& , logical_and , logical and
|| , logical_or , logical or
& , bitwise_and , bitwise and
| , bitwise_or , bitwise inclusive or
^ , bitwise_xor , bitwise exclusive or
<< , left_shift , left shift
>> , right_shift , right shift
+= , add_assign , addition assignment
-= , subtract_assign , subtractions assignment
*= , multiplies_assign , multiplication assignment
/= , divides_assign , division assignment
%= , modulus_assign , modulo assignment
>>= , right_shift_assign , right shift assignment
<<= , left_shift_assign , left shift assignment
&= , bitwise_and_assign , bitwise and assignment
^= , bitwise_or_assign , bitwise exclusive or assignment
|= , bitwise_or_assign , bitwise inclusive or assignment
->* , arrow_indirect , pointer to member
, , comma , comma
= , assign , assignment
[] , subscript , subscription
-> , arrow , class member
. , dot , class member
.* , dot_indirect , pointer to member
->
被称为箭头运算符(保护你的眼睛 :D)(通过指针访问成员)。 - Mr.Anubis