C++

C++17 std::invoke_result

  • このエントリーをはてなブックマークに追加
  • Pocket

C++17 テクニック #1

tl;dr

std::result_ofは非推奨になったので、

std::invoke_resultを使いましょう。

そもそも、関数型をテンプレート引数に持つことに問題が多過ぎる。

配列がポインタに推論されるとか、修飾子が無視されるとか。

参考

std::invoke_result<F, ArgTypes…>

はい

これは、invoke可能な場合、std::invoke(f, args…)の結果の型をtypeに持ちますね。

負の遺産がない、ピュアピュアな新ライブラリです。

std::invoke_result_tももちろんあります。


s/result_of(.*)<(.+)\((.*)\)>/invoke_result$1<$2, $3>/g

とかで置換したらいいんじゃないですかね(雑

  • このエントリーをはてなブックマークに追加
  • Pocket

コメントを残す

*

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください