C++ C++;提振1.72.0-';延迟';:不是';标准::共享\u ptr<;boost::asio::io_上下文>';
我试图使用Boost的ASIO库在Windows上为我的项目轻松联网,但每当我包含与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
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));
}