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

Guido van Rossum guido at python.org
Fri Feb 10 19:07:45 CET 2006


On 2/10/06, Tim Peters <tim.peters at gmail.com> wrote:

[Jeremy] >> I added some const to several API functions that take char* but >> typically called by passing string literals. In C++, a string literal >> is a const char* so you need to add a constcast<> to every call site, >> which is incredibly cumbersome. After some discussion on python-dev, >> I made changes to a small set of API functions and chased the >> const-ness the rest of the way, as you would expect. There was >> nothing random about the places const was added.

[Guido] > I still don't understand why this was done, Primarily to make life easier for C++ programmers using Python's C API. But didn't Jeremy just say that?

I didn't connect the dots.

Some people (including me) have been adding const to char* API arguments for years, but in much slower motion, and at least I did it only when someone complained about a specific function.

> nor how the set of functions was chosen if not randomly. [Jeremy] I added some const to several API functions that take char* but typically called by passing string literals. If he had stuck to that, we wouldn't be having this discussion :-) (that is, nobody passes string literals to PyArgParseTupleAndKeywords's kws argument).

Is it too late to revert this one?

Is there another way to make C++ programmers happy (e.g. my having a macro that expands to const when compiled with C++ but vanishes when compiled with C?)

-- --Guido van Rossum (home page: http://www.python.org/~guido/)



More information about the Python-Dev mailing list