[zeromq-dev] Build fails on Solaris / Sun C++: multimap::insert in socket_base.cpp:550
Ivan Pechorin
ivan.pechorin at gmail.com
Sun May 20 14:36:12 CEST 2012
Hello!
libzmq master fails to compile with Sun C++ on Solaris. I used just
./autogen.sh && ./configure && gmake
The error is:
"socket_base.cpp", line 550: Error: Could not find a match for
std::multimap<std::string, zmq::own_t*, std::less<std::string>,
std::allocator<std::pair<const std::string,
zmq::own_t*>>>::insert(std::pair<std::string, zmq::own_t*>) needed in
zmq::socket_base_t::add_endpoint(const char*, zmq::own_t*).
Please, see config.log and full build output here:
https://zeromq.jira.com/browse/LIBZMQ-368
It seems like the solution is to use insert(endpoints_t::value_type(first,
second)) instead of insert(std::make_pair(first, second))
Please, see pull request https://github.com/zeromq/libzmq/pull/342
--- a/src/socket_base.cpp
+++ b/src/socket_base.cpp
@@ -547,7 +547,7 @@ void zmq::socket_base_t::add_endpoint (const char
*addr_, own_t *endpoint_)
{
// Activate the session. Make it a child of this socket.
launch_child (endpoint_);
- endpoints.insert (std::make_pair (std::string (addr_), endpoint_));
+ endpoints.insert (endpoints_t::value_type (std::string (addr_),
endpoint_));
}
int zmq::socket_base_t::term_endpoint (const char *addr_)
Regards,
Ivan
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.zeromq.org/pipermail/zeromq-dev/attachments/20120520/85174ace/attachment.htm>
More information about the zeromq-dev
mailing list