CVarArg

Instances of conforming types can be encoded, and appropriately passed, as elements of a C va_list.

This protocol is useful in presenting C "varargs" APIs natively in Swift. It only works for APIs that have a va_list variant, so for example, it isn't much use if all you have is:

~~~ c int c_api(int n, ...) ~~~

Given a version like this, though,

~~~ c int capi(int, valist arguments) ~~~

you can write:

  • func swiftAPI(_ x: Int, arguments: CVarArg...) -> Int {
  •   return withVaList(arguments) { c_api(x, $0) }
  • }
Inheritance View Protocol Hierarchy →
Import
  • import Swift