Вопросы по теме 'noexcept'
Почему операторы векторного доступа не указаны как noexcept?
Почему функции-члены operator[] , front и back std::vector не указаны как noexcept ?
4105 просмотров
schedule
05.07.2023
Использование спецификатора noexcept в объявлении и определении функции?
Рассмотрим следующую функцию:
// Declaration in the .h file
class MyClass
{
template <class T> void function(T&& x) const;
};
// Definition in the .cpp file
template <class T> void MyClass::function(T&& x) const;...
5197 просмотров
schedule
18.12.2022
Почему оператор * для unique_ptr не является исключением?
В C++11 и черновике C++14 операторы разыменования ( operator* и operator-> ) для shared_ptr оба являются noexcept . Но для unique_ptr operator-> это noexcept , а operator* нет. Почему operator* не вместо unique_ptr noexcept...
128 просмотров
schedule
16.04.2022
Какие алгоритмы и контейнеры в C++ 11 STL могут работать быстрее, если тип — noexcept?
На работе возник спор о том, насколько важно использовать noexcept. Мы все знаем, что noexcept на самом деле не очень много делает для оптимизатора компилятора, за исключением внешнего определенного кода, который в противном случае компилятор должен...
707 просмотров
schedule
17.03.2023
Каковы правила noexcept для конструкторов перемещения, определенных по умолчанию?
Особенно в связи с std::vector важно, чтобы типы были noexcept перемещаемыми, когда это возможно.
Поэтому при объявлении конструктора перемещения = default , как в
struct Object1
{
Object1(Object1 &&other) = default;
};...
1795 просмотров
schedule
07.03.2023
Может ли функция, помеченная как noexcept, иметь внутри исключения?
Допустим, у меня есть функция, помеченная как noexcept , но внутри есть строка кода, которая может генерировать ошибки. Эта строка кода будет находиться в блоке try, и исключение будет перехвачено. Это что-то вызывает?
void MyFunc() noexcept
{...
1893 просмотров
schedule
26.08.2022
Программа без конструктора noexcept принята gcc, отклонена clang
Код:
struct T { T() {} };
struct S
{
T t;
S() noexcept = default;
};
int main()
{
// S s;
}
g ++ 4.9.2 принимает это без ошибок или предупреждений, однако отчеты clang 3.6 и 3.7 для строки 7:
error: exception specification...
5908 просмотров
schedule
08.04.2022
Реализация массива фиксированного размера во время выполнения. Должны ли перемещаться исключения ctor и swap?
Проблема с std::array заключается в том, что он имеет фиксированный размер времени компиляции. Мне нужен контейнер, который может быть создан с динамическим размером, но этот размер остается фиксированным на протяжении всего срока службы контейнера...
40 просмотров
schedule
12.05.2023
Может ли бросить неинициализированный конструктор std::Optional или boost::Optional?
Можно ли объявить любой из следующих методов шаблона noexcept ?
template <typename T>
std::optional<T> foo(const T& value) // noexcept?
{
try {
// code possibly returning a T or a std::nullopt
} catch(...) {...
1091 просмотров
schedule
18.04.2024
Функции превращаются в noexcept в С++ 17?
Согласно этому ответу , спецификации исключений станут частью типа функции в C++17. Означает ли это, что спецификации исключений для многих функций также изменятся, например. функции в заголовках совместимости C получают спецификации noexcept ?...
528 просмотров
schedule
28.11.2022
Как смоделировать игнорирование ложных срабатываний Coverity Scan C++ «noexcept»?
Когда Coverity начинает распознавать C++11 noexcept как throw() , он производит ложные срабатывания в коде, вызывающем сторонние библиотеки, такие как Boost. Более того, некоторый код преднамеренно намеревается аварийно завершать работу при...
1054 просмотров
schedule
30.10.2022
В каких случаях компилятор C++ выводит noexcept?
Предположим, компилятор C++ компилирует функцию, определение которой доступно в той же единице трансляции, что и ее вызов. Предположим, что он не выбрасывает сам себя и не вызывает функцию, о которой известно, что она выбрасывает. Предположим также,...
455 просмотров
schedule
10.06.2022
Спецификатор noexcept с построением аргументов по умолчанию
Возьмите следующий пример кода:
void test(const Item& item = Item()) {
...
}
Предположим, что после того, как item было передано функции, это не может генерировать.
Вопрос: функция должна быть помечена noexcept или...
438 просмотров
schedule
22.10.2022
Может ли конструктор по умолчанию std::vector генерировать исключение
Если я создам пустой std::vector с помощью конструктора по умолчанию (и распределителя по умолчанию), может ли он вызвать исключение?
В общем, выделение места для элементов контейнера может вызвать исключение (которое будет std::bad_alloc ). Но...
1243 просмотров
schedule
30.09.2022
Кто управляет исключением, генерируемым конструктором копирования в параметрах?
Предположим, у меня есть эта функция
void foo() noexcept
{
// Safely noexcept code.
}
И затем этот класс:
class Bar
{
Bar(const Bar&) { ... } // Is not noexcept, so might throw
// Non movable:
Bar(Bar&&) = delete;...
73 просмотров
schedule
25.03.2023
Ошибка компиляции в списке при использовании С++ 11
Я получаю следующую ошибку при компиляции кода C++ с использованием параметра std=c++11.
In file included from /usr/include/c++/7/list:63:0,
from /usr/include/qt4/QtCore/qlist.h:51,
from...
91 просмотров
schedule
28.11.2022
Как мне статически утверждать, что static_cast не является исключением?
У меня есть функтор для выполнения статических приведений любого типа к определенному типу, определенному таким образом:
template <typename T_Out>
struct cast_to {
template <typename T_In>
T_Out operator()(T_In&& value)...
110 просмотров
schedule
09.04.2023