应该和在C ++标准中的确切含义

时间:2011-07-03 20:52:26

标签: c++ standards

我一直在审查C ++标准03版本。而且我开始对 应该 应该 这些词的含义感到困惑。

标准中的

似乎表明了强制性要求(将要有),标准中的“应该”表示可选要求(可能) 。在英语中, 意味着期望,我误解了意思吗?不应该 可以 吗?

2 个答案:

答案 0 :(得分:9)

来自ISO TR 10176,信息技术 - 编程语言标准准备指南

3.7 本文中使用的辅助动词

3.7.1
表示对编程语言标准或处理器的要求。

3.7.2
表示对编程语言标准或处理器的建议。

3.7.3 可能
指示编程语言标准或处理器的可选功能。当本技术报告对支持特定可选功能的编程语言标准提出建议时,在解释条件的句子中使用辅助动词“may”。

这是从2002年的修订版,目前的修订版是2003年,但我认为它没有太大变化。 (目前的修订版似乎有150欧元,有点陡峭。我在这里找到了2002年的修订版:http://std.dkuug.dk/jtc1/sc22/wg20/docs/n970-tr10176-2002.pdf。)

答案 1 :(得分:1)

在C ++ 11中, 用于C ++ 03使用必须的地方,可能是因为它听起来更好。

有时会在您想要处方时使用,但它不受语言控制,例如

  

实现应确保所有未阻塞的线程最终取得进展。 [注意:标准库函数可能会静默阻塞I / O或锁定。执行环境中的因素(包括外部强加的线程优先级)可能会阻止实现对前进进度做出某些保证。 - 结束说明]

该语言规定C ++运行时“必须”公平地处理线程,但是你可以对系统管理员降低优先级做些什么呢?