在C++中使用节俭设置联盟
在我的节俭模式中,我有类似的东西:在C++中使用节俭设置联盟,c++,thrift,C++,Thrift,在我的节俭模式中,我有类似的东西: struct TestStatusOne { .... } struct TestStatusTwo { .... } union TestStatus { 1: TestStatusOne ONE 2: TestStatusTwo TWO } struct TestResult { 1: required TestStatus status } 我可以使用Java、Perl和Python库来定义这一点,但是我 使用C++库时有困难。下面
struct TestStatusOne { .... }
struct TestStatusTwo { .... }
union TestStatus {
1: TestStatusOne ONE
2: TestStatusTwo TWO
}
struct TestResult {
1: required TestStatus status
}
我可以使用Java、Perl和Python库来定义这一点,但是我
使用C++库时有困难。下面是一个例子
爪哇:
<> P>我在C++中定义的最接近的是:
TestResult testResult;
testResult.status.ONE = testStatus;
但是当我试图发送到服务器时,我得到一个错误,告诉我
状态字段不存在,结构的转储显示为
空
如何设置测试状态
使用Thrift 0.6.1.这可能是缺少赋值运算符的问题吗?根据结构TestStatusOne和TestStatusTwo的定义,您可能需要创建赋值运算符operator= 您是否尝试过在Thrift客户端上执行GDB,并在将测试结果发送到服务器之前查看其内容?检查其内容是否有意义
TestResult testResult;
testResult.status.ONE = testStatus;