我正在尝试做这样的事情:
#define SOME_PAIR(x, y) std::make_pair<bool, std::string>(x, y)
所以程序员必须写的很简单:
return SOME_PAIR(true, "Amazing");
但看起来我做错了什么,因为'没有函数模板“std::make_pair”的实例与参数列表匹配'。
我该怎么做才能使这个(或类似的东西)工作?
编译器:VC110 IDE: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");
});