我有一个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"];之类的情况下,将隐式调用这些运算符

09-04 16:58