class RegisterClass {
public:
typedef string(*Creator) (const string);
typedef map <string, Creator> CreatorResgister;
static CreatorResgister& Registry() {
static CreatorResgister* g_ = new CreatorResgister();
return *g_;
}
};
一个函数指针类型 Creator
一个映射红黑树 CreatorResgister
一个单例注册类 Registry
一个函数
string look(string str) {
return str;
}
调用方法
RegisterClass::Registry()["look"] = look;