Remove `SOD_CAR' from the public interface.
[sod] / lib / sod.h
index 074989d..dc85843 100644 (file)
--- a/lib/sod.h
+++ b/lib/sod.h
   extern "C" {
 #endif
 
+/*----- Preliminary utilities ---------------------------------------------*/
+
+/* --- @SOD__CAR@ --- *
+ *
+ * Arguments:  @...@ = a nonempty list of arguments
+ *
+ * Returns:    The first argument only.
+ */
+
+#if __STDC_VERSION__ >= 199901
+#  define SOD__CAR(...) SOD__CARx(__VA_LIST__, _)
+#  define SOD__CARx(a, ...) a
+#endif
+
 /*----- Header files ------------------------------------------------------*/
 
 #include <stdarg.h>
@@ -125,18 +139,6 @@ struct sod_chain {
   ((struct cls##__ilayout *)                                           \
    ((char *)(obj) - offsetof(struct cls##__ilayout, chead)))
 
-/* --- @SOD_CAR@ --- *
- *
- * Arguments:  @...@ = a nonempty list of arguments
- *
- * Returns:    The first argument only.
- */
-
-#if __STDC_VERSION__ >= 199901
-#  define SOD_CAR(...) SOD__CARx(__VA_LIST__, _)
-#  define SOD__CARx(a, ...) a
-#endif
-
 /*----- Utility macros ----------------------------------------------------*/
 
 /* --- @SOD_CLASSOF@ --- *