我試圖根據帶參數的lambda函數調用boost::phoenix::function
並失敗。如果我以這樣的方式將它稱爲不帶參數:無法通過boost調用具有參數的懶惰lambda函數:: phoenix :: function
const auto closure = [](){
cout<< "test" << endl;
};
typedef decltype(closure) ClosureType;
const boost::phoenix::function<ClosureType> lazyFunc (std::move(closure));
lazyFunc()();
所有編譯好。但是,當我宣佈拉姆達的至少一個參數:
const auto closure = [](int& param) { cout<<"Test" << param << endl; };
typedef decltype(closure) ClosureType;
const boost::phoenix::function<ClosureType> lazyFunc (std::move(closure));
lazyFunc(arg1)(a);
編譯失敗,巨大的堆棧跟蹤深裏boost::result_of