私はクラス内に関数とそのパラメータが渡された関数を持っており、それを関数呼び出しにバインドして関数間で関数を呼び出します。C++テンプレート内クラス
これはコードがすばらしくないことを知っている概念をテストするために一緒に素早くハッキングされています。
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をサポートしていません
本当にありがとうございました。
'GetProfile'の戻り値の型はどうでしょうか? – songyuanyao
'_STD'とは何ですか?アンダースコアの先頭に大文字が続く名前は、任意の目的のために実装に予約されています。したがって、あなた自身のコードでそれを使用することは、未定義の動作です。 (そして、もしそれが 'std ::'の#defineなら、どうして***? - それは何のタイピングも保存しません。) –
@MartinBonner MicrosoftのC++標準ライブラリでは、 '_STD'は内部の 'yvals.h'ヘッダに' :: std :: 'と定義されています。 – InternetAussie