Reputation: 4722
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)
{
...
}
Upvotes: 1
Views: 231
Reputation: 18200
Just use boost::transformed
:
for (SliceLayerPart* part : partOrderOptimizer.polyOrder | boost::transformed([&](int idx) { return &layer->parts[idx]; }))
{
...
}
Upvotes: 1