【发布时间】:2019-10-04 01:56:50
【问题描述】:
我正在学习 C++20 范围(使用 Range-V3-VS2015)。我有这段代码可以正常工作:
string clean;
auto tmp1 = input | view::remove_if(not_alpha) | view::transform(::tolower);
std::copy(tmp1.begin(), tmp1.end(), std::back_inserter(clean));
auto tmp2 = clean |= action::sort | action::unique;
但是,我想将定义 tmp1 和 tmp2 的两个管道组合成一个管道。那可能吗?我尝试了很多方法,包括在中间添加view::move 和view::copy,均无济于事。
【问题讨论】:
-
你不应该拿标准库函数的地址anymore;使用 lambda 调用它们。 (是的,这对于 C++ 不会重载的 C 库函数来说有点傻。)
-
为什么要将它们合并到一个管道中?不应该是相反的——将这两条管道分成不同的操作吗?