XCode 26.6 日本語化計画
そのインスタンスがコード化され、C 言語の va_list の要素として適切に渡される型。
protocol CVarArg
Swift でインポートしたC関数を使用する (Using Imported C Functions in Swift)
このプロトコルを使用すると、C 言語の「可変引数」API に対してネイティブな Swift インターフェースを提供できます。たとえば、プログラムはここで定義されているような C 言語 API をインポートできます。
c_api 関数のラッパーを作成するには、CVarArg 引数を取る関数を作成し、withVaList(_:_:) 関数を使用してインポートした C 関数を呼び出します。
func swiftAPI(_ x: Int, arguments: CVarArg...) -> Int {
return withVaList(arguments) { c_api(x, $0) }
}
Swift は、引数に va_list を使用する C の可変引数関数のみをインポートします。可変引数に ... の構文を使用する C 関数はインポートされないため、CVarArg 引数を使用して呼び出すことはできません。
CVarArg 引数として optional のポインタを渡す必要がある場合は、Int(bitPattern:) イニシャライザーを使用して、optional のポインタを Int 値として解釈します。Int 値は、サポートされているすべてのプラットフォームでポインタと同じ C 可変引数呼び出し規約を持ちます。
Element が Copyable と Escapable に準拠している場合準拠します。
Pointee が Copyable と Escapable に準拠している場合準拠します。
Key が Copyable に準拠し, Key が Escapable に準拠し, Key が Hashable に準拠し, Value が Copyable に準拠し, Value が Escapable に準拠している場合準拠します。
Element が Copyable, Escapable, Hashable に準拠している場合準拠します。
Pointee が Escapable に準拠している場合準拠します。
Pointee が Escapable に準拠している場合準拠します。
与えられた引数配列から派生した C 言語の va_list 引数を使用して、与えられたクロージャを呼び出します。
struct CVaListPointer
与えられた引数配列から構築された、自動解放ストレージによって裏付けられた CVaListPointer を返します。