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