Opened 11 years ago

Closed 11 years ago

Last modified 11 years ago

#5934 closed Bugs (fixed)

boost/math/tools/tuple.hpp omits "tr1/" from #include directive.

Reported by: David Oliver <doliver@…> Owned by: John Maddock
Milestone: To Be Determined Component: math
Version: Boost 1.47.0 Severity: Problem
Keywords: Cc:

Description

In version_1_47_0 and the current head (Revision 74542), boost/math/tools/tuple.hpp includes at line 34 the C++11 header <tuple>, rather than the TR1 header <tr1/tuple>:

#elif defined(BOOST_HAS_TR1_TUPLE)

#include <tuple>

namespace boost{ namespace math{

using ::std::tr1::tuple;

// [6.1.3.2] Tuple creation functions
using ::std::tr1::ignore;
using ::std::tr1::make_tuple;
using ::std::tr1::tie;
using ::std::tr1::get;

// [6.1.3.3] Tuple helper classes
using ::std::tr1::tuple_size;
using ::std::tr1::tuple_element;

}}

#elif  ...

With gcc 4.4.3, without std=c++0x or std=gnu++0x specified, this produces a compatibility warning; other compilers/versions are likely to fail to find the header.

Changing the line to:

#include <tr1/tuple>

makes the compilation (and my unit tests) successful.

Cheers!

David Oliver.

Change History (4)

comment:1 by John Maddock, 11 years ago

Actually <tuple> is the TR1-conforming include and <tr1/tuple> is a gcc-ism, will fix anyway.

comment:2 by John Maddock, 11 years ago

Resolution: fixed
Status: newclosed

(In [74891]) GCC workaround when using TR1 tuple. Fixes #5934.

comment:3 by David Oliver <doliver@…>, 11 years ago

Thanks for fixing. I should have realized that <tr1/tuple> was a gcc-ism, but the compatibility warning makes it sound authoritative.

Cheers!

David.

comment:4 by John Maddock, 11 years ago

(In [74984]) Merge recent bug fixes from Trunk. Refs #6014 Refs #5832 Refs #5934 Refs #6001 Refs #5982 Refs #5914 Refs #5927

Note: See TracTickets for help on using tickets.