[Ns-developers] NS-3 PyBindGen again
Mathieu Lacage
mathieu.lacage at sophia.inria.fr
Mon Jan 7 07:34:39 PST 2008
On Mon, 2008-01-07 at 13:52 +0000, Gustavo Carneiro wrote:
> > but this code compiles which appears to indicate it can be
> done. I
>
> This is really weird because my c++ spec states clearly that
> it is not
> possible to copy std::type_info objects. i.e., their copy
> constructor
> and assignment operators are expected to be private.
>
> I ran into that problem, but then I changed the return type to "const
> std::type_info &". Returning by reference does not require copying,
> so all is well. Same could be done with TraceDoc, but TraceDoc offers
> a list of strings, with each parameter type, matching by a single
> type name string is much easier.
Are you sure that it is safe to assume that string equality of the
type_info::name () value is equivalent to std::type_info equality ?
>
>
> > This API (template <typename T> bool GetElement (T &context)
> const) is
> > based on templated methods. I need to generate all method
> template
> > instantiations, but then the method names have to be mangled
> with the
> > type names. Again, adding dynamic introspection features to
> the C++
> > API would be most welcome for Python bindings, else user
> will have to
> > call methods with mangled names.
>
> Clearly, asking the user to use mangled names is not a
> practical
> solution.
>
> Well, this is one more example among many where NS-3 is favouring C++
> programming in detriment of language bindings. I have known this for
> a very long time, and accept it. That's why it is perhaps prudent to
> not wait until NS-3 API is finalized to start making language
> bindings, because making these bindings will shed some light on what
> needs to be improved in the API in order to better support them...
This specific problem is quite similar to the problem of binding the
Packet and Tags classes, I think. I don't have any specific solution to
this problem but it is something which we need to addressed before the
february release if you want to target that release for merging.
regards,
Mathieu
More information about the Ns-developers
mailing list