C++로 일반 래퍼를 작성하려고합니다. 여기에 지금까지 작성한 것입니다 :일반 래퍼 C++
예를 들어, 사용하여 인스턴스화 할 수//primary template
template<typename T>
class function
{
};
//partially specialized template
template<typename T, typename U, typename V>
class wrapper<T(U,V)>
{
private:
//typedef pointer to function
typedef T (*pfn)(U,V);
pfn f;
public:
wrapper(pfn func):f(func)
{
};
T operator()(U a, V b)
{
return f(a,b);
}
};
:
wrapper<double(double, double)> someWrapper(&someFunction);
방법 누군가의 측면에서 올바른 방향으로 날 지점 수 있는지 궁금
다음과 같은 방법으로 인스턴스화 할 수 있도록 래퍼 템플릿을 수정하십시오.
wrapper<double(double, double)> somewrapper(&someClass, &someClass::someFunction)
wrapper<double(someClass*, double)> somewrapper(&someClass::someFunction)
이 점에 대해 도움을 주셔서 감사합니다.
'std :: function'의 문제점은 무엇입니까? –
Boost에 이미 Boost.Function이 있습니다 : http://www.boost.org/doc/libs/1_47_0/doc/html/function.html – Dani
http://loki-lib.sourceforge.net/ –