c++ - 为什么 std::reference_wrapper 显式定义复制赋值运算符?
问题描述
std::reference_wrapper 显式声明了复制赋值运算符。为什么?这应该可以防止隐式定义移动构造/赋值,所以我的假设是他们不希望你移动 std::reference_wrapper,但我不确定为什么这很重要。
如果您查看“可能的实现”,他们只是默认操作员: https ://en.cppreference.com/w/cpp/utility/functional/reference_wrapper/operator%3D
只是寻找一些关于为什么委员会认为有必要这样做的历史。
解决方案
这应该防止隐式定义移动构造/分配
std::reference_wrapper
是一个非拥有引用(实际上是一个指针),移动操作与复制没有什么不同。不要将其与std::shared_ptr
.
推荐阅读
- javascript - 为什么在访问 EventType 对象上的 parentElement 时会出错?
- javascript - 如何将帖子中的特定行显示为博客中的帖子摘要?
- mysql - MySQL中基于时间的操作
- postgresql - 将包含数组的列转换为新行
- authentication - 如何使用 Keycloak 保护部署在 wildfly 实例中的耳朵
- .net - WebClient 按顺序下载图像会导致 ImageList 出现问题
- regex - 如何创建一个正则表达式,该表达式不允许社会安全号码中有相同的 9 个重复数字,带或不带连字符?
- python - AttributeError:“ClientUser”对象在 Discord.py 上没有属性“guild_permissions”
- open-telemetry - 用于短期脚本的 OpenTelemetry?
- html - 有什么方法可以更改 html 的弹出窗口大小的大小