套接字创建的shared_ptr的 - 什么是错的? [英] Shared_Ptr of socket creation - what is wrong?

查看:127
本文介绍了套接字创建的shared_ptr的 - 什么是错的?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

所以我尝试:

        boost::shared_ptr<tcp::socket> socket =
            boost::make_shared<tcp::socket>(io_service);

如所描述的<一href=\"http://stackoverflow.com/questions/5657011/why-boost-does-not-create-a-thread-in-such-case-c2248-and-how-to-create-it/5657118#5657118\">here.但它给我的错误:

编译器告诉我,它不能把(

Compiler tells me that it can not turn (

error C2664: 
boost::asio::basic_stream_socket<Protocol>::basic_stream_socket(
    boost::asio::io_­service &))
'boost::asio::io_service *const ' into 'boost::asio::io_service &'
\include\boost\smart_ptr\make_shared.hpp    

我该怎么办?

推荐答案

您需要通过 io_service对象使用时作为参考make_shared

boost::shared_ptr<tcp::socket> socket =
            boost::make_shared<tcp::socket>(boost::ref(io_service));

这篇关于套接字创建的shared_ptr的 - 什么是错的?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆