Extiendo Python con algún código C++.Python a C/C++ const char pregunta
Una de las funciones que estoy usando tiene la siguiente firma:
int PyArg_ParseTupleAndKeywords(PyObject *arg, PyObject *kwdict,
char *format, char **kwlist, ...);
(enlace: http://docs.python.org/release/1.5.2p2/ext/parseTupleAndKeywords.html)
El parámetro de interés es kwlist. En el enlace de arriba, se dan ejemplos sobre cómo usar esta función. En los ejemplos, kwlist parece:
static char *kwlist[] = {"voltage", "state", "action", "type", NULL};
Cuando compilo este usando g ++, me sale la advertencia:
warning: deprecated conversion from string constant to ‘char*’
Por lo tanto, se puede cambiar el char * estático a un const char estática *. Lamentablemente, no puedo cambiar el código de Python. Entonces, con este cambio, obtengo un error de compilación diferente (no puedo convertir char ** en const char **). Según lo que he leído aquí, puedo activar los indicadores del compilador para ignorar la advertencia o puedo convertir cada una de las cadenas constantes en la definición de kwlist en char *. Actualmente, estoy haciendo esto último. ¿Cuáles son otras soluciones?
Lo sentimos si esta pregunta se ha formulado antes. Soy nuevo.
Estoy bastante seguro de que PyArg_ParseTupleAndKeywords() no espera modificar kwlist. Tu sugerencia es útil. Gracias. – Eugene