[Python-Dev] Baffled by PyArg_ParseTupleAndKeywords modification

Tim Peters tim.peters at gmail.com
Fri Feb 10 19:27:35 CET 2006


[Jeremy]
>>> I added some const to several API functions that take char* but
>>> typically called by passing string literals.

[Tim]
>> If he had _stuck_ to that, we wouldn't be having this discussion :-)
>> (that is, nobody passes string literals to
>> PyArg_ParseTupleAndKeywords's kws argument).

[Jeremy]
> They are passing arrays of string literals.  In my mind, that was a
> nearly equivalent use case.  I believe the C++ compiler complains
> about passing an array of string literals to char**.

It's the consequences:  nobody complains about tacking "const" on to a
former honest-to-God "char *" argument that was in fact not modified,
because that's not only helpful for C++ programmers, it's _harmless_
for all programmers.  For example, nobody could sanely object (and
nobody did :-)) to adding const to the attribute-name argument in
PyObject_SetAttrString().  Sticking to that creates no new problems
for anyone, so that's as far as I ever went.


More information about the Python-Dev mailing list