std::views 命名空间在 Xcode 的 C++ 中不可用吗?

Rob*_*b N 4 c++ xcode c++20 std-ranges

我有 Xcode 14 beta,我尝试从 cppreference.com编译这个连接示例。

#include <iostream>
#include <ranges>
#include <string_view>
#include <vector>
 
int main()
{
    using namespace std::literals;
    const auto bits = { "https:"sv, "//"sv, "cppreference"sv, "."sv, "com"sv };
    for (char const c : bits | std::views::join) std::cout << c; // Error 1
    std::cout << '\n';
 
    const std::vector<std::vector<int>> v{ {1,2}, {3,4,5}, {6}, {7,8,9} };
    auto jv = std::ranges::join_view(v);  // Error 2
    for (int const e : jv) std::cout << e << ' ';
    std::cout << '\n';
}
Run Code Online (Sandbox Code Playgroud)

我收到错误:

1. No member named 'views' in namespace 'std'
2. No member named 'join_view' in namespace 'std::ranges'
Run Code Online (Sandbox Code Playgroud)

该参考网站说这些东西“自 C++20 起”可用。我的语言构建设置为最大:C++2b。报告clang --version:Apple clang 版本 14.0.0 (clang-1400.0.29.102)。

有没有办法让它与 Xcode 的 C++ 编译器一起工作?

S.M*_*.M. 5

AppleClang 不支持 C++ 视图。关于C++编译器支持请参见第4列红框部分。

  • 对于 C++20,它是该表中的一行:单一范围提案。 (5认同)