From: Mike C. <ca...@us...> - 2008-01-11 14:06:26
|
> > %extend Struct { > Struct() { > Struct *s = 0; > StructCreator(&s); > return 0; > } > ~Struct() { > StructDestroyer(&$self); > } > } > Let me see if I understand this correctly. The %extend directive is a way to extend the Swig representation of the C struct Struct defined in the C source file example.h. The fact that it resembles a C++ "inline" class definition is to leverage my understanding of C++ (I think). But this construct will eventually generate C code in example_wrap.c (say) for perl (say, or python, depends on -perl or -python or whatever). It it appears to allow for macro-like or textual substitution ($self), followed by "code translation" to generate the XS for perl. So it's really neither C not C++ but a C++-like syntax. So part of learning swig is to learn this syntax. If the last paragraph is a roughly correct account of what's happening, then I find the documentation challenging because I don't know if I'm looking a C or C++ or the "interface language" when I'm looking at examples. Thanks. |