Namespaces
Variants

std::bad_function_call

cppreference.net에서
 
 
유틸리티 라이브러리
일반 유틸리티
관계 연산자 (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++23)
항등 함수 객체
(C++20)
투명 연산자 래퍼
(C++14)
(C++14)
(C++14)
(C++14)  
(C++14)
(C++14)
(C++14)
(C++14)
(C++14)
(C++14)
(C++14)
(C++14)
(C++14)

오래된 바인더와 어댑터
(C++17까지*)
(C++17까지*)
(C++17까지*)
(C++17까지*)  
(C++17까지*)
(C++17까지*)(C++17까지*)(C++17까지*)(C++17까지*)
(C++20까지*)
(C++20까지*)
(C++17까지*)(C++17까지*)
(C++17까지*)(C++17까지*)

(C++17까지*)
(C++17까지*)(C++17까지*)(C++17까지*)(C++17까지*)
(C++20까지*)
(C++20까지*)
 
헤더 <functional>
class bad_function_call;

std::bad_function_call에 정의됨은 함수 래퍼에 대상이 없을 때 std::function::operator()에 의해 던져지는 예외의 타입입니다.

cpp/error/exception

상속 다이어그램

멤버 함수

(생성자)
새로운 bad_function_call 객체를 생성함
(public 멤버 함수)
operator=
bad_function_call 객체를 대체함
(public 멤버 함수)
what
설명 문자열을 반환함
(public 멤버 함수)

std::bad_function_call:: bad_function_call

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

새로운 bad_function_call 객체를 생성합니다. 이 객체는 구현에서 정의된 null-terminated 바이트 문자열을 가지며, 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 ;
(since C++11)

설명 문자열을 반환합니다.

반환값

설명 정보를 담은 구현 정의 널 종료 문자열에 대한 포인터. 이 문자열은 std::wstring 으로 변환 및 표시하기에 적합합니다. 이 포인터는 최소한 해당 포인터를 얻은 예외 객체가 소멸되거나, 예외 객체의 비상수 멤버 함수(예: 복사 할당 연산자)가 호출되기 전까지는 유효함이 보장됩니다.

참고

구현체는 what() 을 재정의할 수 있지만 필수는 아닙니다.

std::exception에서 상속됨

멤버 함수

[virtual]
예외 객체를 파괴함
( std::exception 의 virtual public 멤버 함수)
[virtual]
설명 문자열을 반환함
( std::exception 의 virtual public 멤버 함수)

예제

#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++ 표준에 소급 적용되었습니다.

DR 적용 대상 게시된 동작 올바른 동작
LWG 2233 C++11 what() 항상 동일한 설명 문자열을 반환함
std::exception::what() 와 동일
자체 설명 문자열을
반환함

참고 항목

(C++11)
복사 생성 가능한 모든 호출 가능 객체의 복사 가능 래퍼
(클래스 템플릿)