type *_heap = h; type _swap = _heap[a]; \
set(_heap, a, _heap[b]); set(_heap, b, _swap); \
} \
-void su_smoothsort(void *base, size_t r0, size_t N, \
- int (*less)(void *base, size_t a, size_t b), \
- void (*swap)(void *base, size_t a, size_t b)); \
scope void prefix##sort(heaptype h) \
{ \
struct prefix##priv { size_t _size, _used; type _heap[1];}; \
} \
extern int const prefix##dummy_heap
+#include <sofia-sip/su_types.h>
+
+SOFIA_BEGIN_DECLS
+
+SOFIAPUBFUN void su_smoothsort(void *base, size_t r0, size_t N,
+ int (*less)(void *base, size_t a, size_t b),
+ void (*swap)(void *base, size_t a, size_t b));
+
+SOFIA_END_DECLS
+
#endif /** !defined(SOFIA_SIP_HEAP_H) */