On 27.12.2007 15:46, Jason Roelofs wrote: > [Note: parts of this message were removed to make it a legal post.] > > On Dec 27, 2007 7:36 AM, Robert Klemme <shortcutter / googlemail.com> wrote: > >> 2007/12/27, Jason Roelofs <jameskilton / gmail.com>: >>> SWIG does not handle nested classes, a *serious* defect to what I'm >> trying >>> to do. I've looked into helping add this feature, but the amount of work >>> required makes it more feasible to build a better, Ruby-specific wrapper >>> system. >> I'm not too familiar with Boost. So could you quickly summarize what >> is it that you expect to gain from creating a Boost Ruby integration? >> >> Kind regards >> >> robert >> >> >> -- >> use.inject do |as, often| as.you_can - without end >> >> > Boost.Python and luabind are libraries built to make it extremely easy to > build interfaces into the target language from C++. It's not really about > integration with Boost, Boost just provides some very, very useful > constructs and a powerful meta-programming subsystem that makes this library > feasible in such a strict language. Here's what you're able to do: > > Wrap this: > > class A { > public: > A(); > A(int, int); > > void doSomething(); > int getSomethingBack(); > }; > > Like this: > > class_<A>("A") > .def(initialize<int, int>()) > .def("do_something", &A::doSomething) > .def("get_something_back", &A::getSomethingBack); > > and in Ruby > > a1 = A.new > a = A.new(1,2) > > a.do_something > a.get_something_back Thanks for taking the time to explain! I was not aware that something like this is part of Boost. > For those of you pushing SWIG, trust me, I've spent many, many hours trying > different ways to make nested classes work in a way that won't require me to > re-write a full quarter of the headers that I'm trying to wrap (Ogre > rendering engine, for the record). Nested classes are *not* supported in > SWIG, there are hacks to make it look so, hacks that do not work all of the > time. Kind regards robert