std::bad_function_call
| Определено в заголовочном файле <functional>
|
||
class bad_function_call; |
(начиная с C++11) | |
std::bad_function_call это тип исключения, генерируемого std::function::operator(), если у оболочки функции нет цели.
Диаграмма наследования
Функции-элементы
(конструктор) |
создаёт новый объект bad_function_call (public функция-элемент) |
operator= |
заменяет объект bad_function_call (public функция-элемент) |
what |
возвращает пояснительную строку (public функция-элемент) |
std::bad_function_call::bad_function_call
<tbody> </tbody> bad_function_call() noexcept; |
(1) | (начиная с C++11) |
bad_function_call( const bad_function_call& other ) noexcept; |
(2) | (начиная с C++11) |
Создаёт новый объект bad_function_call с определённой реализацией строкой байтов, заканчивающейся нулём, которая доступна через what().
*this и other имеют динамический тип std::bad_function_call, тогда std::strcmp(what(), other.what()) == 0.Параметры
| other | — | другой объект исключения для копирования |
std::bad_function_call::operator=
<tbody> </tbody> bad_function_call& operator=( const bad_function_call& other ) noexcept; |
(начиная с C++11) | |
Присваивает содержимое содержимому other. Если *this и other имеют динамический тип std::bad_function_call, тогда std::strcmp(what(), other.what()) == 0 после присваивания.
Параметры
| other | — | другой объект исключения для присваивания |
Возвращаемое значение
*this
std::bad_function_call::what
<tbody> </tbody> virtual const char* what() const noexcept; |
(начиная с C++11) | |
Возвращает пояснительную строку.
Параметры
(нет)
Возвращаемое значение
Указатель на завершающуюся нулём строку с пояснительной информацией. Строка подходит для преобразования и отображения в виде std::wstring. Указатель гарантированно действителен, по крайней мере, до тех пор, пока объект исключения, из которого он получен, не будет уничтожен или пока не будет вызвана неконстантная функция-элемент (например, оператор присваивания копированием) для объекта исключения.
Примечание
Реализации могут, но не обязаны переопределять what().
Унаследован от std::exception
Функции-элементы
[virtual] |
уничтожает объект исключения (virtual public of std::exception функция-элемент)
|
[virtual] |
возвращает поясняющую строку (virtual public of std::exception функция-элемент)
|
Пример
#include <functional>
#include <iostream>
int main()
{
std::function<int()> f = nullptr;
try {
f();
} catch(const std::bad_function_call& e) {
std::cout << e.what() << '\n';
}
}
Возможный вывод:
bad function call
Смотрите также
(C++11) |
обёртывает вызываемый объект любого конструируемого копированием типа с указанной сигнатурой вызова функции (шаблон класса) |