This is definitely true. In essence, you are giving the users the choice between:
- Keeping the pipeline long;
- splitting the code into multiple macros rather than functions.
Both have obvious drawbacks.
But maybe there still are situations in which it is useful. After all, a pipeline of enumeration functions is usually more readable than a couple of hand-crafted for-loops.
I did some preliminary benchmarks which seemed to indicate that for a simple chain of multiple map operations with a reduce at the end, a single for is roughly ~20% faster. This seem promising, but more bench-marking is necessary to find out whether this still holds in slightly different situations.






















