在c ++中是否有可能调用在另一个函数中作为字符串arg给出的名称的函数.例如:
void func1()
{
// do something
}
void func2()
{
// do something
}
int main()
{
call("func1");
call("func2");
}
Run Code Online (Sandbox Code Playgroud)
您可以创建一个std::map的std::functionC++ 11
std::map<std::string, std::function<void()> > call;
call["func1"] = func1 ;
call["func2"] = func2 ;
Run Code Online (Sandbox Code Playgroud)
然后,
call["func1"]( ) ;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
827 次 |
| 最近记录: |