我有一个C ++函数,该函数接受其他两个函数作为参数:
// ParseResult is a class with a default constructor (no arguments) ParseResult* bin_op(std::function<ParseResult*()> func_a, std::vector<std::string> ops, std::function<ParseResult*()> func_b);
当我通过以下方式调用此函数时:
bin_op(func_1, {"MOD"}, func_2); // Both func_1 and func_2 are of type ParseResult*, and take in no parameters
编译器抛出此错误:
no known conversion for argument 1 from '<unresolved overloaded function type>' to 'std::function<ParseResult*()>
我的代码编辑器显示此:
no suitable constructor exists to convert from "ParseResult *()" to "std::function<ParseResult *()>"
std::function
包含在代码中。
我该怎么办?我已经尝试使用模板和函数指针解决此问题,但是我没有这样做。
我有一个C ++函数,它接受其他两个函数作为参数:// ParseResult是具有默认构造函数的类(无参数)ParseResult * bin_op(std :: function