클래스 내에 함수와 매개 변수가 전달 된 함수가 있고 함수 호출에 바인딩 한 다음 다른 함수와 함수를 호출합니다.클래스 내의 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;
}
는이 오류를
오류이 오류 C4430을 얻을 : 타입 지정자 누락 - 가정 int로. 참고 : C++ 은 default-int를 지원하지 않습니다.
정말 도움이됩니다.
'GetProfile'의 리턴 타입은 무엇이되어야합니까? – songyuanyao
'_STD '란 무엇입니까? 밑줄 문자 앞에 대문자가 오는 이름은 임의의 목적을 위해 구현에 예약되어 있습니다. 따라서 코드에서 사용하면 정의되지 않은 동작이 발생합니다. (만약 std ::에 대한 #define이라면 왜 ***을 사용해야합니까? *** - 타이핑을 저장하지도 않습니다.) –
@MartinBonner Microsoft의 C++ 표준 라이브러리에서 '_STD'는 다음과 같습니다. 내부의'yvals.h' 헤더에':: std ::'로 정의됩니다. – InternetAussie