【发布时间】:2022-12-03 06:52:51
【问题描述】:
面临的问题标准::范围::至我正在执行来自 https://en.cppreference.com/w/cpp/ranges/to 的以下示例
#include <algorithm>
#include <concepts>
#include <iostream>
#include <ranges>
#include <vector>
int main()
{
auto vec = std::views::iota(1, 5)
| std::views::transform([](auto const v){ return v * 2; })
| std::ranges::to<std::vector>();
static_assert(std::same_as<decltype(vec), std::vector<int>>);
std::ranges::for_each(vec, [](auto const v){ std::cout << v << ' '; });
}
但是得到一个错误
main.cpp: In function 'int main()':
main.cpp:11:29: error: 'to' is not a member of 'std::ranges'
11 | | std::ranges::to<std::vector>();
| ^~
main.cpp:11:43: error: missing template arguments before '>' token
11 | | std::ranges::to<std::vector>();
| ^
main.cpp:11:45: error: expected primary-expression before ')' token
11 | | std::ranges::to<std::vector>();
| ^
main.cpp:13:24: error: template argument 1 is invalid
13 | static_assert(std::same_as<decltype(vec), std::vector<int>>);
https://coliru.stacked-crooked.com/view?id=8fdd3554af82ef24
我正在使用编译器 C++23
【问题讨论】: