分析 vs2019 c++20 语法规范下的全局函数: _Pocca ,这涉及到分配器的传递

(1)看 STl 源码时涉及到容器对象的 copy 时会调用该函数,例如 string 容器的 copy 操作:

在这里插入图片描述

(2)该函数的源码如下:

在这里插入图片描述

从此源码得出结论,如果不自己写分配器,使用 STL 提供的标准分配器。那么由上图可知, 函数 _Pocca 中的 if 语句将不会得到执行。
原因是形参 1 和 2 都是由 STL 的分配器 allocator 实例化的。彼此一模一样,不必再复制。因为此 if 没有屏幕输出,看不出来,我们可以暂时修改下这个函数的源码,加上 cout (因为一些 namespace 的错误,无法使用 cout ,改用低级的 c 函数 printf ) ,如下图:

在这里插入图片描述

在这里插入图片描述

(3) 写例子测试一下:
在这里插入图片描述

可见咱们的猜测是对的。谢谢阅读

最近更新

  1. TCP协议是安全的吗?

    2024-05-13 05:52:03       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-05-13 05:52:03       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-05-13 05:52:03       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-05-13 05:52:03       20 阅读

热门阅读

  1. vue-router(路由)

    2024-05-13 05:52:03       10 阅读
  2. 【CV】计算机视觉是什么?

    2024-05-13 05:52:03       10 阅读
  3. 排序算法大全(附源码)

    2024-05-13 05:52:03       12 阅读
  4. 基于协同过滤算法的旅游推荐系统的设计

    2024-05-13 05:52:03       10 阅读
  5. C语言输出重定向

    2024-05-13 05:52:03       8 阅读
  6. [Linux] 常用服务器命令(持续更新)

    2024-05-13 05:52:03       11 阅读
  7. GPU常用命令

    2024-05-13 05:52:03       22 阅读
  8. is和==的关系

    2024-05-13 05:52:03       9 阅读
  9. 个人工控方面收藏网址记录(持续更新中)

    2024-05-13 05:52:03       12 阅读
  10. 一文搞懂MongoDB面试题(2万字长文)

    2024-05-13 05:52:03       10 阅读