diff --git a/zmq.hpp b/zmq.hpp index c1353ab..79ed2fb 100644 --- a/zmq.hpp +++ b/zmq.hpp @@ -213,13 +213,13 @@ namespace zmq msg() { typedef typename std::iterator_traits::difference_type size_type; - typedef typename std::iterator_traits::pointer pointer_t; + typedef typename std::iterator_traits::value_type value_t; - size_type const size_ = std::distance(first, last); + size_type const size_ = std::distance(first, last)*sizeof(value_t); int const rc = zmq_msg_init_size (&msg, size_); if (rc != 0) throw error_t (); - std::copy(first, last, static_cast(zmq_msg_data (&msg)) ); + std::copy(first, last, static_cast(zmq_msg_data (&msg)) ); } inline message_t (void *data_, size_t size_, free_fn *ffn_,