我想了解如何在C++ 11中實現std::packaged_task
。將函數原型發送到模板如何工作?
我寫一個簡單的類:
template<typename _Signature>
class package;
template<typename _Res, typename... _ArgTypes>
class package<_Res(_ArgTypes...)>
{
};
int main()
{
package<int(int,int)> a;
}
我的問題是:
當我們發送int(int,int)
作爲模板參數,並編譯推斷什麼類型?這個例子中_Res
的類型是什麼?是lambda
還是std::function
還是別的?
什麼是_Res(_ArgTypes...)
的類型?
在C++之前11我們沒有像int(int,int)
之類的東西,在C++ 11中可能如何?
不應該int(int,int)爲int(*)(int,int)'? –
@πάνταῥεῖno我測試它,它工作正常 – Omid
@πάνταῥεῖ看到這個網站的例子:http://en.cppreference.com/w/cpp/thread/packaged_task – Omid