summaryrefslogtreecommitdiffhomepage
path: root/misc/examples/spans
diff options
context:
space:
mode:
Diffstat (limited to 'misc/examples/spans')
-rw-r--r--misc/examples/spans/printspan.c35
1 files changed, 12 insertions, 23 deletions
diff --git a/misc/examples/spans/printspan.c b/misc/examples/spans/printspan.c
index eb9d80e3..b6999b61 100644
--- a/misc/examples/spans/printspan.c
+++ b/misc/examples/spans/printspan.c
@@ -1,18 +1,16 @@
-// printspan.c
+// https://www.modernescpp.com/index.php/c-20-std-span/
#include <stdio.h>
-#define i_implement
-#include <stc/cstr.h>
#define i_key int
#include <stc/cvec.h>
+
#define i_key int
#include <stc/cstack.h>
-#define i_key_str
-#include <stc/csset.h>
#include <stc/cspan.h>
using_cspan(intspan, int);
+
void printMe(intspan container) {
printf("%d:", (int)cspan_size(&container));
c_foreach (e, intspan, container)
@@ -20,33 +18,24 @@ void printMe(intspan container) {
puts("");
}
+
int main(void)
{
- intspan sp1 = cspan_init(intspan, {1, 2});
- printMe( sp1 );
+ printMe( c_init(intspan, {1, 2, 3, 4}) );
- printMe( c_init(intspan, {1, 2, 3}) );
+ int arr[] = {1, 2, 3, 4, 5};
+ printMe( (intspan)cspan_from_array(arr) );
- int arr[] = {1, 2, 3, 4, 5, 6};
- intspan sp2 = cspan_from_array(arr);
- printMe( c_LITERAL(intspan)cspan_subspan(&sp2, 1, 4) );
-
- cvec_int vec = c_init(cvec_int, {1, 2, 3, 4, 5});
- printMe( c_LITERAL(intspan)cspan_from(&vec) );
-
- printMe( sp2 );
+ cvec_int vec = c_init(cvec_int, {1, 2, 3, 4, 5, 6});
+ printMe( (intspan)cspan_from(&vec) );
cstack_int stk = c_init(cstack_int, {1, 2, 3, 4, 5, 6, 7});
- printMe( c_LITERAL(intspan)cspan_from(&stk) );
+ printMe( (intspan)cspan_from(&stk) );
- csset_str set = c_init(csset_str, {"5", "7", "4", "3", "8", "2", "1", "9", "6"});
- printf("%d:", (int)csset_str_size(&set));
- c_foreach (e, csset_str, set)
- printf(" %s", cstr_str(e.ref));
- puts("");
+ intspan spn = c_init(intspan, {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12});
+ printMe( (intspan)cspan_subspan(&spn, 2, 8) );
// cleanup
cvec_int_drop(&vec);
cstack_int_drop(&stk);
- csset_str_drop(&set);
}