Opened 14 years ago

Closed 14 years ago

#2346 closed Patches (fixed)

[type_traits] Patches to improve support for CodeGear C++ Builder 2009

Reported by: Nicola Musatti Owned by: John Maddock
Milestone: To Be Determined Component: type_traits
Version: Boost Development Trunk Severity: Problem
Keywords: Cc:

Description

The attached patches fix workarounds for the latest CodeGear (ex Borland) compiler.

Attachments (2)

libs_type_traits.patch (681 bytes ) - added by Nicola Musatti 14 years ago.
boost_type_traits.patch (19.9 KB ) - added by Nicola Musatti 14 years ago.

Download all attachments as: .zip

Change History (7)

by Nicola Musatti, 14 years ago

Attachment: libs_type_traits.patch added

comment:1 by John Maddock, 14 years ago

Status: newassigned

That looks OK, but can you:

1) Add the new config macros to Boost.Config as well? Not sure about this, but I think we are using BOOST_NO_* names for C++0x features as well: obviously that means changing the logic quite a bit and patching more config files... :-( 2) Please use the MPL macros for defining the traits classes rather than inheriting from integral_constant directly? Much as I truely hate those macros, they are necessary for full MPL interoperability unfortunately :-(

Cheers, John.

by Nicola Musatti, 14 years ago

Attachment: boost_type_traits.patch added

in reply to:  1 comment:2 by Nicola Musatti, 14 years ago

Replying to johnmaddock:

That looks OK, but can you:

1) Add the new config macros to Boost.Config as well? Not sure about this, but I think we are using BOOST_NO_* names for C++0x features as well: obviously that means changing the logic quite a bit and patching more config files... :-(

I ended up removing those I hadn't already submitted a patch for.

2) Please use the MPL macros for defining the traits classes rather than inheriting from integral_constant directly? Much as I truely hate those macros, they are necessary for full MPL interoperability unfortunately :-(

I just replaced the boost_type_traits.patch file with a new one. I changed the implementation approach to use intrinsics.hpp as much as possible and then I tried to be as little intrusive as I could. The resulting patch reduces type_traits failing tests to 4 for the bcc32 6.1.0 compiler. Let me know if you consider it acceptable.

comment:3 by anonymous, 14 years ago

Thanks that looks fine - just one small query - for what compiler versions (and where) are you defining BOOST_ILLEGAL_CV_REFERENCES ?

Cheers, John.

in reply to:  3 comment:4 by Nicola Musatti, 14 years ago

Replying to anonymous:

Thanks that looks fine - just one small query - for what compiler versions (and where) are you defining BOOST_ILLEGAL_CV_REFERENCES ?

That's defined in config/compiler/borland.hpp and applies to all versions of the compiler except the last one.

Cheers, Nicola

comment:5 by Nicola Musatti, 14 years ago

Resolution: fixed
Status: assignedclosed

John applied my patches and merged them into the release branch a while ago.

Note: See TracTickets for help on using tickets.