Какова цель использования модификаторов, как noexcept
, __declspec(nothrow)
, throw()
, __attribute__(nothrow)
и, вероятно, еще несколько все с различной семантикой, поддержкой компилятором и предполагаемыми плюсами и минусами ? Когда я пытаюсь добавить какие-либо из них в свой код, я все равно получаю одну и ту же сборку.noexcept, __declspec (nothrow), бросок(), __attribute __ (nothrow)
3
A
ответ
2
This article, кажется, подразумевает, что некоторые компиляторы могут в некоторых случаях оптимизируют на основе этой информации. Я предполагаю, что компилятор может избежать некоторой работы, но только в особо конкретных случаях.
Эта же статья, по-видимому, предполагает, что не явно использует ключевое слово - это прекрасный путь к выбору из-за того, насколько конкретным является прецедент.
Смежные вопросы
- 1. Использование __declspec (nothrow) для функций, возвращающих ссылки
- 2. VC++ 2008/2010: is throw() или __declspec (nothrow) лучший выбор?
- 3. operator ++() nothrow не компилируется
- 4. nothrow или исключение?
- 5. Когда следует использовать std :: nothrow?
- 6. Как реализовано `new (std :: nothrow)`?
- 7. Как свернуть конструктор с новым (std :: nothrow)?
- 8. функция-Try-блок и noexcept
- 9. std :: string not nothrow move присваиваемый или сопоставимый?
- 10. nothrow построения виртуальных классов в C++ 11
- 11. Что такое nothrow delete в C++?
- 12. вектор, перемещение семантики, nothrow и g ++ 4.7
- 13. В чем разница между объявляющей функцией как __attribute __ (nothrow) и `throw()`
- 14. Использование noexcept в производных классах
- 15. станд :: nothrow не работает, как ожидалось - всегда ложно
- 16. Имеет ли смысл использовать _attribute__ ((nothrow)) внутри extern C?
- 17. new (std :: nothrow) вместо новой обработки ошибок и ошибок
- 18. Почему std :: nothrow не работает в gcc (4.9)?
- 19. Почему D обозначает эту функцию как чистый nothrow @nogc?
- 20. переписывают бросок после функции с noexcept
- 21. Кажется, я не могу использовать детектор утечки MS для нового выражения `new (std :: nothrow)`. Это верно?
- 22. , что делать в случае отказа выделения памяти нового (nothrow) в C++ на Linux
- 23. принудительно использовать std :: nothrow во время компиляции или во время статического анализа
- 24. почему C++ 11 обозначает деструкторы как nothrow, и можно ли переопределить его?
- 25. __attribute __ ((упакована)) и __attribute __ ((__ packed__))
- 26. Каковы правила для noexcept для стандартных конструкторов перемещения по умолчанию?
- 27. noexcept зависит от noexcept функции члена
- 28. Использование оператора noexcept для цепочки noexcept объявлений
- 29. Замена «TYPEDEF int64_t X_T __attribute __ ((VECTOR_SIZE (16))).
- 30. C++: noexcept (или throw()) virtual destructor = default;