C++ 为什么我无法访问类';中声明的私有成员;boost::asio::detail::不可复制';?
下面是boostssl的教程。在那个教程中,我唯一没有做的事情就是将每个类放入自己的文件中。我不知道这是在哪里抛出,所以这是一个我很难调试C++ 为什么我无法访问类';中声明的私有成员;boost::asio::detail::不可复制';?,c++,boost,visual-studio-2012,boost-asio,C++,Boost,Visual Studio 2012,Boost Asio,下面是boostssl的教程。在那个教程中,我唯一没有做的事情就是将每个类放入自己的文件中。我不知道这是在哪里抛出,所以这是一个我很难调试 错误C2248:'boost::asio::detail::noncopyable::noncopyable':无法访问在类'boost::asio::detail::noncopyable'中声明的私有成员使用boost时的一个常见错误。asio是boost::asio::io_服务不可复制,因此您只能在类中存储对它的引用: struct foo {
错误C2248:'boost::asio::detail::noncopyable::noncopyable':无法访问在类'boost::asio::detail::noncopyable'中声明的私有成员使用boost时的一个常见错误。asio是
boost::asio::io_服务
不可复制,因此您只能在类中存储对它的引用:
struct foo
{
foo(boost::asio::io_service & io_service)
: io_service_(io_service)
{}
private:
boost::asio::io_service & io_service_; // ok
};
如果您声明了
boost::asio::io_service io_service
,则会出现上述错误,因为初始化io_service(io_service)
取决于调用的复制构造函数。错误说明了一切。您被禁止复制特定的Boost.Asio对象。可能您忘记了按引用而不是按值存储io服务了?不看你的代码就无法判断错误指向了哪一行?@avakar它没有指向我的任何代码。它指向中的io_service.hppboost@nijansen你说得对,把它贴出来作为回答,我会核对一下