#include <isl/list.h>
isl_ctx *isl_set_list_get_ctx(__isl_keep isl_set_list *list);
int isl_set_list_n_set(__isl_keep isl_set_list *list);
+ __isl_give struct isl_set *isl_set_list_get_set(
+ __isl_keep isl_set_list *list, int index);
int isl_set_list_foreach(__isl_keep isl_set_list *list,
int (*fn)(__isl_take struct isl_set *el, void *user),
void *user);
__isl_take isl_##EL##_list *list, \
__isl_take struct isl_##EL *el); \
int isl_##EL##_list_n_##EL(__isl_keep isl_##EL##_list *list); \
+__isl_give struct isl_##EL *isl_##EL##_list_get_##EL( \
+ __isl_keep isl_##EL##_list *list, int index); \
int isl_##EL##_list_foreach(__isl_keep isl_##EL##_list *list, \
int (*fn)(__isl_take struct isl_##EL *el, void *user), void *user);
return list ? list->n : 0;
}
+__isl_give EL *FN(FN(LIST(EL),get),BASE)(__isl_keep LIST(EL) *list, int index)
+{
+ if (!list)
+ return NULL;
+ if (index < 0 || index >= list->n)
+ isl_die(list->ctx, isl_error_invalid,
+ "index out of bounds", return NULL);
+ return FN(EL,copy)(list->p[index]);
+}
+
int FN(LIST(EL),foreach)(__isl_keep LIST(EL) *list,
int (*fn)(__isl_take EL *el, void *user), void *user)
{