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

Std:: sin change в С++ 11?

cppreference включает следующее описание возвращаемое значение std::sin:

Результат может иметь мало или вообще не иметь значения, если величина arg (до С++ 11)

Я пытался найти информацию об этом в текущем стандарте С++, но ничего не нашел (может, я пропустил это?). Что именно было изменено в С++ 11 в отношении std::sin?

4b9b3361

Ответ 1

С++ 11 переключил стандартную ссылку C с C89/C90 на C99. Исходный C-стандарт, используемый для указания (цитируется из черновика):

Функция sin вычисляет синус x (измеряется в радианах). Аргумент большой величины может дать результат с небольшим или никаким значением.

В C99 этот текст был удален, а описание теперь просто:

Функции sin вычисляют синус x (измеренный в радианах).

Я подозреваю, что причиной отказа является то, что C99 представил макрос __STDC_IEC_559__, который реализации могут определить для документирования их соответствия этому стандарту. Согласно Стандарт для синуса очень больших чисел, он рекомендует (но не требует) правильных результатов даже для аргументов большой величины. Исходный текст стандарта C можно рассматривать как ослабление этой рекомендации.