A simpler example: call a void block with two arguments.
| 38 | |
| 39 | // A simpler example: call a void block with two arguments. |
| 40 | void with_values(int32_t a, int32_t b, |
| 41 | const TBlock<void, int32_t, int32_t> & blk, |
| 42 | Context * context, LineInfoArg * at) { |
| 43 | das_invoke<void>::invoke(context, at, blk, a, b); |
| 44 | } |
| 45 | |
| 46 | // Predicate filter: call block for each element, collect those that pass. |
| 47 | int32_t count_matching(const TArray<int32_t> & arr, |