Подтвердить что ты не робот

Точные значения If и Shall в стандарте С++

Возможный дубликат:
Почему требования к программному обеспечению всегда формулируются с "должен" вместо "воли" ?

Я рассматривал версию С++ стандарта 03. И я начинаю путаться со значениями слов Должны и Скрыть.

Значение в стандарте, по-видимому, указывает на обязательное требование (будет), где, как указано в стандарте, указывает необязательное требование (может быть). На английском языке Должно ли ожидать ожидания, не понял ли я смысл? не следует использовать?

4b9b3361

Ответ 1

Из ISO TR 10176, Информационные технологии. Рекомендации по подготовке стандартов языка программирования:

3.7 Вспомогательные глаголы, используемые в этом тексте

3.7.1 :
Указание требования к стандарту языка программирования или процессорам.

3.7.2 должен:
Указание рекомендации по программированию языкового стандарта или процессоров.

3.7.3 может:
Указание дополнительной функции стандартного языка программирования или процессоров. Когда в этом Техническом отчете содержится рекомендация к стандарту языка программирования, который поддерживает определенную необязательную функцию, вспомогательный глагол "может" используется в предложении, объясняющем условие.

Это из ревизии 2002 года, текущая ревизия - 2003 год, но я предполагаю, что она не сильно изменилась. (Текущая версия, по-видимому, доступна за 150 евро, немного крутая. Я нашел версию 2002 года здесь: http://std.dkuug.dk/jtc1/sc22/wg20/docs/n970-tr10176-2002.pdf.)

Ответ 2

В С++ 11 используется в местах, где используется С++ 03, возможно, потому, что это звучит лучше.

Если иногда используется, когда вы хотите что-то прописать, но он не контролирует язык, например

Реализации должны гарантировать, что все разблокированные потоки в конечном итоге достигнут прогресса. [Примечание. Стандартные функции библиотеки могут незаметно блокировать операции ввода-вывода или блокировки. Факторы в среде исполнения, включая приоритеты, связанные с внешним потоком, могут помешать реализации определенных гарантий продвижения вперед. - конечная нота]

Язык предписывает, что среда выполнения С++ должна "корректно обрабатывать потоки", но что вы можете сделать с системным менеджером, понижающим приоритет?