最近在c++看到這東西,感覺很厲害,想試試看一直疊上去。
首先是
void foo(int)
{
std::cout << "fo is called with: " << i << "\n";
}
然後
using foType = std::function<void(int)>;
int main()
{
foType f1 = std::bind(&foo,std::placeholders::_1);
f1(5);
}
這樣會輸出 fo is called with: 5
這樣算一層。
如果加個
void foAndFo(foType fo)
{
std::function<void(int)> fos = std::bind(fo, std::placeholders::_1);
fos(1);
}
等於是外面再包一層,但是bind的地方該怎麼寫呢?似乎是不能
std::function<foType> fo2 =std::bind(&foAndFo, std::placeholders::_1);
這樣寫啊
想說一直疊上去結果疊兩層就沒。了