【发布时间】:2016-05-09 08:36:05
【问题描述】:
我们将很快升级到 VS2015,我在重大更改列表中找到了这个:
常量元素
C++ 标准一直禁止 const 元素的容器 (如向量或集合)。 Visual C++ 2013 及更早版本 接受这样的容器。在当前版本中,此类容器失败 编译。
我想知道是否有人知道这是否也适用于集合。 我知道映射仍然可以包含 const 指针作为键,因为它们无论如何都是 const。
一个例子:
std::set<const QObject*>
我还能这样做吗?根据微软网站上的帖子,我认为不会。
【问题讨论】:
-
const T*和T* const不是一回事。 -
这句话的字面意思是它适用于集合。但是,您的代码与报价没有太大关系,因此您很安全:)
-
这种混淆被省略了星号(或引用上的&符号)之前的空格的高贵但具有误导性的风格所强化。写
const QObject*视觉上表明*比const更紧密地绑定到QObject。移动const没有帮助:QObject const*。这就像写return a * x+b * y;。
标签: c++ pointers c++11 visual-studio-2015 containers