1[CCode (has_target = false)] 2delegate string Foo (); 3 4string foo (void* data) { 5 return "foo"; 6} 7 8void bar (int first, ...) { 9 assert (first == 23); 10 var args = va_list (); 11 Foo** out_func = args.arg (); 12 *out_func = (Foo) foo; 13} 14 15void baz (int first, ...) { 16 assert (first == 42); 17 var args = va_list (); 18 Foo func = args.arg (); 19 assert (func () == "foo"); 20} 21 22void main () { 23 { 24 Foo func; 25 bar (23, out func); 26 assert (func () == "foo"); 27 } 28 { 29 baz (42, foo); 30 } 31} 32