gpt4 book ai didi

C++定义一个接受函数并将其传递给其他函数的宏,这可能吗?

转载 作者:行者123 更新时间:2023-11-28 04:24:59 28 4
gpt4 key购买 nike

我有这样的功能:

string inputFormatted(void *errFunc()) {
string input;
cin >> input;
if (input == "") (*errFunc)();
return input;
}

它读取一个字符串,如果字符串错误则显示错误

我的 errFunc 是这样实现的:

void errBadKey() {
cout << "Enter a correct key, try HELP command for more information" << endl;
}

我用这种方式实现了一个宏:

#define GET_PARAM(input, errorFunc) do { \
input = inputFormatted(errorFunc); \
} while(0);

我是这样使用它的:

int main() {
string test;
GET_PARAM(test, errBadKey);
}

我想知道为什么它说 undefined reference to inputFormatted[abi:cxx11](void (*)())

是否不可能将一个函数传递给宏,然后将该函数传递给宏中的其他函数?

最佳答案

您的inputFormatted 函数签名必须是:

string inputFormatted(void errFunc()) {

关于C++定义一个接受函数并将其传递给其他函数的宏,这可能吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54563743/

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