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_MSVC6_MEMBER_TEMPLATES
> #define BOOST_HAS_UNISTD_H
> #define BOOST_HAS_SCHED_YIELD
> #define BOOST_HAS_PTHREADS
> #define BOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE
> #define BOOST_HAS_PTHREAD_DELAY_NP
> #define BOOST_HAS_PARTIAL_STD_ALLOCATOR
> #define BOOST_HAS_NRVO
> #define BOOST_HAS_NL_TYPES_H
> #define BOOST_HAS_LONG_LONG
> #define BOOST_HAS_GETTIMEOFDAY
> #define BOOST_HAS_DIRENT_H
>
> (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.)

[snip]

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.

Markus


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