我一直在审查C ++标准03版本。而且我开始对 应该 和 应该 这些词的含义感到困惑。
标准中的似乎表明了强制性要求(将要有),标准中的“应该”表示可选要求(可能) 。在英语中, 意味着期望,我误解了意思吗?不应该 可以 吗?
答案 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 ++运行时“必须”公平地处理线程,但是你可以对系统管理员降低优先级做些什么呢?