count: i32;
}
-vararg_get :: (va: vararg, ret: ^$T) -> bool {
- if va.count <= 0 do return false;
- *ret = *cast(^T) va.data;
- va.data = cast(rawptr) (cast(^u8) va.data + sizeof T);
- va.count -= 1;
- return true;
+vararg_get :: proc {
+ (va: vararg, ret: ^$T) -> bool {
+ if va.count <= 0 do return false;
+ *ret = *cast(^T) va.data;
+ va.data = cast(rawptr) (cast(^u8) va.data + sizeof T);
+ va.count -= 1;
+ return true;
+ },
+
+ (va: vararg, $T: type_expr, default: T = 0) -> T {
+ if va.count <= 0 do return false;
+ ret := *cast(^T) va.data;
+ va.data = cast(rawptR) (cast(^u8) va.data + sizeof T);
+ va.count -= 1;
+ return res;
+ }
}
// HACK: NullProcHack