为什么像static_cast这样的运算符有一定的优先级
Why is there a level of precedence for operators such as static_cast?
根据cppreference.com,C++static_cast
运算符的优先级为2。
为什么还要定义这些级别?我想不出有什么理由。有人能举个例子吗?
该标准没有定义优先级;这些可以从语法中派生。
像任何其他语法特征一样,static_cast
在这个语法中有一席之地。因为它的使用需要括号,所以它的操作数表达式永远不会模棱两可,但这只意味着从语法中推导它的优先级没有意义,而不是说它在语法中的位置本身没有意义。因此,标准在这里没有做任何疯狂的事情。
毫无意义的是,无论你引用什么来源,都列出了static_cast
的优先级。这并不是错误的,只是毫无意义。
C++cast运算符的优先级为2
谁说的?该标准没有定义运算符优先级。它用类似BNF的表示法定义语法。
相关文章:
- C++ 带有函数指针的运算符优先级
- <<运算符优先级与字符串比较
- 在一个指令中声明更多指针的运算符优先级
- C++中的运算符优先级
- c++中的增量和三元运算符优先级
- 涉及模运算符优先级的错误以及C++中具有大数字的括号
- 带有 cout 和指针的运算符优先级
- C++ 使用矢量迭代器时的运算符优先级
- 序列点和运算符优先级有什么区别
- 运算符优先级 括号问题
- C++表达式中的运算符优先级
- 相等运算符优先级不起作用
- 递增和按位移位运算符优先级?
- 运算符优先级超载在C 中
- C++ 中的递增/递减和输出流运算符优先级
- 输出流中的运算符优先级C++
- 运算符优先级C++
- C++11 何时相对于运算符优先级进行算术类型转换
- 从表中了解运算符优先级
- 是否违反 C/C++ 运算符优先级和关联性规则?