2016-11-21 10 views
1

В соответствии с this answer спецификации исключений станут частью типа функции в C++ 17. Означает ли это, что спецификации исключений для многих функций также будут изменяться, например. функции в заголовках совместимости C, получающих noexcept спецификации? Какие стандартные функции будут иметь свои спецификации исключений, измененные на noexcept в C++ 17?Функции, переворачивающие noexcept в C++ 17?

EDIT: Видимо P0488R0, в 2016-10-19 национальный орган Комментарии к стандартному рабочему проекту, включает в себя предлагаемые изменения, чтобы отметить функции совместимости нескольких C noexcept (см US 172-178). Наверное, нам придется ждать реакции РГ21 на них.

+0

В заявлении говорится, что спецификация исключения станет частью типа функции, но ничего не изменит стандартную библиотеку. – Gonmator

+1

@Gonmator. Просто неудобно, если такие вещи, как 'std :: sqrt', не станут' noexcept', как естественное следствие этого изменения в системе типов. – jotik

+0

Связанный: http://stackoverflow.com/a/30225086/1938163 –

ответ

1

C++ 17 изменение на noexcept допускает, чтобы указатели на функции имели тип noexcept.

C++ 17 изменить на noexcept не имеет ничего общего с тем, какие функции в стандартной библиотеке отмечены noexcept.

Ни один из них не зависит от другого.

Я не знаю никаких изменений в C++ 17, чтобы отметить каждую функцию из библиотеки C noexcept.