- 论坛徽章:
- 0
|
本帖最后由 hbmhalley 于 2012-06-23 10:20 编辑
kzl0629 发表于 2012-06-23 09:06 ![]()
回复 502# hbmhalley
我的答案是可以选择给编译错误
“还有,给你提个醒,diagnostic message 并不能导致编译错误,标准里在提到编译错误时也都是 terminate a translation (with the issuance of a diagnostic message,同时发出一条诊断信息)。英语里message也绝没有termination的意思”
这句话你就认为不能给出编译错误??? 你的理解真是狭隘啊
J.3.1 Translation
1 — How a diagnostic is identified (3.10, 5.1.1.3).
问题1 这句话的意思是,Implementation-defined 可以diagnostic ,至于diagnostic 是什么东西到(3.10, 5.1.1.3) 这两个章节去看,对吧??
问题2.我们到这两个章节去看,
5.1.1.3 讲的是diagnostic
5.1.1.3 的第一条讲invalid shall 打出diagnostic message ,至于什么是diagnostic message ,由3.10定义
到目前为止,你就认为不能打出编译错误????
(1)第一条文章中说给出diagnostic message ,但是没说只给出diagnostic message ,懂??? 你的理解不要总那么狭隘好吗
(2)你看第二条了吗??? 同样是给出diagnostic 的一个内容 ,你在哪看到的只能给出diagnostic message ,是谁在断章取义
(1)“第一条文章中说给出diagnostic message ,但是没说只给出diagnostic message”
你有给出message的权利,但标准从没说过此权利包含报错的权利。别扯什么“报错就没有message?”,报错可以附带给message,但给message没权利附带报错。为什么?别再问这种问题了好么,还“在哪看到只能给出message",message你从哪看出来termination的含义来了
你要非要找,我就给你找。标准为防止你这样的肆意妄为,做了规定:
1. conforming-implementation should accept strictly-conforming-program ...
2. OF COURSE, implementaion if fre ...... as long as a valid program is still correctly translated --> 这句也直接表明,是不是valid program不能由implementaion-defined的部分决定。
所以,不能报错。满意了?
(2)"你看第二条了吗??? 同样是给出diagnostic 的一个内容 ,你在哪看到的只能给出diagnostic message ,是谁在断章取义"
我说过了,第二条是语法错误,编译器中止编译时附带了message。怎么了?这能说明能报message就能报错?
先别扯,先回楼上 |
|