-
Notifications
You must be signed in to change notification settings - Fork 385
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
list<bool>和map返回值不能正确处理 #381
Comments
好的!感谢报case。 我们看一下怎么解决。 |
请教一下,list应该被解析成std::list吗? |
我们看了一下,list好像解析成std::vector是正确的。thrift本身没有vector,只能写成list。 std::map<int, int>这个写法不对,thrift只能写成map<i32, i32> |
大括号在行首或行尾,也都没有问题…… |
明白你list的问题了。C++的vector<bool>,没有办法用引用遍历。我们看看怎么解决。 |
已更正,手写错了,意思就是用map返回值解析类型,错误
|
@Barenboim FYI struct CResult
{
1: i32 result;
}
/** 变量类别 */
enum EFruit
{
Apple
}
service TestService
{
list<bool> getStatusList();
map<i32, i32> getValue();
}
|
应该是我们解析注释的问题。去掉注释是对的。 |
@longyn 你好,两个问题应该都修复了,麻烦用最新代码再帮我们试一下。 map目前没发现有什么问题。 |
目前对注释的去除可能会出现一些过召的问题,例如这么写可能会被解析成功: struct CR/*****/esult
{
1: i32 result;
}
/** 变量类别 */
enum EFruit
{
Apple
}
service TestService
{
list<bool> getStatusList();
map<i32, i32> getValue();
} 之后有空我们再完善一下,不影响正常使用。 |
@Barenboim 看生成的代码,没有map的接口, parser.cc里是通split空格取得返回值类型和方法,aa.size() == 3, 被忽略 /*
* Server codes
* Generated by SRPC
*/
class Service : public srpc::RPCService
{
public:
// please implement these methods in server.cc
virtual void getStatusList(std::vector<bool>& _return);
public:
virtual void getStatusList(getStatusListRequest *request, getStatusListResponse *response,
srpc::RPCContext *ctx);
public:
Service();
}; |
好的,感谢。我们一会修改一下。 |
我用最新的代码,测试了一下,可以正常解析和工作了,感谢 |
其实这个bug还没有改好…… 主要是写成map<i32,i32>,两个i32之间不加空格就没有问题。我们还在修。你这边可以先把空格去了先用起来。 |
感谢给我们报bug。如果用上了,也麻烦star一下我们项目。 |
@longyn map的问题也彻底修复了,不会再受空格影响。 |
问题:
list<bool>
解析成std::vector<bool>
,无法编译The text was updated successfully, but these errors were encountered: