哪个版本的 gcc 编译器支持容器的免费 const_iterator
方法,例如:cbegin
、cend
、crbegin
,crend
。我使用带有 -std=c++0x
标志启用的 c++0x 功能的 gcc 4.6.1,但这些方法无法在我的代码中解析。
最佳答案
很遗憾,没有免费功能cbegin
/cend
在标准中,也没有任何反向版本。不过,您始终可以使用强制转换来获取常量迭代器:
auto it = std::begin(static_cast<T const &>(x));
使用 std::add_const
来自 <type_traits>
如果您非常需要它,您甚至应该能够组装一些相当通用的东西。
容器成员函数cbegin
/crbegin
etc 都是 C++11 的一部分,GCC 已经支持这些有一段时间了;很可能从 4.3 开始(当 C++11 支持首次开始时)。 GCC 4.6 绝对支持这些;如果您遇到问题,请发布麻烦的代码。
关于c++ - gcc 支持 cbegin 和 cend 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9353975/