最終更新日時: 2025年07月12日 02時16分44秒 (JST)
Koichi Murase が更新

履歴 編集

class
<functional>

# std::bad_function_call(C++11)

    namespace std {
      class bad_function_call : public exception;
    }

## 概要

`std::bad_function_call`は、空の`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;
      }
    }

### 出力

    bad function call

## バージョン

### 言語

- C++11

### 処理系

- Clang: ??
- GCC: 4.4 ✅
- ICC: ??
- Visual C++: 2010 ✅

### 参照