Word description Reads the next argument and advances the cursor. The declared type undergoes the same default argument promotions as an outgoing variadic FFI call: small integers, booleans, and enums with narrow underlying integer types become int, float becomes double, and Apple ARM64 small floating-point types become double. Outgoing values are converted to their declared source type before promotion, including integer narrowing and binary32 rounding. Incoming values use the promoted type's ordinary boxer, so a promoted boolean or narrow enum is returned as an integer. Aggregates and vectors retain their types. Aggregate values own their storage and can outlive the callback.
Warning The calling C API must establish the argument types and count, for example through a count, a format string, or a sentinel. The cursor cannot detect a wrong type or the end of the argument list. Reading with the wrong type or past the end has the same invalid-memory consequences as C's va_arg.
Errors Throws expired-va-list if the cursor's callback has ended or another callback or Factor thread tries to use it.