
On Wed, Jun 10, 2009 at 5:27 PM, Daniel Frey <d.frey@gmx.de> wrote:
As maintainer of the Boost.Operators library and long-time Boost user and contributor I don't think we lack "charity" or something. The crucial point to understand what we are doing is this:
We need to *balance* interests.
What you and others (Christian S.) seem to miss is the fact that you can not just solve one problem and create another. Especially if that means to put the burden on other people.
#pragma once is controversial because it's *not* just a no-brainer which "Makes Life Better.". Granted, it may make your life better. Even that of other VC++ users. But it creates more maintenance work, as we still need include guards for those compilers that don't support it, so the code won't get simpler, it will become more complex. It might also introduce new bugs for headers that may be included multiple times.
If you use configuration macros, you need to include the configuration headers for each header that has an include guard/#pragma once. Increases compile-time, complexity, ...
Coming from a VC++ perspective, you might not be aware of the drawbacks (because you *replace* your include guards with #pragma once) and that's OK, but please don't imply malice if we don't agree to your suggestions and ideas immediately. And please respect that fact that all perspectives need to be considered. We aim to solve all problems and drawbacks involved, and this is probably why it's so much work and why it is so hard. We don't compromise easily, which sometimes might look unhelpful. We nitpick on details, we explicitly try to find the holes in your ideas, etc.
OTOH, I think this is what creates Boost's excellence. This is why Boost produced so many incredibly valuable things that even become standardized. It's the crucial difference to other libraries.
That said, ask yourself: What could help to move the idea/suggestion on? How can you address/solve the drawbacks others see? Could we somehow combine include guards/#pragma once via macros to automatically make sure inconsistencies can't occur? What else can be done? Generally:
Be constructive, improve you ideas/suggestions.
That's the way to successfully participate in Boost, not by implying malice to others.
Most eloquently put Daniel - I wonder if it would be possible to include the gist of that text in some Boost header page or introductory page somewhere? There's a sentiment there that it would be useful to capture. - Rob.