Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/elixir/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ ZMQ上下文已终止(线程)_C++_C++17_Zeromq - Fatal编程技术网

C++ ZMQ上下文已终止(线程)

C++ ZMQ上下文已终止(线程),c++,c++17,zeromq,C++,C++17,Zeromq,为什么ZMQ上下文的析构函数被多次调用 内联zmq::context\utctx\u代理(1); 类MyClass{ 私人: //数据连接 zmq::socket_t*sock_前端; zmq::socket\u t*sock\u后端; //乌提尔斯 std::thread*t=nullptr; 公众: MyClass(){ init(); connect(); } void init()noexcept{ sock_frontend=newzmq::socket_t(ctx_代理,zmq::

为什么ZMQ上下文的析构函数被多次调用


内联zmq::context\utctx\u代理(1);
类MyClass{
私人:
//数据连接
zmq::socket_t*sock_前端;
zmq::socket\u t*sock\u后端;
//乌提尔斯
std::thread*t=nullptr;
公众:
MyClass(){
init();
connect();
}
void init()noexcept{
sock_frontend=newzmq::socket_t(ctx_代理,zmq::socket_type::router);
sock_backend=new zmq::socket_t(ctx_代理,zmq::socket_type::dealer);
}
void connect(){
sock_前端->绑定(“tcp://127.0.0.1:8880");
sock_后端->绑定(“tcp://127.0.0.1:8888");
t=newstd::thread(&MyClass::proxy,this);

std::如果您尝试删除
ctx\U代理
定义中的
inline
关键字,会发生什么?您真的需要它吗?它是放在头文件中还是放在
.cpp
文件中?使程序可编译。@TEDLYNGOM非常感谢您!我刚刚删除了
inline
并更改了我的代码,现在它工作正常了!幸运的来宾s:-D
Thread-ID: 139944261580544
terminate called after throwing an instance of 'zmq::error_t'
  what():  Context was terminated
Aborted (core dumped)