最終更新日時: 2026年05月07日 12時33分06秒 (JST)
Akira Takahashi が更新

履歴 編集

function
<meta>

# std::meta::is_nothrow_applicable_type(C++26)

    namespace std::meta {
      consteval bool is_nothrow_applicable_type(info fn, info tuple);
    }

## 概要

関数型`fn`が、tuple-like型`tuple`の各要素型を引数として例外を送出せずに呼び出し可能かを判定する。

`is_applicable_type()`に加えて、その呼び出しが`noexcept`であることを要求する。

## 戻り値

`fn`が`tuple`の各要素型を順に引数として渡したときに、例外を送出せずに呼び出し可能な場合に`true`を返す。

## 例外

`fn`または`tuple`が型を表さない場合、`std::meta::exception` 例外を送出する。

## 例

    #include <meta>
    #include <tuple>

    void f(int, double) noexcept;
    void g(int, double);

    int main() {
      static_assert(std::meta::is_nothrow_applicable_type(
        ^^decltype(f), ^^std::tuple<int, double>));
      static_assert(!std::meta::is_nothrow_applicable_type(
        ^^decltype(g), ^^std::tuple<int, double>));
    }

### 出力

## バージョン

### 言語

- C++26

### 処理系

- Clang: ??
- GCC: 16 (`-freflection` オプション指定) ❌
- Visual C++: ??

## 関連項目

- `is_applicable_type`
- `apply_result`
- `std::apply()`

## 参照

- P3795R2 Miscellaneous Reflection Cleanup