gpt4 book ai didi

c++ - 是否有 eval ("function(arg1, arg2)"的 C/C++ 等价物?

转载 作者:IT老高 更新时间:2023-10-28 23:27:45 25 4
gpt4 key购买 nike

它需要一种调用函数的方法,该函数的名称存储在类似于 eval 的字符串中。你能帮我吗?

最佳答案

C++ 没有反射,所以你必须破解它,即。 e.:

#include <iostream>
#include <map>
#include <string>
#include <functional>

void foo() { std::cout << "foo()"; }
void boo() { std::cout << "boo()"; }
void too() { std::cout << "too()"; }
void goo() { std::cout << "goo()"; }

int main() {
std::map<std::string, std::function<void()>> functions;
functions["foo"] = foo;
functions["boo"] = boo;
functions["too"] = too;
functions["goo"] = goo;

std::string func;
std::cin >> func;
if (functions.find(func) != functions.end()) {
functions[func]();
}
return 0;
}

关于c++ - 是否有 eval ("function(arg1, arg2)"的 C/C++ 等价物?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11078267/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com