Boost logo

Boost :

From: Russell Hind (rhind_at_[hidden])
Date: 2004-01-21 04:18:26


There is another problem with release builds with Borland in filesystem
(won't compile). Original message below again.

Another, easier fix as pointed out in the actual thread, is to remove
the std:: and put using namespace std; at the top of the file (it is a
.cpp, not a .h), then Borland and others will find strcmp.

Thanks

Russell

Borland bcc32 (only tested on 0x564), but probably affects version
before this and kylix (0x570) which I can't test, has a bug where when
you do a release build, functions such as strcmp (which the compiler
intrinsicly generates) aren't put in the std:: namespace so

std::strcmp will fail to compile on these compilers in a release build
mode. Works fine in debug mode. The solution is to just call strcmp in
a release build. This occurs in

operations_posix_windows.cpp for filesystem at lines

234,235,271,272.

Could a work-around be provided. I've locally changed lines at 234-235
to be

           #if defined(__BORLANDC__) && (__BORLANDC__ <= 0x564) &&
!defined(_DEBUG)
           if ( strcmp( name, "." ) != 0
             && strcmp( name, ".." ) != 0 )
           #else
           if ( std::strcmp( name, "." ) != 0
             && std::strcmp( name, ".." ) != 0 )
           #endif

But am unsure of the work-around syntax to use this correctly. The same
work-around can be applied at 271-272 also.

Douglas Gregor wrote:
> On Tuesday 20 January 2004 12:48 pm, Russell Hind wrote:
>
>>I'm still waiting for a reply on a possible regression in filesystem I
>>reported. Unfortunately I guess it requires Beman to respond who isn't
>>back from vacation yet. (Original post attached)
>
>
> Okay, we'll ping Beman when he gets back so that we can resolve this for RC2.
>
> Doug
>
> _______________________________________________
> Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost
>


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