gpt4 book ai didi

c++ - 类模板 "std::pair": Passing std pair as arguments in varidiac function 的参数太少

转载 作者:行者123 更新时间:2023-11-30 03:23:50 25 4
gpt4 key购买 nike

我必须将 std::stringstd::pair 传递给可变参数函数。 std::pair 在尝试使用 访问 std::pair 时显示错误 too few arguments for class template "std::pair" >va_arg 宏。

#include <stdarg.h>
#include <tuple>
#include <string>
using std::pair;
using std::string;

bool EncodeJSonData(pair<string,string> inbulkData ...)
{
va_list args;
va_start(args, inbulkData);
int count = 5;
while(count--)
{
pair<string,string> bulkData;
bulkData = va_arg(args, pair<string,string>); //here is the error
}
va_end(args);

return true;
}

这里缺少什么,

最佳答案

va_arg是一个宏,字符像','可能导致宏解析失败

所以解决方案是typedef pair<string,string> :

    typedef pair<string, string> StrStrPair;
StrStrPair bulkData;
bulkData = va_arg(args, StrStrPair);

关于c++ - 类模板 "std::pair": Passing std pair as arguments in varidiac function 的参数太少,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50168145/

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