From e0e4da87f21f79376ea37e90db60aae8d7e9f010 Mon Sep 17 00:00:00 2001 From: Kimplul Date: Sat, 22 Mar 2025 14:12:50 +0200 Subject: try to use more generic auto type for iteration --- include/conts/conts.h | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) (limited to 'include') diff --git a/include/conts/conts.h b/include/conts/conts.h index 862bd31..d175d30 100644 --- a/include/conts/conts.h +++ b/include/conts/conts.h @@ -7,8 +7,16 @@ #define CONTAINER_OF(ptr, type, member) \ (type *)((char *)(ptr) - offsetof(type, member)) +#if __STDC_VERSION__ >= 202311UL +# define CONTS_AUTO auto +#elif defined(__GNUC__) +# define CONTS_AUTO __auto_type +#else +# warning "iteration won't work with this compiler" +#endif + #define foreach(name, i, s)\ - for (auto i = CONTS_JOIN(name, begin)(s);\ + for (CONTS_AUTO i = CONTS_JOIN(name, begin)(s);\ !CONTS_JOIN(name, end)(s, i);\ i = CONTS_JOIN(name, next)(i)) #endif /* CONTS_H */ -- cgit v1.2.3