Opened 8 years ago

Closed 8 years ago

#10190 closed Patches (fixed)

declval missing in GCC 4.4

Reported by: Niklas Angare <li51ckf02@…> Owned by: Joel de Guzman
Milestone: To Be Determined Component: fusion
Version: Boost Development Trunk Severity: Problem
Keywords: Cc:

Description

Many Fusion tests as well as all Boost.MSM tests fail on QNX 6.5.0 in C++0x mode because Fusion uses the function std::declval() that GCC 4.4 doesn't provide.

Also some numeric/odeint tests such as fusion_algebra and some spirit/repository tests such as qi_repo_subrule fail due to this.

Sample error:

../boost/fusion/container/map/map_iterator.hpp:40: error: 'declval' is not a member of 'std'

Full output: http://www.boost.org/development/tests/develop/developer/output/NA-QNX650-SP1-x86-boost-bin-v2-libs-fusion-test-map-test-qcc-4-4-2_x86-debug-debug-symbols-off.html

The attached patch replaces all uses of std::declval() with boost::declval().

All Fusion tests pass with the patch except those that already failed for other reasons (std_tuple_iterator, std_tuple and as_map). All MSM tests also pass except those that have always failed for other reasons.

Attachments (1)

fusion_declval.patch (6.3 KB ) - added by Niklas Angare <li51ckf02@…> 8 years ago.

Download all attachments as: .zip

Change History (5)

by Niklas Angare <li51ckf02@…>, 8 years ago

Attachment: fusion_declval.patch added

comment:1 by Joel de Guzman, 8 years ago

Could you post a pull request here? https://github.com/boostorg/fusion

comment:2 by Niklas Angare <li51ckf02@…>, 8 years ago

Sure, but I don't have a GitHub account and it will take me a while to set one up.

comment:3 by Kohei Takahashi <flast@…>, 8 years ago

The patch seems good. I open a PR on behalf of Niklas.

ttps://github.com/boostorg/fusion/pull/30

comment:4 by Joel de Guzman, 8 years ago

Resolution: fixed
Status: newclosed
Note: See TracTickets for help on using tickets.