|
diff --git a/examples/array.c b/examples/array.c
|
| ... |
| 91 |
} |
91 |
} |
| 92 |
printf("\n"); |
92 |
printf("\n"); |
| 93 |
|
93 |
|
| 94 |
printf(" Using array_foreach_i: "); |
94 |
printf(" Using array_foreach_idx: "); |
| 95 |
array_foreach_i(values, val, idx) { |
95 |
array_foreach_idx(values, val, idx) { |
| 96 |
printf("[%zu]=%d ", idx, val); |
96 |
printf("[%zu]=%d ", idx, val); |
| 97 |
} |
97 |
} |
| 98 |
printf("\n\n"); |
98 |
printf("\n\n"); |
| ... |
|
diff --git a/nonstd.h b/nonstd.h
|
| ... |
| 203 |
_i_##var < (arr).length && ((var) = (arr).data[_i_##var], 1); \ |
203 |
_i_##var < (arr).length && ((var) = (arr).data[_i_##var], 1); \ |
| 204 |
++_i_##var) |
204 |
++_i_##var) |
| 205 |
|
205 |
|
| 206 |
#define array_foreach_i(arr, var, index) \ |
206 |
#define array_foreach_idx(arr, var, index) \ |
| 207 |
for (size_t index = 0; \ |
207 |
for (size_t index = 0; \ |
| 208 |
index < (arr).length && ((var) = (arr).data[index], 1); ++index) |
208 |
index < (arr).length && ((var) = (arr).data[index], 1); ++index) |
| 209 |
|
209 |
|
| ... |
|
diff --git a/tests.c b/tests.c
|
| ... |
| 663 |
array_free(arr); |
663 |
array_free(arr); |
| 664 |
} |
664 |
} |
| 665 |
|
665 |
|
| 666 |
MU_TEST(test_array_foreach_i) { |
666 |
MU_TEST(test_array_foreach_idx) { |
| 667 |
array(int) arr; |
667 |
array(int) arr; |
| 668 |
array_init(arr); |
668 |
array_init(arr); |
| 669 |
array_push(arr, 10); |
669 |
array_push(arr, 10); |
| ... |
| 674 |
size_t sum_idx = 0; |
674 |
size_t sum_idx = 0; |
| 675 |
int val; |
675 |
int val; |
| 676 |
|
676 |
|
| 677 |
array_foreach_i(arr, val, i) { |
677 |
array_foreach_idx(arr, val, i) { |
| 678 |
sum_val += val; |
678 |
sum_val += val; |
| 679 |
sum_idx += i; |
679 |
sum_idx += i; |
| 680 |
mu_assert_int_eq(val, arr.data[i]); |
680 |
mu_assert_int_eq(val, arr.data[i]); |
| ... |
| 932 |
RUN_TEST_WITH_NAME(test_array_reserve); |
932 |
RUN_TEST_WITH_NAME(test_array_reserve); |
| 933 |
RUN_TEST_WITH_NAME(test_array_clear); |
933 |
RUN_TEST_WITH_NAME(test_array_clear); |
| 934 |
RUN_TEST_WITH_NAME(test_array_foreach); |
934 |
RUN_TEST_WITH_NAME(test_array_foreach); |
| 935 |
RUN_TEST_WITH_NAME(test_array_foreach_i); |
935 |
RUN_TEST_WITH_NAME(test_array_foreach_idx); |
| 936 |
} |
936 |
} |
| 937 |
|
937 |
|
| 938 |
MU_TEST_SUITE(test_suite_slice) { |
938 |
MU_TEST_SUITE(test_suite_slice) { |
| ... |