
on Fri Sep 05 2008, "Emil Dotchevski" <emil-AT-revergestudios.com> wrote:
On Fri, Sep 5, 2008 at 2:10 AM, John Maddock <john@johnmaddock.co.uk> wrote:
vicente.botet wrote: BTW, it's not sufficient to simply include the header: if the header contains templates, then you also need to instantiate those templates to ensure everything they use is visible to them. Not sure how one would automate that :-(
I do think that we should have a system that automatically verifies that all public header files compile by themselves, but any #includes beyond what's needed to compile the header itself are not desirable. I specifically don't want any #includes that are not needed until a template is instantiated.
If we have an automatic header test, I'd like it to attempt to remove #includes until it finds the minimum needed to compile the file, because I'm sure we have many #includes that perhaps were needed before but are no longer necessary.
I disagree. I may be able to use std::sort after #including only <vector>, because something in <vector> needs something in <algorithm>. My code should still #include <algorithm>, though. -- Dave Abrahams BoostPro Computing http://www.boostpro.com