我正在测试 C++ 20 的范围,这是我的main.cpp
:
#include <ranges>
#include <iostream>
int main()
{
auto const ints = {0,1,2,3,4,5};
auto even = [](int i) { return 0 == i % 2; };
auto square = [](int i) { return i * i; };
for (int i : ints | std::views::filter(even) | std::views::transform(square)) {
std::cout << i << ' ';
}
std::cout << '\n';
}
编译它clang++-12
但找不到“范围”:
$ clang++-12 --version
Ubuntu clang version 12.0.1-++20210525082622+328a6ec95532-1~exp1~20210525063352.95
Target: x86_64-pc-linux-gnu
Thread model: posix
InstalledDir: /usr/bin
$ clang++-12 main.cpp
cpp_ranges.cpp:1:10: fatal error: 'ranges' file not found
#include <ranges>
^~~~~~~~
1 error generated.
打电话clang++12
并--std=c++20
没有什么不同。
我该如何解决?