C++ C++;提振1.72.0-';延迟';:不是';标准::共享\u ptr<;boost::asio::io_上下文>';

C++ C++;提振1.72.0-';延迟';:不是';标准::共享\u ptr<;boost::asio::io_上下文>';,c++,boost,boost-asio,shared-ptr,C++,Boost,Boost Asio,Shared Ptr,我试图使用Boost的ASIO库在Windows上为我的项目轻松联网,但每当我包含与std::shared_ptr和Boost::ASIO::ip::tcp::acceptor有关的内容时,我都会遇到以下错误: “延迟”:不是“std::shared\u ptr”的成员 boolchatterboxservice::Service::open() { context=std::make_shared(); 尝试 { acceptor=std::make_shared(上下文,boost::asi

我试图使用Boost的ASIO库在Windows上为我的项目轻松联网,但每当我包含与
std::shared_ptr
Boost::ASIO::ip::tcp::acceptor
有关的内容时,我都会遇到以下错误:

“延迟”:不是“std::shared\u ptr”的成员

boolchatterboxservice::Service::open()
{
context=std::make_shared();
尝试
{
acceptor=std::make_shared(上下文,boost::asio::ip::tcp::endpoint(boost::asio::ip::tcp::v4(),port));
}
捕获(boost::system::system\u错误)
{

如果您试图从共享ptr构造接受器,您应该取消对它的引用

try
{
    acceptor = std::make_shared<boost::asio::ip::tcp::acceptor>(*context, boost::asio::ip::tcp::endpoint(boost::asio::ip::tcp::v4(), port));
}
试试看
{
acceptor=std::make_shared(*上下文,boost::asio::ip::tcp::endpoint(boost::asio::ip::tcp::v4(),port));
}

啊,好吧,这就解释了。我想它不会出现在谷歌上是有道理的,因为这是一个指针问题,而不是一个提升问题。所以你可以像普通指针一样去引用一个
共享的\u ptr
?是的,你可以去引用以获得底层对象。
try
{
    acceptor = std::make_shared<boost::asio::ip::tcp::acceptor>(*context, boost::asio::ip::tcp::endpoint(boost::asio::ip::tcp::v4(), port));
}