[ https://issues.apache.org/jira/browse/THRIFT-1947?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13688154#comment-13688154 ]
Vitali Lovich commented on THRIFT-1947: --------------------------------------- Looks good overall. Notes: - Instead of using string concatenation, use a stringstream - You go through the effort of building dval when you throw it away if there's a constant value. - It's not clear to me why you're casting all the optional values to 0 instead of just using the default constructor. - The enum generation assumes that there's always an enum value that 0 represents which isn't actually true. It should probably grab the first one specified in the thrift. - In your second foor loop, I believe you're missing && !t->is_enum() - In your TODO, clarify what constitutes "perfect". Also, some more comments about what the second loop is doing & why would be great. - I'm not clear on why the second loop is necessary & you can't just put it in the initializer. Are you saying that thrift object copy-constructors aren't properly implemented? - The isset should be initialized correctly too. Can you attach the generated Foo & Bar classes to the issue so that I can more easily comment on the generated code? enum MyEnum { SOME_VALUE = 1 SOME_OTHER_VALUE = 2 } struct Bar { 1: list<i32> param1; } struct Foo { 1: optional bool param1 = true; 2: bool param2 = false; 3: required bool param3; 4: list<string> param4; 5: Bar param5; 6: optional param6; 7: MyEnum param7; 8: optional MyEnum param8 = SOME_OTHER_VALUE; } Thanks. > C++ constructor with initializer list should be generated > --------------------------------------------------------- > > Key: THRIFT-1947 > URL: https://issues.apache.org/jira/browse/THRIFT-1947 > Project: Thrift > Issue Type: Improvement > Components: C++ - Compiler > Reporter: Vitali Lovich > Assignee: Kamil Sałaś > Attachments: 0001-Thrift-1947.patch > > > It would be really nice if the thrift constructor took in an initializer list > like the generated Java constructor does for non-optional fields. -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira