diff --git a/src_main/containers/pideque.h b/src_main/containers/pideque.h index dd2e3d3c..3a4d7c21 100755 --- a/src_main/containers/pideque.h +++ b/src_main/containers/pideque.h @@ -370,7 +370,12 @@ public: } #ifdef PIP_CXX11_SUPPORT - PIDeque forEach(std::function f) const { + const PIDeque & forEach(std::function f) const { + for (uint i = 0; i < pid_size; ++i) + f(pid_data[i + pid_start]); + return *this; + } + PIDeque copyForEach(std::function f) const { PIDeque ret; ret.reserve(pid_size); for (uint i = 0; i < pid_size; ++i) ret << f(pid_data[i + pid_start]); diff --git a/src_main/containers/pivector.h b/src_main/containers/pivector.h index 583e8980..41d7082c 100755 --- a/src_main/containers/pivector.h +++ b/src_main/containers/pivector.h @@ -362,7 +362,12 @@ public: } #ifdef PIP_CXX11_SUPPORT - PIVector forEach(std::function f) const { + const PIVector & forEach(std::function f) const { + for (uint i = 0; i < piv_size; ++i) + f(piv_data[i]); + return *this; + } + PIVector copyForEach(std::function f) const { PIVector ret; ret.reserve(piv_size); for (uint i = 0; i < piv_size; ++i) ret << f(piv_data[i]);