作者回复: 需要理解转移语义,它的目的就是要把原对象的内容给“偷走”,转移到新的对象里。
这样原对象就空了,但数据依然是有效的,比如0、nullptr,只是没有了实际意义,可以被安全、轻量地销毁。
作者回复: 示例代码,当然都是自己写出来比较好了,可以实践一下编码准则。
作者回复: 可以把zmq的调用封装起来,不对外暴露zmq接口,Python调用只传递几个参数。
作者回复:
1.只要没有显式声明noexcept的地方,其实都应该加上try-catch。
2.对,用C++写底层接口,然后用Python、lua去调用。
3.思路很对。
作者回复: unique_ptr只能管理对象的生命周期,自动销毁堆上的对象。而SpinLockGuard的目的是在生命周期结束时自动解锁。
虽然用的都是RAII技术,但两者的行为、作用不同。
作者回复: 可以看一下21讲,这个服务器前面是前端服务,不是直接的客户端,当然,说是客户端也可以,毕竟是示例程序,不那么严格。
作者回复: 每个请求开新线程的代价是比较高的,但课程里的代码只是为了演示目的,实际项目里最好用线程池。