相关疑难解决方法(0)

lambda 和成员函数指针的区别

在我的回答中巴里指出最好打电话,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
Run Code Online (Sandbox Code Playgroud)

Plant是一个围绕的包装器intPlanter也是一个围绕的包装器std::vector<int>

https://godbolt.org/z/dr7PM5Tvd

c++ std-ranges

7
推荐指数
1
解决办法
157
查看次数

标签 统计

c++ ×1

std-ranges ×1