相关疑难解决方法(0)

标准遵守有多重要?

对于像C++这样的语言,标准的存在是必须的.好的编译器会尽力(最好是大多数好的编译器)来遵守.许多编译器都有语言扩展,其中一些是标准允许的,其中一些不是.后两种例子:

  1. gcc的类型

  2. microsoft的编译器允许纯虚函数声明同时具有纯指定符(= 0)和定义(标准禁止 - 我们不讨论为什么,这是另一个主题:)

(还有很多其他的例子)

这两个示例在以下意义上都很有用:example1是一个非常有用的功能,它将在c ++ 0x中以不同的名称提供.example2也很有用,微软决定不尊重没有意义的禁令.

我很感激编译器提供语言扩展,帮助开发人员完成日常工作.但是这里有一个问题:不应该有一个选项,在设置时,要求编译器尽可能符合标准,无论它们是否与标准一致.例如,visual studio有这样一个选项,称为禁用语言扩展.但是,嘿,他们仍然允许示例2.

我希望每个人都能正确理解我的问题.MSVC允许example2是一件很棒的事情,我非常希望该功能符合标准.它不会破坏任何兼容代码,它没有什么坏处.它只是不标准.

当禁用语言扩展名设置为true时,您希望微软禁用example2吗?请注意,单词microsoft,example2等是占位符:)为什么?

再次,只是为了确保.关键点在于:编译器是否需要提供兼容版本(可选地在设置中设置)(在其限制中,例如我不是在谈论导出),因为它们提供了一个非标准的更好的替代方案,并且是也许甚至是标准的超集,因而没有破坏任何东西.

c++ standards-compliance

10
推荐指数
1
解决办法
498
查看次数

标签 统计

c++ ×1

standards-compliance ×1