#5934 closed Bugs (fixed)
boost/math/tools/tuple.hpp omits "tr1/" from #include directive.
| Reported by: | 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 , 11 years ago
comment:2 by , 11 years ago
| Resolution: | → fixed |
|---|---|
| Status: | new → closed |
comment:3 by , 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.
Note:
See TracTickets
for help on using tickets.

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