Boost logo

Boost-Build :

From: gclbb-jamboost_at_[hidden]
Date: 2003-06-14 12:45:33

I've been working with Beman re getting Comeau for Windows in
good shape with Boost. So first of all, I'd like to thank him
for his patience, and second of all for his thoughts and guidance
on issues about Boost.

In the process of going through the regressions, I see that
in boost\regex\config.hpp that windows.h is used.
I also note that in boost/regex/user.h there is a paragraph:

// define this to disable Win32 support when available:
// #define BOOST_REGEX_NO_W32

I'm not clear what the comment means, but in the
directory I see that there is other code which seems to
decide whether windows.h is used and? whether is should
be turned off or not, even on a Windows platform.

Some questions:
1) Is this the only place windows.h is used?
(I can easily grep, but I'd prefer to get into a discussion
about understanding it's use in boost, hence I ask)

2) Why is it used?

3) What are the implications of turning it off on a Windows platform?
What "services" are necessary, and if windows.h is not used,
where are said services expected to come from on a Windows platform?

4) When not on Windows, windows.h is obviously not used.
What other things are used instead? (I don't necessarily
raise this as a problem, but to try to get a better view
of what's going on underneath the build process).

5) This gets me thinking:
What are boost's requirements upon compilers?
I'm curious what mode is the compiler expected to be
run in when boost'ing? I expect the answers to be
"no particular mode" or "Who cares?" but it seems that
there are demands upon compilers, whether it be
features, resources, or modes, and I'm wondering if
that is explained anywhere.

I am NOT a power Boost user (yet), so thanks for any insights
in this matter. Similarly, if the above is discussed in the
documentation somewhere, please refer me to the where's,
as I could not locate said, thanks. And if I'm posting
this to the wrong NG, please redirect me, thanks.

Last but not least, the background through which I'm posting
the above is that, if I understand Boost properly, one
should be able to compile with Comeau strict mode set.
However, something such as windows.h uses MS extensions
et al. This presents a quandry. Part of it involves
a QoI concern on my part, since the argument can be made
that "I should do something about it." and actually,
I agree with that argument, and do expect to do something
about it. But I also thing that's independent of any
other resolution.

On the other hand though, an argument could be made that
boost should not use non-standard OS things. I realize
though that that had its own quandaries, since then maybe
that component wouldn't be able to exist at all.

Another thought, is to deliniate which "files" are platform
dependent and which are not. I don't see that being
perfect either though on Boost's side of things.

Am I just misunderstanding, or have things just reached a
practical wall? I will assume for now I am misunderstanding,
because, I would expect this to be an non-issue with the
compilers. And it would seem to me that the code would
work on non-Windows platforms too (although I realize it
may add say UNIX dependencies in for the case of UNIX, etc...
does it?)

I have not yet tried to run the lastest Boost with other
compilers, or with Comeau on another plaform yet, since I'm
trying to understand this platform better, so I guess that
I don't know otherwise yet. But is it just that strict
mode is not supposed to be a consideration? But then
I'm confused since why aren't the other compilers running
into these problems too?

Hmm, this post is larger than I thought, so I'll leave this
here for now except to quicky say I've posted this here since
I believe it is a build question, although underneath it all,
it may apply to the design of Boost, etc. Lastly, if I'm
really off base in any or all of the above, then it's
probably so that a lot of the above is non-questions
or totally off-base statements and so probably won't
warrant a detailed answer. Either way, thanks in advance
for any insights.

Comeau C/C++ ONLINE ==>
World Class Compilers: Breathtaking C++, Amazing C99, Fabulous C90.
Comeau C/C++ with Dinkumware's Libraries... Have you tried it?

Boost-Build list run by bdawes at, david.abrahams at, gregod at, cpdaniel at, john at