I am not sure if it is a correct code, but at least as an example, I was able to declare a template parameter of type rage as follows:
template <std::ranges::range Range>
inline auto TransformIt(Range r)
{
return r | std::views::transform([](int n) { return n * n; });
}
int main()
{
std::vector<int> v;
auto r = TransformIt(v);
return 0;
}
but I was unable to improve my code like this:
template <std::ranges::range<int> Range>
inline auto TransformIt(Range r)
{
return r | std::views::transform([](int n) { return n * n; });
}
what is the right syntax for that?