Дает ли throw() (т.е. __declspec(nothrow)) реальные преимущества в Visual C++?

Ориентируясь на Visual C++, сталкивались ли вы когда-нибудь со значительным приростом производительности в коде C++ с помощью throw()(т.е.__declspec(nothrow)) Спецификация без выбрасывания? Действительно ли это помогает оптимизатору? Есть ли тесты, показывающие прирост производительности?

Я нашел другой (противоположный) совет в Интернете:

Обоснование спецификации исключений Boostпротивthrow(), вместо этого Ларри Остерман кажется в пользуоб этом в своем блоге: Зачем добавлять throw() к вашим методам?

(Я хотел бы пояснить, что меня интересует конкретный код VC++; я знаю, что в GCC спецификация throw()на самом деле может быть "пессимизацией" из-за к проверкам во время выполнения.)

PS Читая заголовки ATL, я обнаружил, что throw()используется повсеместно; более того, я нашел удобный класс C++ RAII unique_handleв этой статье MSDN, который также использует спецификацию throw().

13
задан 12 May 2012 в 15:09
поделиться