-
- Downloads
There was a problem fetching the pipeline summary.
Merge branch 'feature/fix-forloop' into 'master'
[bugfix] Fix possible memory corruption in ForLoop The reason for perfect forwarding is to also forward r-values as r-value references such that the called function can do a move on such values. As a consequence you should never call `std::forward` on the same object twice because the second function may get a moved from object since the first one has already stolen the data. E.g. for the following operation ```cpp template<int i> struct Operation { static void apply(std::vector<int> v) {} }; ``` a call to ```cpp Dune::ForLoop<Operation, 0, 1>::apply(std::vector<int>{1,2,3}); ``` will pass a moved from vector in an undefined state on the second call. BTW: The same error existed in the old implementation of `ForLoop` See merge request !177
No related branches found
No related tags found
Pipeline #