C++11 std::bind std::function 高階用法

發表於2016-12-10

從最基礎的瞭解,std::bind和std::function

Hello world !
sumFunc.Call(1, 2, 3) : 6

—————————
Hello world !
sumFn(1, 2, 3) : 6

—————————

上面的例子非常有趣,使用了2種方案,將一個函式,註冊到一個物件/仿函式中,並且通過一個物件/仿函式來直接呼叫呼叫。
例子顯而易見的,第2種方案更佳簡潔,並且對傳遞引數有明確的判斷,當引數型別或數量不正確的時候,編譯器將導致失敗。
這種方案,可以將類的成員變數直接作為函式的引數使用,或者,如我:
http://blog.csdn.net/eclipser1987/article/details/23926395
這篇文章中,無法直接呼叫指令碼函式類,有了好的解決辦法。這個我將隨後補充。

foobar(4, 2)
Foo::bar(4, 2)
lambda::Foo::bar(4, 2)

相關文章