gpt4 book ai didi

c++ - 使 std::pair 具有固定类型的宏

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

我正在尝试做这样的事情:

#define SOME_PAIR(x, y) std::make_pair<bool, std::string>(x, y)

所以程序员只需要写:

return SOME_PAIR(true, "Amazing");

但看起来我做错了什么,因为“没有函数模板“std::make_pair”的实例匹配参数列表”。

我该怎么做才能使这个(或类似的东西)工作?

编译器:VC110IDE:VS2012操作系统:Win7x64

编辑:以下代码(感谢 jxh)使其完美运行:

#define SOME_PAIR(x, y) std::make_pair(bool(x), std::string(y))

因此我的 lamda 函数最终变得非常简洁:

boot.init("log", [&](){
return INIT_PAIR(log.loaded, "Could not open log config file");
});

最佳答案

您可以“转换”参数并允许类型推导来实例化正确的模板函数:

#define SOME_PAIR(x, y) std::make_pair(bool(x), std::string(y))

关于c++ - 使 std::pair 具有固定类型的宏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18470964/

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