On Tuesday 21 February 2006 9:14 pm, Nigel Stewart wrote:
> Hi all,
>
> We're observing some issues with methods such as:
>
> (a)    void foo(const QString * = NULL);
> (b)    void bar(const QString * = 0);
>
> We're using Sip 4.3.2, it appears that Sip doesn't
> support (a), PyQt 3.15.1 doesn't use (a) and the
> yacc parser that sip uses is confusing NULL for
> a C++ identifier that the address can be taken of:
>
> static PyObject *meth_MyClass_foo(PyObject *sipSelf,PyObject *sipArgs)
> ...
>               const QString * a0 = &NULL;       // Can't compile this!
>
> static PyObject *meth_MyClass_bar(PyObject *sipSelf,PyObject *sipArgs)
> ...
>               const QString * a0 = NULL;
>
> So, the lesson seems to be that "= 0" is good, "= NULL" is
> to be avoided, when it comes to sip bindings.

And when it comes to C++ according to Stroustrup.

> But, it would be nice if sip could recogise NULL as a special
> case, since that is what we encourage in our C++ API, rather than
> "0".
>
> Any thoughts?

No problem with adding this.

Phil

_______________________________________________
PyKDE mailing list    PyKDE@mats.imk.fraunhofer.de
http://mats.imk.fraunhofer.de/mailman/listinfo/pykde

Reply via email to