[PyQt] SIP: overloaded functions with the same Python signature
Phil Thompson
phil at riverbankcomputing.com
Thu Jul 8 11:16:34 BST 2010
On Mon, 05 Jul 2010 23:36:57 +0200, GOO Creations <goocreations at gmail.com>
wrote:
> Hello
>
> This may sound like a really stupid question, but I can't find proper
> documentation/examples online:
>
> I'm using SIP for my C++ - Python bindings. My C++ class has 2 functions
> with the same name.
>
> ----------------------------------------------------------
> The C++ class:
>
> class MyHasher
> {
> public:
>
> enum HashAlgorithm
> {
> Md4,
> Md5,
> Sha1
> };
>
> MyHasher();
> QString getFileHash(QString data, HashAlgorithm hash = Md5);
> QString getFileHash(QString data, HashAlgorithm hash = Md5, int
> numberOfBytes = 2048);
> };
> ----------------------------------------------------------
>
> The sip file:
>
> class MyHasher
> {
>
> %TypeHeaderCode
> #include <myhasher.h>
> %End
>
> public:
>
> enum HashAlgorithm
> {
> Md4,
> Md5,
> Sha1
> };
>
> MyHasher();
> QString getFileHash(QString data, HashAlgorithm hash = Md5);
> QString getFileHash(QString data, HashAlgorithm hash = Md5, int
> numberOfBytes = 2048);
> };
> ----------------------------------------------------------
>
>
>
> When I compile it, I'm getting the error:
> sip: MyHasher::getFileHash() has overloaded functions with the same
> Python signature
>
> When I remove one of the getFileHash functions, everything is working
> fine, but the problem seems to be with 2 functions with the same name at
> the same time.
>
> How can I correct this in SIP?
I'm not a C++ expert, but I'm surprised that it allows those overloads.
According to the standard, with...
getFileHash(QString());
...which overload gets called?
Phil
More information about the PyQt
mailing list