5
我最近發現,函數指針的語法可以用下面的輔助類時,可以簡化爲:成員函數的typedef可以用helper模板類簡化嗎?
template<typename Sig>
struct Fun {
typedef Sig* Ptr;
};
它讓我的指針,如下所示void()
:
typedef Fun<void()>::Ptr fun_ptr;
fun_ptr f = foo;
我想創建一個類似的實用程序來創建成員函數指針的typedef。它將允許的語法如下:
struct Foo {
void bar() {}
};
typedef MemFun<Foo, void()>::Ptr bar_type;
bar_type b = &Foo::bar;
不過,我想不通typedef的語法:
template<class T, typename Sig>
struct MemFun {
// How to use T and Sig to create member function typedef?
};
誰能幫助?
'std :: function'有問題嗎?或者'boost :: function',如果你的工具鏈是古老的......這一切早已被髮明瞭。 –