Вопросы по теме 'noexcept'
Должен ли я объявить конструктор копирования моих исключений noexcept?
В статье More Effective C++ Скотт Мейерс говорит:
C++ указывает, что объект, созданный как исключение, копируется.
Тогда я предполагаю, что если конструктор копирования выбрасывает исключение, в свою очередь, вызывается std::terminate ,...
2155 просмотров
schedule
14.09.2022
Спецификатор Noexcept: почему нет проверки времени компиляции?
Я изучаю спецификатор noexcept и задаюсь вопросом о причине некоторых его дизайнерских решений. В частности, причина, по которой он не выполняет такие же проверки времени компиляции, как, например, спецификатор constexpr . Я объясню это...
103 просмотров
schedule
03.06.2022
Принудительно использовать noexcept для std::function?
Этот код компилируется и запускается, выдавая int :
#include <functional>
void r( std::function<void() noexcept> f ) { f(); }
void foo() { throw 1; }
int main()
{
r(foo);
}
Однако я бы хотел, чтобы компилятор отклонил...
2109 просмотров
schedule
12.07.2023
Как спецификатор исключения в операторе присваивания перемещения может повлиять на конструктор перемещения?
Я тестировал GCC 5.2 и clang 3.6, оба в режиме С++ 14, и они дают одинаковый результат.
Для следующего кода
#include <iostream>
#include <type_traits>
struct S {
// S& operator= (S&&) noexcept { return *this; }
};...
319 просмотров
schedule
22.12.2022
Исключение C++, неопределенное поведение и отсутствие исключений
Об этой функции
int test(int a,int b)
{
return a/b;
}
Если я вызову test(2,1) , ничего не произойдет. Но если я вызову test(2,0) , это вызовет неопределенное поведение. В результате я должен определить его как noexcept ? Кстати,...
496 просмотров
schedule
06.09.2022
Почему спецификатор noexcept не включен в объявленный метод?
Пытаясь разработать некоторые классы без исключений, у меня есть структура наследования, подобная этой, но я обнаружил, что спецификатор noexcept практически не помогает при работе с функциями-членами, поскольку спецификатор не ограничен областью...
332 просмотров
schedule
12.07.2022
Почему std::unique_ptr явно не требует удаления без исключений?
В документации сказано, что Deleter должен быть:
не строить
nothrow callable (потому что он вызывается из ~unique_ptr() noexcept
неразрушаемый (по указанной выше причине)
Мой вопрос в том, почему uniqut_ptr определено, чтобы...
187 просмотров
schedule
28.09.2022
скопировать elision возвращаемых значений и noexcept
У меня есть такой шаблон функции:
template <typename T>
constexpr auto myfunc() noexcept
{
return T{};
}
Гарантируется ли, что этот шаблон функции будет исключен из-за исключения копии? Если внутри конструктора генерируется...
125 просмотров
schedule
27.07.2022
noexcept поведение функций constexpr
Формулировка [expr.unary.noexcept] изменена в C ++ 17 .
Ранее ( n4140, 5.3.7 оператор noexcept [expr.unary.noexcept] ), мой акцент :
Результатом оператора noexcept будет false, если в потенциально оцениваемом контексте выражение...
245 просмотров
schedule
07.01.2023
Конструктор неявного перемещения должен быть по возможности без исключения.
В основном по стандарту:
Конструктор-наследник (12.9) и неявно объявленная специальная функция-член (раздел 12) имеют спецификацию исключения . Если f является наследующим конструктором или неявно объявленным конструктором по умолчанию,...
49 просмотров
schedule
29.07.2023
Почему немедленные функции не имеют значения noexcept по умолчанию и почему им разрешено быть noexcept (false)?
Начиная с C ++ 20, мы можем определять немедленные функции, используя спецификатор consteval . Когда функция объявляется consteval , каждый вызов этой функции должен создавать константу времени компиляции, в противном случае программа имеет...
137 просмотров
schedule
16.06.2022
Является ли noexcept бесполезным, если отказ от броска не требует затрат?
Является ли спецификатор noexcept бесполезным, если ваша реализация имеет модель исключений с нулевой стоимостью (если ничего не выбрасывается)? Каков пример, когда отсутствие noexcept имеет последствия?
151 просмотров
schedule
19.07.2023