我正在尝试使用 zmq 创建一个通用节点,该节点将形成动态计算图,但是我在类中的 zmq 套接字的前向声明中遇到错误。我想知道是否有人可以阐明这一点?该类的精简版本是:
\n\n节点.hpp
\n\n/* \n * node.hpp\n*/ \n\n#ifndef NODE_\n#define NODE_\n\n#include <iostream>\n#include "zmq.hpp"\n\nclass Node\n{\nprivate:\n std::string name_;\n std::ostream& log_;\n zmq::context_t context_;\n zmq::socket_t subscriber_;\n zmq::socket_t publisher_;\n\npublic:\n Node(std::ostream& log, std::string name);\n void sendlog(std::string msg);\n};\n\n#endif // NODE_ \nRun Code Online (Sandbox Code Playgroud)\n\n节点.cpp
\n\n/* \n * node.cpp\n*/ \n\n#include <iostream>\n#include <string>\n#include "zmq.hpp"\n#include "node.hpp"\n\nNode::Node(std::ostream& log, std::string name): \n log_(log),\n name_(name)\n{\n sendlog(std::string("initialising ") + name_);\n\n zmq::context_t context_(1);\n zmq::socket_t subscriber_(context_, zmq::socket_type::sub);\n zmq::socket_t publisher_(context_, zmq::socket_type::pub);\n\n subscriber_.connect("ipc:///tmp/out.ipc");\n publisher_.connect("ipc:///tmp/in.ipc");\n\n sendlog(std::string("finished initialisation"));\n}\n\nvoid Node::sendlog(std::string msg)\n{\n this->log_ << msg << std::endl;\n}\nRun Code Online (Sandbox Code Playgroud)\n\n …