【发布时间】:2020-07-26 01:36:35
【问题描述】:
我想使用ranges-v3 就地转换数组。我可以用
ranges::transform成功,但未能使用actions::transform。
int arr[]{1, 2, 3};
auto fn = [](auto e) { return e + 1; };
ranges::transform(arr, std::begin(arr), fn); // ok
arr |= actions::transform(std::begin(arr), fn); // error
错误信息:
fatal error: no matching function for call to object of type 'const ranges::actions::transform_fn'
arg |= actions::transform(std::begin(arr), std::begin(arr),
^~~~~~~~~~~~~~~~~~
这种情况下如何使用actions::transform?
【问题讨论】:
-
抱歉,我使用的是
range-v3,而不是std::ranges。 -
您的错误信息似乎与代码行不符。
-
@cigien 错误出现在最后一行代码。
-
是的,但错误消息文本似乎与该行不匹配。
标签: c++ functional-programming range-v3