Пространства имён
Варианты
Действия

std::format_error

Материал из cppreference.com
< cpp‎ | utility‎ | format
 
 
Библиотека утилит
Языковая поддержка
Поддержка типов (базовые типы, RTTI)
Макросы тестирования функциональности библиотеки (C++20)    
Управление динамической памятью
Программные утилиты
Поддержка сопрограмм (C++20)
Вариативные функции
Трёхстороннее сравнение (C++20)
(C++20)
(C++20)(C++20)(C++20)(C++20)(C++20)(C++20)
Общие утилиты
Дата и время
Функциональные объекты
Библиотека форматирования (C++20)
(C++11)
Операторы отношения (устарело в C++20)
Целочисленные функции сравнения
(C++20)(C++20)(C++20)    
(C++20)
Операции обмена и типа
(C++14)
(C++11)
(C++11)
(C++11)
(C++17)
Общие лексические типы
(C++11)
(C++17)
(C++17)
(C++17)
(C++11)
(C++17)
(C++23)
Элементарные преобразования строк
(C++17)
(C++17)
 
Библиотека форматирования
Функции форматирования
(C++20)
(C++20)
(C++20)
(C++20)
Концепты форматирования
Форматировщик
(C++20)
Аргументы форматирования
(C++20) (устарело в C++26)
Ошибка формата
format_error
(C++20)
 
Определено в заголовочном файле <format>
class format_error;
(начиная с C++20)

Определяет тип объекта исключения, выбрасываемого для сообщения об ошибках в библиотеке форматирования.

cpp/error/exceptioncpp/error/runtime errorstd-format error-inheritance.svg

Диаграмма наследования

Содержание

[править] Функции-элементы

(конструктор)
создаёт новый объект format_error с заданным сообщением
(public функция-элемент)
operator=
заменяет объект format_error
(public функция-элемент)

std::format_error::format_error

format_error( const std::string& what_arg );
(1)
format_error( const char* what_arg );
(2)
format_error( const format_error& other ) noexcept;
(3)
1) Создаёт объект исключения с what_arg в качестве пояснительной строки. После создания std::strcmp(what(), what_arg.c_str()) == 0.
2) Создаёт объект исключения с what_arg в качестве пояснительной строки. После создания std::strcmp(what(), what_arg) == 0.
3) Конструктор копирования. Если *this и other имеют динамический тип std::format_error, тогда std::strcmp(what(), other.what()) == 0.

Параметры

what_arg пояснительная строка
other другой объект исключения для копирования

Исключения

1,2) Может генерировать std::bad_alloc.

Примечание

Поскольку при копировании std::format_error не разрешается создавать исключения, это сообщение обычно хранится внутри в виде отдельно выделенной строки с подсчётом ссылок. По этой же причине нет конструктора, принимающего std::string&&: ему всё равно пришлось бы копировать содержимое.

A производный стандартный класс исключения должен иметь общедоступный конструктор копирования. Его можно определить неявно, если поясняющие строки, полученные с помощью what(), одинаковы для исходного объекта и скопированного объекта.

std::format_error::operator=

format_error& operator=( const format_error& other ) noexcept;

Присваивает содержимое из other. Если *this и other имеют динамический тип std::format_error, тогда std::strcmp(what(), other.what()) == 0 после присваивания.

Параметры

other другой объект исключения для присваивания

Возвращаемое значение

*this

Примечание

A производный стандартный класс исключения должен иметь общедоступный оператор присваивания копированием. Его можно определить неявно, если поясняющие строки, полученные с помощью what(), одинаковы для исходного объекта и скопированного объекта.

Унаследован от std::runtime_error


Унаследован от std::exception

Функции-элементы

уничтожает объект исключения
(virtual public of std::exception функция-элемент) [править]
[virtual]
возвращает поясняющую строку
(virtual public of std::exception функция-элемент) [править]

[править] Пример

[править] Смотрите также