Spec-Zone.ru › C++

std::bad_function_call

Определено в заголовке <functional>
class bad_function_call;
(с C++11)

Тип исключения, выбрасываемого std::function::operator(), если обёртка функции не имеет целевого объекта.

cpp/error/exceptionstd-bad function call-inheritance.svg

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

Члены-функции

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

std::bad_function_call::bad_function_call

bad_function_call() noexcept;
(1) (с C++11)
bad_function_call( const bad_function_call& other ) noexcept;
(2) (с C++11)

Создаёт новый объект bad_function_call с реализуемой нуль-терминированной строкой байтов, доступной через what().

1) Конструктор по умолчанию.
2) Конструктор копирования. Если *this и other оба имеют динамический тип std::bad_function_call, то std::strcmp(what(), other.what()) == 0.

Параметры

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

std::bad_function_call::operator=

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

virtual const char* what() const noexcept;
(с C++11)

Возвращает строку с пояснением.

Параметры

(нет)

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

Указатель на нуль-терминированную строку с дополнительной информацией. Строка подходит для преобразования и отображения в виде std::wstring. Указатель гарантированно действителен по крайней мере до тех пор, пока объект исключения, из которого он получен, не будет уничтожен, или пока не будет вызвана функция-член (например, оператор присваивания копирования) объекта исключения.

Примечания

Реализации разрешается, но не требуется переопределять what().

Наследуется от std::exception

Члены-функции

(деструктор)
[виртуальный]
уничтожает объект исключения
(виртуальная публичная функция-член std::exception)
what
[виртуальный]
возвращает строку с пояснением
(виртуальная публичная функция-член 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

См. также

function
(C++11)
оборачивает вызываемый объект любого копируемого типа с указанной сигнатурой вызова функции
(шаблон класса)

© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/w/cpp/utility/functional/bad_function_call

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API