c++ - gcc 支持 cbegin 和 cend 方法

标签 c++ gcc

哪个版本的 gcc 编译器支持容器的免费 const_iterator 方法,例如:cbegincendcrbegincrend。我使用带有 -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/

相关文章:

c++ - "undefined reference to"C++ 中的运算符重载

c++ - 函数将结构返回为 LValue

c - 如何告诉 GCC 为实模式生成 16 位代码

c++ - switch语句有问题

c++ - 调用函数传递数组

c++ - 使用 MinGW gcc/g++ (nuwen distro) 编译的程序中的运行时错误

c++ - 为什么 GCC 允许从私有(private)嵌套类继承?

测试代码生成器优化

c++ - c中不同函数的不同变量的相同地址

c++ - 我该如何解决这种循环依赖关系?