Должен ли я когда-либо использовать __throw_logic_error? - PullRequest
5 голосов
/ 15 сентября 2011

Я наткнулся на фрагмент кода, который использует функцию std::__throw_logic_error для выдачи исключений.Эта функция объявлена ​​в functexcept.h и, очевидно, делает то же самое, что и throw logic_error(...).Есть ли разница?Для чего нужна функция?Когда, если вообще, я должен предпочесть это?

Спасибо.

Ответы [ 2 ]

8 голосов
/ 15 сентября 2011

Нет, не используйте его (если вы действительно не знаете, что делаете). Он является внутренним для реализации (как и все __-имена).

6 голосов
/ 15 сентября 2011

В общем, вы не должны использовать его.

Два подчеркивания в начале имени указывают на то, что это дополнение для конкретного компилятора, и, вероятно, оно даже не предназначено для «публичного» использования, а просто как помощник для внутренних компонентов стандартной библиотеки (я подозреваю, что он там для поддержки, например, использование библиотеки без исключений, но я просто догадываюсь).

Просто используйте throw.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...