Я расширяю 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*’
Итак, я могу изменить статический символ * на статический символ типа const *. К сожалению, я не могу изменить код Python. Так что с этим изменением я получаю другую ошибку компиляции (не могу преобразовать char ** в const char **). Исходя из того, что я здесь прочитал, я могу включить флаги компилятора, чтобы игнорировать предупреждение, или я могу привести каждую из константных строк в определении kwlist к char *. В настоящее время я занимаюсь последним. Какие есть другие решения?
Извините, если этот вопрос задавался ранее. Я новенький.