编译时间运算符

时间:2010-11-06 20:20:53

标签: c++ operators metaprogramming

有人可以列出C ++中提供的所有编译时运算符吗?

2 个答案:

答案 0 :(得分:8)

C ++中有两个运算符,无论操作数如何,都可以在编译时确定结果,这些运算符是sizeof [1]和:: [2]。< / p>

当然,在编译时可以解析其他运算符的大量特定用途,例如整数常量表达式标准中列出的那些。

[1]与C ++不同,C99具有可变长度的数组类型。应用于VLA的sizeof无法在编译时确定。一些C ++编译器提供了VLA作为扩展。

[2]也就是说,可以在编译时确定哪个实体是表达式的结果。如果实体是一个对象,那么对象的值是另一个问题。

答案 1 :(得分:0)

标准中没有这样的术语。

但这里是所有运营商的清单:http://en.wikipedia.org/wiki/Operators_in_C_and_C%2B%2B(我确信还有其他运营商......)。以某种方式对它们进行分类应该相当容易。