Я расширяю Python некоторым кодом C++.
Одна из функций, которые я использую, имеет следующую подпись:
int PyArg_ParseTupleAndKeywords(PyObject *arg, PyObject *kwdict,
char *format, char **kwlist, ...);
(ссылка: http://docs.python.org/release/1.5.2p2/ext/parseTupleAndKeywords.html)
Интересующий параметр — kwlist. По ссылке выше приведены примеры использования этой функции. В примерах kwlist выглядит так:
static char *kwlist[] = {"voltage", "state", "action", "type", NULL};
Когда я компилирую это с помощью g++, я получаю предупреждение:
warning: deprecated conversion from string constant to ‘char*’
Итак, я могу изменить static char* на static const char*. К сожалению, я не могу изменить код Python. Итак, с этим изменением я получаю другую ошибку компиляции (не могу преобразовать char** в const char**). Основываясь на том, что я здесь прочитал, я могу включить флаги компилятора, чтобы игнорировать предупреждение, или я могу привести каждую из постоянных строк в определении kwlist к char *. В настоящее время я занимаюсь последним. Какие есть другие решения?
Извините, если этот вопрос уже был задан. Я новенький.