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/ –