
Hi François,
According some boost library sources I have checked it looks like there is an implicit coding standard rule which is to always use C functions from their C++ std namespace import equivalent. Thanks to this, compilers like MSVC6 but also Commeau according what I have read in comments, do not give compilation errors because of ambiguity. The program_options library do not apply this rule, here are the patch to fix it. It, of course, use the BOOST_NO_STDC_NAMESPACE to force std import when missing.
In cmdline.cpp, this modification made the Commeau workaround irrelevant, it has been removed.
I have a couple of general questions about this patch: 1. Why it's necessary. Did you have problems with some compiler? If yes, what it was? 2. What compilers did you test your modification with? I recall that std::tolower vs. tolower thing was hard to get working everywhere, so I'd rather no touch it unless it's broken somewhere. - Volodya