我有非常使用的std ::的result_of,decltype和std ::功能C++ 11 - 得到的result_of,decltype,和性病::功能和可變參數模板一起工作
與可變參數模板的麻煩。
我有下面的函數功能 -
int foo(int a, int b, int c) {
std::cout << a << b << c << std::endl;
return 0;
}
及以下類
template <class T, class... Args>
class VariadicTest {
public:
VariadicTest(const T& func, Args... args) : func(func) {};
private:
T func;
};
我想在類的成員保存lambda表達式,
爲這我需要一個std ::函數。
我的問題是如何正確定義std :: function。
此類的用例將看起來像 -
VariadicTest(foo, 1,2,3);
所以現在我有T = INT __cdecl(INT,INT,int)和參數數量=(INT - 1,INT - 2,INT - 3 )
從這個我想一個成員函數,看上去就像這樣:
std::function<std::result_of<T(Args...)::type(Args...)>
現在這當然不能編譯,也沒有50元左右其他的東西,我試過了。
基本上我需要此示例的下面的聲明
std::function<int(int,int,int)> _f;
當然本的並以每個給定T和參數數量被自動化。
你嘗試'的std ::功能<類型名稱的std ::的result_of'或單獨typedef獲取結果類型? –
我不確定我是否理解課堂的要求。它試圖達到什麼目的? –