- functional[meta header]
- std[meta namespace]
- class[meta id-type]
- cpp11[meta cpp]
namespace std {
class bad_function_call : public exception;
}
- exception[link /reference/exception/exception.md]
std::bad_function
は、空のstd::function
オブジェクトに対してoperator()
を呼び出した際に送出される例外クラスである。
注意: 空のstd::function
オブジェクトに対してstd::bind()
を呼び出した結果をstd::function
オブジェクトに格納しても空にはならないが、実際にoperator()
を呼ぶとstd::bad_function_call
例外が送出される。
#include <iostream>
#include <functional>
int main()
{
std::function<void()> f;
try {
f();
}
catch (std::bad_function_call& e) {
std::cout << "bad function call" << std::endl;
}
}
- std::bad_function_call[color ff0000]
- std::function[link function.md]
bad function call
- C++11
- Clang: ??
- GCC:
- GCC, C++11 mode: 4.4, 4.7.2(what()が"std::bad_weak_ptr"を返すので規格違反。バグ報告済み: #55847。4.7.3で修正されている。)
- ICC: ??
- Visual C++: 2010