Skip to content

Latest commit

 

History

History
40 lines (27 loc) · 1.05 KB

lambda_to_noexcept_function_pointer.md

File metadata and controls

40 lines (27 loc) · 1.05 KB

noexcept付きのラムダ式から変換する関数ポインタにnoexceptを付加する

  • cpp17[meta cpp]

概要

キャプチャを持たない非ジェネリックなラムダ式は、関数ポインタに変換できる。そのラムダ式が例外を投げない指定をされていた場合、変換された関数ポインタもまたnoexceptを持つ。

例外を投げない指定とは、以下のいずれかである:

  • noexcept
  • noexcept(true)
  • throw() (C++17から非推奨)

#include <iostream>

int main()
{
  int(*fp)() noexcept = []() noexcept { return 1; };

  std::cout << fp() << std::endl;
}

出力

1

関連項目

参照