Pav*_*kin 5 c c++ terminology standards-compliance visual-c++
语境:
... C编译器严格符合C89/C90标准
...并设置 /Zc 编译器选项以严格符合要求
Visual Studio 2019 中的 C++ 一致性改进、行为更改和错误修复:
... 可以指定 /permissive 以关闭编译器中的严格一致性模式。
第二个选项旨在禁用严格一致性模式......
钟:
请注意,这并不严格符合 ISO C99 ...
MSVC 与 ANSI C89 和 ISO C99 标准兼容,但并不严格遵守。
问:“严格符合”的定义是什么?它是微软发明的吗?
注意:C (n2596.pdf) 和 C++ (n4849.pdf) 标准均未使用术语“严格符合”/“严格符合”应用于实现。实施要么符合,要么不符合。无渐变。
UPD。我的猜测:在“严格一致性”(关于实现)下,微软的意思是“不支持任何扩展的一致性实现”。
C11标准在第4节第5-7段中定义了严格符合的程序和实施,如下:
\n\n\n5严格遵守的程序应仅使用本\n国际标准中指定的语言和库的功能。它不得产生依赖于任何未指定、未定义或实现定义的行为的输出,并且不得超过任何最低实现限制。
\n6合规实施有两种形式:托管型和独立型。合格的托管实现应接受任何严格合格的程序。符合要求的独立实现应接受任何严格符合的程序,其中对库子句(子句 7)中指定的功能的使用仅限于标准标头的内容。 h>、<iso646.h>、<limits.h>、<stdalign.h>、<stdarg.h>、\n<stdbool.h>、<stddef.h>、<stdint.h> 和 <stdnoreturn .h>. 一致的实现可以具有扩展(包括附加库函数),只要它们不改变任何严格一致的程序的行为。
\n7合格程序是合格实施可接受的程序。
\n
虽然术语严格一致实现和严格一致性没有出现在这里,但它们可以被理解为仅接受严格一致程序的实现(在给定模式下)(或者更准确地说,不支持功能的实现)标准中未规定)。
\n| 归档时间: |
|
| 查看次数: |
2190 次 |
| 最近记录: |