updated doc (close #231)

This commit is contained in:
Michele Caini
2019-04-30 18:11:24 +02:00
parent 1414c5feac
commit bac4984496

View File

@@ -1500,6 +1500,24 @@ standard library. If it's not clear, this is a great thing.
As an example, this kind of iterators can be used in combination with
`std::for_each` and `std::execution::par` to parallelize the visit and therefore
the update of the components returned by a view or a group, as long as the
constraints previously discussed are respected.<br/>
constraints previously discussed are respected:
```cpp
auto view = registry.view<position, const velocity>();
std::for_each(std::execution::par_unseq, view.begin(), view.end(), [&view](auto entity) {
// ...
});
```
This can increase the throughput considerably, even without resorting to who
knows what artifacts that are difficult to maintain over time.
Unfortunately, because of the limitations of the current revision of the
standard, the parallel `std::for_each` accepts only forward iterators. This
means that the iterators provided by the library cannot return proxy objects as
references and **must** return actual reference types instead.<br/>
This may change in the future and the iterators will almost certainly return
both the entities and a list of references to their components sooner or later.
Multi-pass guarantee won't break in any case and the performance should even
benefit from it further.