문제

I have the following piece of code:

for (int idx : partOrderOptimizer.polyOrder)
{
    SliceLayerPart* part = &layer->parts[idx];
    ...
}

How would I go about transforming this into a single range based for loop, alike:

for (SliceLayerPart* part = &layer->parts[idx] where int idx : partOrderOptimizer.polyOrder)
{
    ...
}
도움이 되었습니까?

해결책

Just use boost::transformed:

for (SliceLayerPart* part : partOrderOptimizer.polyOrder | boost::transformed([&](int idx) { return &layer->parts[idx]; }))
{
    ...
}
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top