最終更新日時(UTC):
が更新

履歴 編集

function template
<functional>

std::invoke_r(C++23)

namespace std {
  template <class R, class F, class... Args>
  constexpr R invoke_r(F&& f, Args&&... args)
    noexcept(is_nothrow_invocable_r_v<R, F, Args...>);
}

概要

関数呼び出し可能なオブジェクトfとその引数args...の組み合わせでINVOKE要件に従った関数呼び出しを行う。 Rが(CV修飾された)voidでなければ、戻り値はR型へ暗黙変換される。

テンプレートパラメータ制約

is_invocable_r_v<R, F, Args...>true

戻り値

INVOKE<R>(std::forward<F>(f), std::forward<Args>(args)...)

#include <iostream>
#include <functional>

// ASCIIコード 0x43 == 'C'
int ch() { return 0x43; }

int main()
{
  std::cout << std::invoke_r<char>(ch()) << std::endl;
}

出力例

C

バージョン

言語

  • C++23

処理系

関連項目

参照