【发布时间】:2022-10-16 10:30:21
【问题描述】:
在我的回答here 中,Barry 指出最好打电话给views::transform(&Planter::getPlants),因为views::transform([](Planter const& planter){... 不小心复制了。
#if 1
auto plants = planters
| std::views::transform([](Planter const& planter){ return planter.getPlants();})
| std::views::join
| std::views::common
;
// Plant copy constructor
// Plant copy constructor
// Plant copy constructor
// Plant copy constructor
// Plant copy constructor
#else
auto plants = planters
| std::views::transform(&Planter::getPlants)
| std::views::join
;
#endif
// Plant copy constructor
// Plant copy constructor
这里Plant 是int 的包装,Planter 是std::vector<int> 的包装。
【问题讨论】:
标签: c++ std-ranges