J'étend Python avec du code C++.Question de Python à C/C++ const
L'une des fonctions que je utilise a la signature suivante:
int PyArg_ParseTupleAndKeywords(PyObject *arg, PyObject *kwdict,
char *format, char **kwlist, ...);
(lien: http://docs.python.org/release/1.5.2p2/ext/parseTupleAndKeywords.html)
Le paramètre d'intérêt est kwlist. Dans le lien ci-dessus, des exemples d'utilisation de cette fonction sont donnés. Dans les exemples, kwlist ressemble à:
static char *kwlist[] = {"voltage", "state", "action", "type", NULL};
Quand je compile cela en utilisant g ++, je reçois l'avertissement:
warning: deprecated conversion from string constant to ‘char*’
Alors, je peux changer le char * statique à un const statique char *. Malheureusement, je ne peux pas changer le code Python. Donc, avec cette modification, j'obtiens une erreur de compilation différente (impossible de convertir char ** en const char **). Sur la base de ce que j'ai lu ici, je peux activer les drapeaux du compilateur pour ignorer l'avertissement ou je peux convertir chacune des chaînes constantes dans la définition de kwlist en char *. Actuellement, je fais le dernier. Quelles sont les autres solutions?
Désolé si cette question a déjà été posée. Je suis nouveau.
Je suis sûr que PyArg_ParseTupleAndKeywords() ne s'attend pas à modifier kwlist. Votre suggestion est utile Merci. – Eugene