为什么我无法访问在类"boost::asio::d etail::不可复制"中声明的私人成员?
Why am I getting cannot access private member declared in class 'boost::asio::detail::noncopyable'?
我正在学习本教程以增强SSL。我在该教程中唯一没有做的事情就是将每个类放入自己的文件中。我不知道这是在哪里抛出的,所以这对我来说很难调试。
错误C2248:"boost::asio::detail::noncopyable::noncopiable':无法访问类"boost:"asio:"detail:"中声明的私有成员
使用Boost.Asio时的一个常见错误是boost::asio::io_service
是不可复制的,因此您只能在类中存储对它的引用:
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)
取决于所调用的复制构造函数。
相关文章:
- 简单可复制与可简单复制
- reinterpret_cast,只读访问,简单的可复制类型,会出什么问题?
- 对于参加可复制和可移动类的访问者来说,应该有多少过载?
- 可变参数宏:无法通过"..."传递非平凡可复制类型的对象
- 为什么 std::atomic<std::string> 会给出微不足道的可复制错误?
- 我可以隐式地创建一个琐碎的可复制类型吗
- 是std::memcpy在不同的可复制类型之间的未定义行为
- 为什么一对常量是微不足道的可复制的,而对不是?
- 在一个微不足道的可复制结构中,移动语义应该实现吗?
- 防止作用域枚举可复制/可移动
- C :对象上的可复制视图
- 防御性地应用 std::move 到平凡可复制的类型是否不可取
- 为什么 std::function 本身是可复制构造的类型?
- C++不可复制的 lambda 的行为是可复制的
- 错误:无法通过'...'传递非平凡可复制类型的对象'class boost::filesystem::path'
- 不能让类是微不足道的可复制的。我做错了什么?
- 使用临时存储区复制普通的可复制类型:允许吗
- 使用realloc可以安全地重新分配琐碎的可复制对象的存储吗
- 为什么Boost.Asio处理程序必须是可复制的
- 我需要可复制的缓冲区,尽可能轻(例如,不初始化零)