I notice that private member names have a leading underscore in POCO. IMO this is VERY inadvisable. The reason this practise (which is not confined to POCO) is banned by several coding guidelines is because of what the std says about leading underscores being reserved for compiler implementation use. Believe it or not, I have seen the advise floated by a project that went on to experience compilation errors because of it (it was on HPUX using their aCC compiler if I recall correctly). So this danger is not merely theorectical.
Will POCO please consider changing this. Foundation/utility libraries such as POCO can get very wide reuse and be deployed in a large number of different environments. It is possible that one day a POCO header will be included by an application that either gets nobbled directly by this issue or indirectly depending on which system headers it includes.
The trouble with waiting until this problem actually bites for real is it tends to be worked around on a case by case basis. As these cases gradually accumulate over time it will detract from the overall quality of the code.
These are only private member names and so a change will not affect the public interface. I hope POCO people will consider this.
-Andrew Marlow





