%module extend_typedef_class %warnfilter(SWIGWARN_PARSE_EXTEND_NAME) tagCClass; %warnfilter(SWIGWARN_PARSE_EXTEND_NAME) tagCStruct; // classes in global namespace %inline %{ typedef struct tagAClass { int membervar; } AClass; struct BClass { int membervar; }; typedef struct tagCClass { int membervar; } CClass; // Unnamed struct typedef struct { int membervar; } DClass; %} %extend tagAClass { int getvar() { return $self->membervar; } } %extend BClass { int getvar() { return $self->membervar; } } %extend CClass { int getvar() { return $self->membervar; } } %extend DClass { int getvar() { return $self->membervar; } } // classes in a namespace %inline %{ namespace Space { typedef struct tagAStruct { int membervar; } AStruct; struct BStruct { int membervar; }; typedef struct tagCStruct { int membervar; } CStruct; // Unnamed struct typedef struct { int membervar; } DStruct; } %} namespace Space { %extend tagAStruct { int getvar() { return $self->membervar; } } %extend BStruct { int getvar() { return $self->membervar; } } %extend CStruct { int getvar() { return $self->membervar; } } %extend DStruct { int getvar() { return $self->membervar; } } }