Currently, the implementations of the proxy() and proxy_steerable() functions take void * arguments just like the C ZMQ API instead of these cppzmq classes (like zmq::socket_t for sockets instead of void *).
cppzmq ought to do the appropriate accessing/casting work in the proxy functions instead of the caller.