Boost logo

Boost :

From: David Abrahams (dave_at_[hidden])
Date: 2002-09-30 07:00:03


From: "Guillaume Melquiond" <gmelquio_at_[hidden]>

> On Mon, 30 Sep 2002, Anthony Williams wrote:
>
> > Guillaume Melquiond writes:

> > > I may have missed something; but I still don't understand why this
change
> > > is necessary. Indeed, the Boost include search path doesn't contain
> > > 'boost' (all the libraries are included by '#include
> > > <boost/apath/alibrary.hpp>'. So when a program uses
"#include<numeric>',
> > > the compiler (even if it has some problems) should never find
> > > 'boost/numeric/' since it's not in the search path; it can only find
> > > 'numeric', which is expected.
> >
> > If a compiler treats <> and "" the same in #include directives, and
#include
> > <numeric> appears in a boost header, this will cause a problem.

"" is irrelevant in this case.
Boost headers are included with <>, so if a compiler supports distinct
search paths, our build system is putting the boost root directory in the
<> path, not the "" path.

> Okay, I understand your point. But unless I did a mistake, the only
> 'boost/' header that uses 'numeric' is 'multi_array.hpp' (there is no
> problem with subheaders, is there ?). So instead of making huge changes
> to uBLAS and the documentation and breaking all the programs that are
> currently using uBLAS, wouldn't it be better to make a small change to
> 'multi_array.hpp'.
>
> For example, the '#include <numeric>' could be changed to
> '#include <boost/multi_array/numeric_proxy.hpp>'. And 'numeric_proxy.hpp'
> would contain only one line: '#include <numeric>'. It would be a safer
> and easier change.

It's a problem for user code, and it's a problem for Boost source files. I
had a collision in a Boost.Python source file.

-----------------------------------------------------------
           David Abrahams * Boost Consulting
dave_at_[hidden] * http://www.boost-consulting.com


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk