Вопросы по теме 'noexcept'
Когда мне действительно следует использовать noexcept?
Ключевое слово noexcept может быть соответствующим образом применено ко многим сигнатурам функций, но я не уверен, когда мне следует рассмотреть возможность его использования на практике. Судя по тому, что я читал до сих пор, добавление noexcept...
126988 просмотров
schedule
15.08.2022
Как создать псевдоним для указателя функции noexcept?
Я хотел бы сделать это:
using function_type = void (*)(void*)noexcept;
Но я получаю сообщение об ошибке «Спецификации исключений не допускаются в псевдонимах типов». (лязг в версии 6.1 Xcode)
Есть ли обходной путь для создания псевдонима...
1960 просмотров
schedule
14.03.2022
С++ пропускает спецификатор `noexcept` по сравнению с `noexcept (false)`, каково их точное значение?
Если я помечаю функцию как noexcept(false) или любое другое выражение, которое оценивается как ложное, что это значит? (1) гарантирую ли я компилятору, что функция может генерировать исключение? (2) или я ничего не гарантирую, может ли она...
1457 просмотров
schedule
03.04.2024
С++, почему в контексте конструкторов перемещения и операторов присваивания перемещения требуется noexcept для включения оптимизации?
Рассмотрим следующий класс с конструктором перемещения и оператором присваивания перемещения:
class my_class
{
protected:
double *my_data;
uint64_t my_data_length;
}
my_class(my_class&& other) noexcept :...
3119 просмотров
schedule
17.07.2022
noexcept, наследование конструкторов и недопустимое использование неполного типа, который на самом деле завершен
Я не уверен, является ли это ошибкой компилятора GCC или предполагаемым поведением noexcept . Рассмотрим следующий пример:
struct B {
B(int) noexcept { }
virtual void f() = 0;
};
struct D: public B {
using B::B;
D()...
555 просмотров
schedule
19.03.2024
noexcept функции, возвращающей класс, имеющий бросающий деструктор
В следующем коде я думал, что утверждение не должно срабатывать, но оно срабатывает.
struct A
{
~A() noexcept(false);
};
A f() noexcept;
int main()
{
static_assert(noexcept(f()), "f must be noexcept");
}
Функция f() не является...
135 просмотров
schedule
30.05.2023
Есть ли разница между спецификацией noexcept и empty throw для лямбда-выражения?
Учитывая пример:
double values[] {2.5, -3.5, 4.5, -5.5, 6.5, -7.5};
std::vector<double> squares(std::end(values) - std::begin(values));
std::transform(std::begin(values), std::end(values), std::begin(values), std::begin(squares),...
921 просмотров
schedule
14.09.2022
Разве не имеет смысла перегрузить noexcept?
Я пытаюсь понять функцию noexcept. Я знаю, что это может сбивать с толку, но, кроме того, это не может быть выведено из вызывающей функции, когда это возможно.
Это нерабочий пример этой ситуации,
void f(){}
void f() noexcept{} // not allowed...
659 просмотров
schedule
17.05.2024
Использовать зависимый оператор noexcept
Интересно, можно ли использовать оператор C++11 noexcept для определения спецификатор noextcept e. грамм. деструктор, вызывающий метод другого класса (например, std::allocator::deallocate):
template <class DelegateAllocator =...
66 просмотров
schedule
24.07.2023
Каковы побочные эффекты пометки производной реализации noexcept, если интерфейс не
У нас есть класс, который реализует IUnknown (или любой интерфейс, которым мы не владеем). Мы начали помечать большинство/все наши методы словом noexcept для любой потенциальной оптимизации, так как мы все равно не выбрасываем никаких исключений;...
226 просмотров
schedule
27.07.2022
Почему старая спецификация пустого броска была переписана с новым синтаксисом `noexcept`?
Название говорит само за себя: почему C++ отказался от полностью удовлетворяющей, полезной, пустой спецификации throw throw() , чтобы заменить ее другим синтаксисом, добавив новое ключевое слово noexcept ?
Спецификация пустого броска — это...
136 просмотров
schedule
20.11.2023
Как обнаружить метод noexcept с помощью SFINAE
Я спрашиваю о варианте (популярного) вопроса - обнаружении существования метода класса.
Я прочитал много ответов здесь, в SO, и большинство решений (после С++ 17) выглядят как это :
#include <type_traits>
template<class ...Ts>...
60 просмотров
schedule
12.08.2022