Boost logo

Boost :

From: Markus Schöpflin (markus.schoepflin_at_[hidden])
Date: 2004-08-12 10:15:41

Markus Schöpflin wrote:

> Jonathan Wakely wrote:
>> On Wed, Aug 11, 2004 at 12:43:37PM +0200, Markus Sch?pflin wrote:
>>>> - The use of "-std strict_ansi -nopure_cname" was causing all kinds
>>>> of troubles for me. I replaced that with "-D__USE_STD_IOSTREAM
>>>> -nousing_std" which seems to work far better.
>> This seems a bit hasty IMHO. Surely it would be better to make Boost work
>> with the compiler in strict_ansi mode than just force the compiler to act
>> in a non-standard way?
> What would you consider the correct way then? IMO we have three options.
> 1. Only use "-std strict_ansi". This means that the C header files
> (#include <c...>) included by boost libraries only define exactly those
> names specified in the C++ standard and nothing else. This would means
> changes to at least test, fs, regex and probably more libs. OTOH, this
> would mean that those libs are more conforming afterwards.
> Here is the output of a configure run with the options "-pthread -tlocal
> -std strict_ansi":
> #define BOOST_HAS_NRVO
> (No sigaction (XSH4.0), no nanosleep (P1003.1b), and no
> clock_gettime(P1003.1b), to get those you have to define _XOPEN_SOURCE
> or _POSIX_SOURCE or some such.)


I have been doing some more research on this. When _PURE_CNAME is in
effect (which it is when using "-std strict_ansi") there is no way (read
as: I didn't find one) to get at those functions, no matter how you
define _XOPEN_SOURCE or _POSIX_SOURCE because the C++ compiler brings
its own set of C header files which don't include the system header
files in that case.

Therefore this option is out of question, I think.


Boost list run by bdawes at, gregod at, cpdaniel at, john at