类中的c ++模板

时间:2017-05-03 09:53:35

标签: c++ class templates

我在类中传递一个函数及其参数,然后将它们绑定到函数调用中并调用函数等。

这已被快速入侵,以测试我知道代码不是很好的概念。

class Profiling {
public: 
    template<class _Fn, class... _Args> GetProfile(_Fn&& _Fx, _Args&&... _Ax);
    int GetTime();
    char Type;
    int Size;
private:
    int StartTime;
    int EndTime;
};
template<class _Fn, class... _Args> Profiling::GetProfile(_Fn&& _Fx, _Args&&... _Ax)
{
    StartTime = clock();
    function<void()> f = _STD bind(_Decay_copy(_STD forward<_Fn>(_Fx)), _Decay_copy(_STD forward<_Args>(_Ax))...);
    f();
    EndTime = clock();

}
int Profiling::GetTime() {
    return EndTime - StartTime;
}

我收到此错误

  

错误2错误C4430:缺少类型说明符 - 假定为int。注意:C ++   不支持default-int

任何帮助都非常感激。

1 个答案:

答案 0 :(得分:3)

您缺少函数的返回类型。

template<class _Fn, class... _Args>
/* return type here */ GetProfile(_Fn&& _Fx, _Args&&... _Ax);

由于您不会在函数中返回任何内容,void将是适当的返回类型。