101*_*010 7 c++ language-lawyer c++11 c++14
略过C++标准,我在很多情况下参与了声明:
表达
X应该很好.
我对自己说"好吧,直觉上你知道一个结构良好的表达是什么,但是你能否正式解释是什么让C++表达式成为一个良好的表达式?".
我搜索了一下,但没有找到任何可以对此事做出正式解释的内容.所以这是我的问题:
问: C++中格式良好的表达式的定性特征是什么?
C++ Standard没有定义格式良好的表达式,尽管它实际上使用了这个短语.有良好形成的程序的定义
1.3.26 [defns.well.formed] 格式良好的程序 C++程序是根据语法规则,可诊断的语义规则和单一定义规则(3.2)构建的.
我想我们可以假设格式良好的表达式是一种表达式,它不会使程序形成错误(在1.3.9中定义为未形成良好).
A-形成良好表达必须符合语法用于表达(如通过标准中定义),并且必须符合语义规则,如不使用还没有被声明的名称,或不与相同的范围内重新声明的名称不同的意思。
i = 0
X::i++
Run Code Online (Sandbox Code Playgroud)
上面的表达式在语法上是有效的,但是如果i没有被声明,或者是const,或者X不是命名空间或类类型,或者X::i没有被声明,或者X::i不支持后增量,那么它们不符合语义要求格式良好的表达。
问:C++ 中格式良好的表达式的定性特征是什么?
请参阅第 1 至 15 条。您不能将整个 C++ 语言简化为一个简单的列表。
| 归档时间: |
|
| 查看次数: |
1390 次 |
| 最近记录: |