| %module abstract_typedef |
| |
| |
| %inline %{ |
| struct Engine |
| { |
| }; |
| |
| struct AbstractBaseClass |
| { |
| virtual ~AbstractBaseClass() |
| { |
| } |
| |
| virtual bool write(Engine& archive) const = 0; |
| }; |
| |
| typedef Engine PersEngine; |
| typedef AbstractBaseClass PersClassBase; |
| |
| |
| class A : public PersClassBase |
| { |
| // This works always |
| // bool write(Engine& archive) const; |
| |
| // This doesn't with Swig 1.3.17. |
| // But it works fine with 1.3.16 |
| bool write(PersEngine& archive) const |
| { |
| return true; |
| } |
| |
| |
| }; |
| |
| %} |
| |
| |
| /* |
| |
| Problem related to the direct comparison of strings |
| in the file allocate.cxx (line 55) |
| |
| ...... |
| String *local_decl = Getattr(dn,"decl"); |
| if (local_decl && !Strcmp(local_decl, base_decl)) { |
| ...... |
| |
| with the direct string comparison, no equivalent types |
| are checked and the two 'write' functions appear to be |
| different because |
| |
| "q(const).f(r.bss::PersEngine)." != "q(const).f(r.bss::Engine)." |
| |
| */ |