我有一个XmlRpcValue对象,想从该对象获取值。该类提供一些接口(interface)来获取值。但是我不确定如何使用它们。此最小文档(http://xmlrpcpp.sourceforge.net/doc/classXmlRpc_1_1XmlRpcValue.html#_details)中定义了该接口(interface)。我尝试调用重载函数()
,但是不确定调用此函数的语法正确。
简化代码如下:
XmlRpc::XmlRpcValue p;
cout<<p["some_value"]<<endl;
int val = p["some_value"]();
编译错误发生在上面的第3行。 cout语句将打印正确的值。我已经尝试了重载运算符
()
的多个排列,但是所有操作都只会导致不同的编译错误。我应该如何从该对象获取值(value)? 最佳答案
您将R T::operator ()(S a1, U a2, ...);
与T::operator R();
混淆了-后者是转换运算符-前者是函数调用运算符。在这种情况下,XmlRpcValue指定了转换运算符-在Igor建议的int val = p["some_value"];
之类的情况下,将隐式调用这些运算符