New submission from Stephen Kelly <[email protected]>:
When using C++ to extend python, one may use PyGetSetDef for example:
static PyGetSetDef Noddy_getseters[] = {
{"first",
(getter)Noddy_getfirst, (setter)Noddy_setfirst,
"first name",
NULL},
{"last",
(getter)Noddy_getlast, (setter)Noddy_setlast,
"last name",
NULL},
{NULL} /* Sentinel */
};
However, in C++ implicit conversion from const char* to char* is deprecated
since C++98, and is a removed conversion in C++11.
https://godbolt.org/g/sswUKM
GCC/Clang warn about this, and MSVC in conformance mode (/permissive-) errors
on it.
PyGetSetDef and similar APIs should use const char* instead of char* for
members such as `name`.
----------
components: Library (Lib)
messages: 308316
nosy: steveire
priority: normal
severity: normal
status: open
title: C API should use 'const char *' instead of 'char *'
type: enhancement
versions: Python 3.8
_______________________________________
Python tracker <[email protected]>
<https://bugs.python.org/issue32325>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe:
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com