我使用的是 Mac,我使用自制软件安装 zeromq。我想在我的应用程序中使用 zeromq。我试图编译 zmq.hpp https://github.com/zeromq/cppzmq/blob/master/zmq.hpp
int main () {
// Prepare our context and socket
zmq::context_t context (1);
zmq::socket_t socket (context, ZMQ_REP);
socket.bind ("tcp://*:5555");
while (true) {
zmq::message_t request;
// Wait for next request from client
socket.recv (&request);
std::cout << "Received Hello" << std::endl;
// Do some 'work'
sleep (1);
// Send reply back to client
zmq::message_t reply (5);
memcpy ((void *) reply.data (), "World", 5);
socket.send (reply);
}
return 0;
}
但它失败了。错误显示
“框架/zmq/zmq.hpp:377:35: 错误: 预期 ';' 在声明列表的末尾 socket_t (const socket_t&) ZMQ_DELETED_FUNCTION; ^ ; frameworks/zmq/zmq.hpp:379:42: error: expected ';' 在声明列表的末尾 void operator = (const socket_t&) ZMQ_DELETED_FUNCTION;"
为什么会这样?zmq.hpp 代码不包含任何错误。请帮忙。
最后我这样做了,它奏效了。
#if __has_feature(cxx_deleted_functions)
#define ZMQ_DELETED_FUNCTION = delete
#else
#define ZMQ_DELETED_FUNCTION
#endif
非常感谢。奥黛丽。