[zeromq-dev] Build fails on Solaris / Sun C++: multimap::insert in socket_base.cpp:550
Pieter Hintjens
ph at imatix.com
Mon May 21 17:09:29 CEST 2012
Ivan,
Thanks for this patch; I've merged your pull request.
-Pieter
On Sun, May 20, 2012 at 7:36 AM, Ivan Pechorin <ivan.pechorin at gmail.com> wrote:
> 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
>
> _______________________________________________
> zeromq-dev mailing list
> zeromq-dev at lists.zeromq.org
> http://lists.zeromq.org/mailman/listinfo/zeromq-dev
>
More information about the zeromq-dev
mailing list