Subject: [Boost-bugs] [Boost C++ Libraries] #9424: Build failures using unordered and Sun 5.12 compiler
From: Boost C++ Libraries (noreply_at_[hidden])
Date: 2013-11-22 15:53:10
#9424: Build failures using unordered and Sun 5.12 compiler
------------------------------+-------------------------
Reporter: lukester_null@⦠| Owner: danieljames
Type: Bugs | Status: new
Milestone: To Be Determined | Component: unordered
Version: Boost 1.55.0 | Severity: Problem
Keywords: |
------------------------------+-------------------------
{{{
#include <boost/unordered/unordered_map.hpp>
int main(int argc, char *argv[])
{
return 0;
}
}}}
Yields
{{{
"../boost_1_55_0/boost/unordered/detail/allocate.hpp", line 908: Error:
Templates can only declare classes or functions.
"../boost_1_55_0/boost/unordered/detail/allocate.hpp", line 908: Error:
Templates can only declare classes or functions.
"../boost_1_55_0/boost/unordered/detail/allocate.hpp", line 908: Error:
Templates can only declare classes or functions.
"../boost_1_55_0/boost/unordered/detail/allocate.hpp", line 908: Error:
<snip>
}}}
Looks like the scoping of the length template is wrong:
{{{
--- allocate.hpp-orig 2013-11-22 15:36:29.556400000 +0000
+++ allocate.hpp 2013-11-22 15:50:13.154595000 +0000
@@ -879,7 +879,7 @@
# define BOOST_UNORDERED_CONSTRUCT_FROM_TUPLE(n, namespace_)
\
template<typename Alloc, typename T>
\
void construct_from_tuple_impl(
\
- boost::unordered::detail::length<0>, Alloc&, T* ptr,
\
+ boost::unordered::detail::func::length<0>, Alloc&, T* ptr,
\
namespace_ tuple<>)
\
{
\
new ((void*) ptr) T();
\
@@ -892,7 +892,7 @@
template<typename Alloc, typename T,
\
BOOST_PP_ENUM_PARAMS_Z(z, n, typename A)>
\
void construct_from_tuple_impl(
\
- boost::unordered::detail::length<n>, Alloc&, T* ptr,
\
+ boost::unordered::detail::func::length<n>, Alloc&, T* ptr,
\
namespace_ tuple<BOOST_PP_ENUM_PARAMS_Z(z, n, A)> const& x)
\
{
\
new ((void*) ptr) T(
\
@@ -921,7 +921,7 @@
void construct_from_tuple(Alloc& alloc, T* ptr, Tuple const& x)
{
construct_from_tuple_impl(
- boost::unordered::detail::length<
+ boost::unordered::detail::func::length<
boost::tuples::length<Tuple>::value>(),
alloc, ptr, x);
}
}}}
Thanks
Luke Elliott.
-- Ticket URL: <https://svn.boost.org/trac/boost/ticket/9424> Boost C++ Libraries <http://www.boost.org/> Boost provides free peer-reviewed portable C++ source libraries.
This archive was generated by hypermail 2.1.7 : 2017-02-16 18:50:14 UTC