Добавляет ли noexcept бинарную совместимость? - программирование
Подтвердить что ты не робот

Добавляет ли noexcept бинарную совместимость?

Простой вопрос: если это изменить:

void someMethod();

в

void someMethod() noexcept;

будет ли он нарушать двоичную совместимость или же подпись метода останется прежней?

4b9b3361

Ответ 1

Сохранена ли подпись метода?

Да. https://en.cppreference.com/w/cpp/language/noexcept_spec:

Функции, отличающиеся только спецификацией исключения, не могут быть перегружены (как и тип возврата, спецификация исключения является частью типа функции, но не является частью сигнатуры функции) (начиная с С++ 17).

Будет ли он нарушать двоичную совместимость?

Наверное, нет, но стандарт не гарантирует ничего (AFAIK).