2016-09-08 6 views
2

なぜstd::invokeが必要ですか?すでにstd::functionになっていますか?それらの違いは何ですか?どちらも呼び出し可能なオブジェクトの呼び出しに使用されていました。新しいテンプレートを追加するポイントは何ですか?あなたが(とすることなく、対処されている1知らなくstd::functionなど関数へのポインタ、メンバ関数へのポインタ、関数オブジェクト -std :: invokeとstd :: functionの違いは何ですか?

+13

私たちはすでに車を持っています。なぜ、緑色が必要なのでしょうか? (要するに、これら2つのものは**類似していますか?) – Yakk

+6

'std :: invoke'と' std :: function'は全く同じことをしません – David

+3

これを見てください[cppcon 2015 talk Stephan T. Lavavej(https://www.youtube.com/watch?v=zt7ThwVfap0) – NathanOliver

答えて

8

std::invokeどんな呼び出し可能を有効にする一般的な方法であります異なる構文を使用してください)。これは、ジェネリックプログラミング(テンプレート)で最も役立ちます。

一方、標準機能は、呼び出し可能な「もの」の汎用コンテナです。全く同じではありません。

関連する問題