[Boost-bugs] [Boost C++ Libraries] #9424: Build failures using unordered and Sun 5.12 compiler

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