summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorTavian Barnes <tavianator@tavianator.com>2025-07-07 08:44:05 -0400
committerTavian Barnes <tavianator@tavianator.com>2025-07-09 09:00:08 -0400
commita69f4fb067ec22b95741e37efe355fb1106fefd2 (patch)
tree016969ad4c6948ffc42b499cfb5fc3be0d64cfe1 /src
parentefb983406cba85a92573f50cfc94c455422e7d3a (diff)
downloadbfs-a69f4fb067ec22b95741e37efe355fb1106fefd2.tar.xz
prelude: Move countof() here from bfs.h
countof() will likely be in the C2Y standard. Link: https://www.open-std.org/JTC1/SC22/WG14/www/docs/n3469.htm Link: https://thephd.dev/c2y-hitting-the-ground-running
Diffstat (limited to 'src')
-rw-r--r--src/bfs.h5
-rw-r--r--src/prelude.h9
2 files changed, 9 insertions, 5 deletions
diff --git a/src/bfs.h b/src/bfs.h
index 70a7282..ab96bf5 100644
--- a/src/bfs.h
+++ b/src/bfs.h
@@ -59,11 +59,6 @@ extern const char bfs_ldlibs[];
// Fundamental utilities
/**
- * Get the length of an array.
- */
-#define countof(...) (sizeof(__VA_ARGS__) / sizeof(0[__VA_ARGS__]))
-
-/**
* False sharing/destructive interference/largest cache line size.
*/
#ifdef __GCC_DESTRUCTIVE_SIZE
diff --git a/src/prelude.h b/src/prelude.h
index 3b1c4e5..1663af6 100644
--- a/src/prelude.h
+++ b/src/prelude.h
@@ -88,6 +88,15 @@
#endif // !C23
+// Future C standard backports
+
+/**
+ * Get the length of an array.
+ *
+ * https://www.open-std.org/JTC1/SC22/WG14/www/docs/n3469.htm
+ */
+#define countof(...) (sizeof(__VA_ARGS__) / sizeof(0[__VA_ARGS__]))
+
// Feature detection
// https://clang.llvm.org/docs/LanguageExtensions.html#has-attribute