当前位置:  开发笔记 > 编程语言 > 正文

继承自STL容器

如何解决《继承自STL容器》经验,为你挑选了1个好方法。

阅读StackOverflow问答这样和这个,看起来从STL容器继承通常是一个坏主意.我不打算在生产代码中这样做; 但是,我想知道它是否会给我一个有效的快速和肮脏的测试.

在我们的代码中,我们大量使用STL,我们希望测试如何将内存与64字节边界对齐会影响代码的性能.我打算通过编写一个简单的自定义分配器来测试这个,并且有一个简单的类继承std::vector了类中唯一的变化,即默认分配器是我的自定义分配器而不是std::allocator简单地编写脚本来使用sed和替换所有的实例std::vector和我的新班级.使用这种方法,我将永远不会有任何指针进入基类(所有实例std::vector都已被替换,所以任何指针都将是我的自定义类型),这似乎是从STL继承的最大问题.这是一种有效的方法吗?还有其他更容易/更安全的替代方案吗?这是一个300万行代码库,因此手动更改所有std::vector使用自定义分配器的实例至少可以说是非常非常耗时的任务.



1> Sam Cristall..:

如果你有C++ 11支持,而不是继承,你可以使用模板化的using语句:

template 
using custom_vector = std::vector>;

然后使用你的脚本的sed std::vectorcustom_vector.

推荐阅读
无名有名我无名_593
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有