[Boost-bugs] [Boost C++ Libraries] #6081: unordered_multimap::emplace() is not available for Solaris Studio C++ compiler

Subject: [Boost-bugs] [Boost C++ Libraries] #6081: unordered_multimap::emplace() is not available for Solaris Studio C++ compiler
From: Boost C++ Libraries (noreply_at_[hidden])
Date: 2011-11-01 14:48:25


#6081: unordered_multimap::emplace() is not available for Solaris Studio C++
compiler
----------------------------------------------------------+-----------------
 Reporter: Maxim Kartashev <maxim.kartashev@…> | Owner: danieljames
     Type: Bugs | Status: new
Milestone: To Be Determined | Component: unordered
  Version: Boost 1.47.0 | Severity: Problem
 Keywords: |
----------------------------------------------------------+-----------------
 Trying to compile
 ./libs/unordered/test/unordered/unnecessary_copy_tests.cpp with Sun C++
 5.11 results in the following error:

 ".../boost_1_47_0//libs/unordered/test/unordered/unnecessary_copy_tests.cpp",
 line 249: Error: Could not find a match for
 boost::unordered_map<unnecessary_copy_tests::count_copies,
 unnecessary_copy_tests::count_copies,
 boost::hash<unnecessary_copy_tests::count_copies>,
 std::equal_to<unnecessary_copy_tests::count_copies>,
 std::allocator<std::pair<const unnecessary_copy_tests::count_copies,
 unnecessary_copy_tests::count_copies>>>::emplace<boost::unordered_map<unnecessary_copy_tests::count_copies,
 unnecessary_copy_tests::count_copies,
 boost::hash<unnecessary_copy_tests::count_copies>,
 std::equal_to<unnecessary_copy_tests::count_copies>,
 std::allocator<std::pair<const unnecessary_copy_tests::count_copies,
 unnecessary_copy_tests::count_copies>>>::Arg0>() needed in
 unnecessary_copy_tests::unnecessary_copy_emplace_map_test_type::run().

 Investigation revealed that necessary emplace() method is indeed missing:
 it is placed under
         #if !BOOST_WORKAROUND(__SUNPRO_CC, BOOST_TESTED_AT(0x5100))
 which effectively removes emplace() with default argument from Sun C++
 compiler's sight.

 The reason for this "workaround" is unclear as the test compiles
 successfully (with "workaround" removed, of course) even with 5.9
 compiler. (It fails at run time, though, when compiled with stlport4, but
 passes with stdc++)

-- 
Ticket URL: <https://svn.boost.org/trac/boost/ticket/6081>
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:07 UTC