Richard Dale wrote:

> With the Swig approach you can't call protected methods, you can't override
> virtual methods, and it doesn't have a mechanism for dealing with method
> overloading very well (particularly important with constructors). With
> Smoke I get all that for free, and I don't even need to parse any
> headers/write interfaces etc.

For the record, SWIG 1.3.20 will provide support for overriding C++ 
virtual methods with Ruby instance methods; this code is already 
available in the SWIG development CVS. Method overloading has been 
available since SWIG version 1.3.14 or so, and works very well for 
constructors as well as regular functions.

On a side note, I hadn't heard about Smoke, and so I was doing some 
quick googling for it. It sounds pretty cool. Am I basically correct 
that it is a Qt (or maybe Qt+KDE) specific library that can be used to 
build different language bindings to Qt? In other words, it is not a 
general purpose "wrapper" generator like SWIG?