質問

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