On Sat, 13 Oct 2012, Diego Novillo wrote: > On 2012-10-13 14:04 , Tobias Schlüter wrote: > > On 2012-10-13 20:00, Diego Novillo wrote: > > > On 2012-10-13 09:26 , Tobias Schlüter wrote: > > > > first a question also to non-gfortraners: if I want to use std::map, > > > > where do I "#include <map>"? In system.h? > > > > > > No. Ada includes system.h in pure C code. Why not include it exactly > > > where you need it? > > > > Ok, I was just wondering if there's a rule because a quick grep revealed > > no non-header source file that includes system headers. > > Joseph or others may have reason to create a system.hxx file or some such, but > in principle I don't see why we shouldn't include std library headers as we > need them. > > Joseph?
The poisoning of various standard library functions that should not be used directly in GCC can be problematic if system headers, using those functions, are included after that poisoning. Thus in general it's better for system header includes to go in system.h, before the poisoning. In addition, where there is some autoconf configuration about whether to include a header, it's generally preferred to keep down the number of places with such a conditional on host features (encapsulating whatever features the header provides in some way so that other code can use them unconditionally). -- Joseph S. Myers jos...@codesourcery.com