C++ 如何使用重载函数获取XmlRpcValue
我有一个XmlRpcValue对象,希望从该对象获取值。该类提供了一些接口来获取值。但我不知道如何使用它们。接口在本文档()中定义。我尝试调用重载函数C++ 如何使用重载函数获取XmlRpcValue,c++,xml-rpc,ros,xmlrpcclient,C++,Xml Rpc,Ros,Xmlrpcclient,我有一个XmlRpcValue对象,希望从该对象获取值。该类提供了一些接口来获取值。但我不知道如何使用它们。接口在本文档()中定义。我尝试调用重载函数(),但我不确定调用此函数的语法是否正确 简化代码如下: XmlRpc::XmlRpcValue p; cout<<p["some_value"]<<endl; int val = p["some_value"](); XmlRpc::XmlRpc值p; cout您混淆了rt::operator()(sa1,ua2,…)-
()
,但我不确定调用此函数的语法是否正确
简化代码如下:
XmlRpc::XmlRpcValue p;
cout<<p["some_value"]<<endl;
int val = p["some_value"]();
XmlRpc::XmlRpc值p;
cout您混淆了rt::operator()(sa1,ua2,…)带有T::运算符R()的code>代码>-后者是转换运算符-前者是函数调用运算符。在本例中,XmlRpcValue指定了转换运算符-在int val=p[“some_value”]等情况下隐式调用这些运算符代码>根据Igor的建议
if(p.getType() == TypeInt)
int val = p;
这应该可以工作,因为有为XmlRpcValue定义的转换运算符
运算符int&() 查看文档,只需简单地intval=p[“some_value”]代码>应该有效。谢谢!我的类型是uint32\u t,而不是本机类型int,因此没有匹配的重载函数。但是我把它改成了int,现在它可以工作了。谢谢你的解释。我的类型是uint32\u t,而不是本机类型int,因此没有匹配的重载函数,因此出现了错误。但是我把它改成int,现在它可以工作了。