[Python-Dev] Baffled by PyArg_ParseTupleAndKeywords modification (original) (raw)

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 PyArgParseTupleAndKeywords'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