【发布时间】:2009-08-02 14:28:24
【问题描述】:
各位 C++ 程序员,大家好。 我希望成为一个关于 STL 容器的快速问题:
std::list<std::string> l;
此语句在某些 C++ 源文件中使用时编译良好(带有适当的包含)。但是
std::list<const std::string> m;
或
std::list<std::string * const> n;
使用 gcc(gcc 版本 4.0.1(Apple Inc. build 5484))时编译失败。 但是,使用 Visual Studio 2008 C++ 编译器,没有任何抱怨。
一点研究发现,STL 容器中的元素必须是 Assignable。 VC 实现中是否存在 STL 错误(我会说:'不太可能')或者他们是否使用了 Assignable 的另一个概念?
【问题讨论】:
标签: c++ stl const-correctness