+ /** @brief Quick retrieval of scalar content
+ * @hideinitializer */
+# define xbt_dynar_get_as(dynar,idx,type) \
+ (*(type*)xbt_dynar_get_ptr((dynar),(idx)))
+ /** @brief Quick retrieval of scalar content
+ * @hideinitializer */
+# define xbt_dynar_getlast_as(dynar,type) \
+ (*(type*)xbt_dynar_get_ptr((dynar),xbt_dynar_length(dynar)-1))
+ /** @brief Quick retrieval of scalar content
+ * @hideinitializer */
+# define xbt_dynar_getfirst_as(dynar,type) \
+ (*(type*)xbt_dynar_get_ptr((dynar),0))
+ /** @brief Quick insertion of scalar content
+ * @hideinitializer */
+# define xbt_dynar_insert_at_as(dynar,idx,type,value) \
+ *(type*)xbt_dynar_insert_at_ptr(dynar,idx)=value
+ /** @brief Quick insertion of scalar content
+ * @hideinitializer */
+# define xbt_dynar_push_as(dynar,type,value) \
+ *(type*)xbt_dynar_push_ptr(dynar)=value
+ /** @brief Quick removal of scalar content
+ * @hideinitializer */
+# define xbt_dynar_pop_as(dynar,type) \
+ (*(type*)xbt_dynar_pop_ptr(dynar))
+
+/** @} */
+/** @defgroup XBT_dynar_cursor Cursors on dynar
+ * @ingroup XBT_dynar
+ *
+ * Cursors are used to iterate over the structure. Never add elements to the
+ * DynArr during the traversal. To remove elements, use the
+ * xbt_dynar_cursor_rm() function.