How to compile C++ code with std::ranges?

Viewed 21

I have this C++ code in prime.cpp:

#include <vector>
#include <ranges>

int main()
{
    auto v = std::vector{1, 2, 3, 4};
    v | std::views::drop(2);
    std::views::all(v) | std::views::drop(2);
}

And I want to compile it on my macOS. I have tried it with g++ prime.cpp -std=c++20, but it shows this errors:

prime.cpp:7:14: error: no member named 'views' in namespace 'std'
    v | std::views::drop(2);
        ~~~~~^
prime.cpp:8:10: error: no member named 'views' in namespace 'std'
    std::views::all(v) | std::views::drop(2);
    ~~~~~^
prime.cpp:8:31: error: no member named 'views' in namespace 'std'
    std::views::all(v) | std::views::drop(2);
                         ~~~~~^
3 errors generated.

G++ version shows this:

$ g++ --version
Apple clang version 13.1.6 (clang-1316.0.21.2.5)
Target: arm64-apple-darwin21.5.0
Thread model: posix
InstalledDir: /Library/Developer/CommandLineTools/usr/bin
0 Answers
Related