[ https://issues.apache.org/jira/browse/THRIFT-2473?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13974016#comment-13974016 ]
Nevo Hed commented on THRIFT-2473: ---------------------------------- So what is preventing you from adding the keyword "required"? I know I have seen something somewhere that says that the default requiredness is "required" but I think in practice it is a third type (T_OPT_IN_REQ_OUT). I don't know why this is but I suspect that it is done for compatibility with original behavior. But probably best practice should be to always specify requiredness, especially for your desired behavior. {code} enum e_req { T_REQUIRED, T_OPTIONAL, T_OPT_IN_REQ_OUT <<<<=== }; {code} > _isset entries shouldn't be generated for non-optional fields > ------------------------------------------------------------- > > Key: THRIFT-2473 > URL: https://issues.apache.org/jira/browse/THRIFT-2473 > Project: Thrift > Issue Type: Bug > Components: C++ - Compiler > Reporter: Vitali Lovich > > There's quite a bit of memory overhead (4 bytes per field) that's wasted on > every single type. The __isset field is unused by the thrift type for fields > not annotated optional. > Additionally, it causes confusion in program code since people never know > whether or not the __isset struct can be checked for a particular field or > not (e.g. for non-optional fields it would never get set normally unless you > deserialized it). -- This message was sent by Atlassian JIRA (v6.2#6252)