Greetings,
1) I admit code is quite clean using Python-style comprehensive containers. So by looking around I know there is the following already available:
https://www.codeproject.com/Tips/5276120/Multi-Container-List-Comprehension-in-Cplusplus
2) But I'm sure there is a way to mix that with the new pipe operator to make it even cleaner:
set nums = {1,2,3,4};
/* insert all elements multiplied by themselves */
auto result = nums | each(x, x*x);
/* insert all elements but only multiply those that fulfill the
condition */
auto result = nums | each(x, (x>2)?x*x:x);
/* insert only the elements that fulfill the condition */
auto result = nums | only(x, x<2, x*x);
/* insert and print only the elements that fulfill the condition
*/
auto result = nums | only(x, x<4 && cout<<x,
x*x); /* prints: 123 */
3) The standards should make room to parallelizing these
algorithms as well.
Regards,