gpt4 book ai didi

c++ - GCC 4.9 和 clang 3.5 中的 std::rbegin 和 std::rend 函数

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:34:21 25 4
gpt4 key购买 nike

我一直在 MSVC 2013 中使用 std::rbegin 和 std::rend。当我尝试使用 GCC 4.9.1 或 clang 3.5.0 编译我的代码时,两者都告诉我“rbegin”和“rend”是不是命名空间“std”的一部分。

请参阅下面的代码示例。我是在做错什么,还是只是尚未在 GCC 和 clang 中实现?

// test.cpp

#include <vector>
#include <iostream>
#include <iterator>

int main(int, char**)
{
std::vector<int> test = {1, 2, 3 ,4, 5};
for (auto it = std::rbegin(test); it != std::rend(test); ++it) {
std::cout << *it << ", ";
}
std::cout << std::endl;

return 0;
}

海湾合作委员会输出:

g++ --std=c++14 test.cpp -o test && ./test
test.cpp: In function ‘int main(int, char**)’:
test.cpp:10:20: error: ‘rbegin’ is not a member of ‘std’
for (auto it = std::rbegin(test); it != std::rend(test); ++it) {
^
test.cpp:10:45: error: ‘rend’ is not a member of ‘std’
for (auto it = std::rbegin(test); it != std::rend(test); ++it) {
^

clang 输出类似,生成方式:

clang++ --std=c++14 test.cpp -o test && ./test

最佳答案

它确实可以使用 -std=c++14 -stdlib=libc++ 选项与 Clang 3.5 一起使用。看这个Live Example .我认为 libstdc++ 库对 rbegin()rend() 的支持在版本 4.9.2 中还不完整(它也是 not yet implemented in the upcoming gcc 5.0 版本)。

更新:它现在可以在 gcc 5.0 主干版本中使用。

关于c++ - GCC 4.9 和 clang 3.5 中的 std::rbegin 和 std::rend 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27922141/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com