From: Jens Maurer (Jens.Maurer_at_[hidden])
Date: 2001-07-13 17:14:38


williamkempf_at_[hidden] wrote:
> Yes, I think it should, but I come to a different conclusion than I
> think you just did (if I read the above correctly). I think Boost
> should use "" exclusively for all headers not part of the standard
> library. Reasonings:
>
> 1) <...> is the only form gauranteed to work for standard headers
> (which may not be files).

Agreed.

> 2) <...> may not work for non-standard headers (which will be files).

While the standard may appear to say that, it seems to be highly
unlikely that a compiler will enforce that. There are lots of other
projects using the <...> convention for additional "system" headers,
for example POSIX or the X11 graphical user interface system for Unix
boxes.

> 4) <...> headers are ignored as dependencies by some build tools,
> such as VC++ projects.

Depending on the viewpoint, that may actually be the right thing
to do. Isn't upgrading boost in a way similar to upgrading your
compiler's standard headers to a new version? Boost developers
may have a different answer than people only using boost.

Note that the boost FAQ recommends freezing a version of boost
for your end-user project's use, therefore updates may be as
infrequent as a new servicepack for MSVC.

In general, include handling is a very platform-specific issue,
so I would not read too much into the standard in this area,
and rely on experience with actual compilers instead.

As a personal preference, I like the look and feel of <...>
denoting "system" headers, e.g. standard headers, POSIX
headers, or third party libraries such as boost usually installed
in a central location on the machine. Opposed to this are
"..." headers local to the current project.

Jens Maurer