Son zamanlarda, aşağıdaki yardımcı sınıfı kullanırken işlev işaretçisi sözdiziminin basitleştirilebildiğini buldum:Üye fonksiyonu yazarak yardımcısı şablon sınıfları ile basitleştirilebilir mi?
template<typename Sig>
struct Fun {
typedef Sig* Ptr;
};
void()
için bana bir işaretçi aşağıdaki gibi izin veriyor:
typedef Fun<void()>::Ptr fun_ptr;
fun_ptr f = foo;
Benzer bir yardımcı program oluşturmak istiyorum üye işlev işaretçilerine bir yazım hatası oluşturmak için. Aşağıdaki sözdizimini sağlar:
struct Foo {
void bar() {}
};
typedef MemFun<Foo, void()>::Ptr bar_type;
bar_type b = &Foo::bar;
Ancak, yazım hatası sözdizimini anlayamıyorum:
template<class T, typename Sig>
struct MemFun {
// How to use T and Sig to create member function typedef?
};
Herkes yardımcı olabilir mi?
std :: function' ile ilgili bir sorun mu var? Veya '' ringa '' işlevi eskideyse ... bu çoktan bir süre önce icat edildi. –