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

const容器的正确性

如何解决《const容器的正确性》经验,为你挑选了0个好方法。

经过多年盲目地接受std::vector::operator[] const返回的事实const_reference,但是,鉴于const如何为智能指针工作,我现在开始想知道为什么它和其他STL容器都是这样设计的.似乎a的"constness" const std::vector既适用于向量及其元素,而对于智能指针,"constness"仅适用于指针而不适用于它所指向的元素.

为了澄清,似乎应该有一个类似矢量的容器,const这意味着用户不能改变容器的大小,但容器中的元素是可变的.我的主要问题是:是否有某些东西可以阻止这种类型的容器"const正确"?

似乎通过添加一个额外的间接层(例如std::vector> const)来实现这一点有一些hackish变通方法,但我正在寻找一些在维护方面不那么尴尬的东西.

顺便说一句,如果在STL容器之前将智能指针合并到语言中,那么const访问器是否仍然按照它们今天的方式定义?

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