8

Cgraph 用の Perl6 バインディングを作成しようとしていますが、構造体の 1 つに 8 未満の値を持つ一部の属性のビット フィールドが設定されています。モジュールでそれをどのように表現すればよいですか?

トレイトを使用してカスタム型を定義しようとしましたis nativesize(x)が、CStructs は 8 ビット幅の倍数の型しかサポートしません。

C のコード例:

struct Agtag_s {
    unsigned objtype:2;
}

私が試したこと:

my native objtype is repr('P6int') is Int is nativesize(2) is export { }
class Agtag is repr('CStruct') is export {
    has objtype $.object-type;
}

そのコードでモジュールを使用しようとすると、次のエラー メッセージが表示されて失敗します。 CStruct only supports native types that are a multiple of 8 bits wide (was passed: 2)

4

1 に答える 1