Change C++ code generator so that generated classes can be wrapped with SWIG
----------------------------------------------------------------------------

                 Key: THRIFT-676
                 URL: https://issues.apache.org/jira/browse/THRIFT-676
             Project: Thrift
          Issue Type: Improvement
          Components: Compiler (C++)
    Affects Versions: 0.3
         Environment: Any C++
            Reporter: Rush Manbert


There are times when it would be beneficial to wrap Thrift-generated C++ 
classes with the SWIG tool (http://www.swig.org). This is a problem, though, 
because SWIG does not yet handle nested class or structure definitions and the 
C++ code generator defines the __isset structure within the scope of the class 
definition to which it pertains.

In order to make the Thrift-generated classes wrappable by SWIG, the __isset 
structure definition needs to be moved outside of the class definition. For a 
Thrift generated class called foo, the __isset definition would look like this:

typedef struct _foo__isset {
  _foo__isset() : member0(false), member1(false) {}
  bool member0;
  bool member1;
} _foo__isset;

and the using class would contain this line:
_foo__isset __isset;

All existing code will continue to work, and can be regenerated at will.

I have a patch for this.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to