| ... | ... | @@ -1947,8 +1947,24 @@ const Foo = extern enum { A, B, C }; |
| 1947 | 1947 | export fn entry(foo: Foo) void { } |
| 1948 | 1948 | {#code_end#} |
| 1949 | 1949 | {#header_close#} |
| 1950 | | <p>TODO packed enum</p> |
| 1951 | | {#see_also|@memberName|@memberCount|@tagName#} |
| 1950 | {#header_open|packed enum#} |
| 1951 | <p>By default, the size of enums is not guaranteed.</p> |
| 1952 | <p><code>packed enum</code> causes the size of the enum to be the same as the size of the integer tag type |
| 1953 | of the enum:</p> |
| 1954 | {#code_begin|test#} |
| 1955 | const std = @import("std"); |
| 1956 | |
| 1957 | test "packed enum" { |
| 1958 | const Number = packed enum(u8) { |
| 1959 | One, |
| 1960 | Two, |
| 1961 | Three, |
| 1962 | }; |
| 1963 | std.debug.assert(@sizeOf(Number) == @sizeOf(u8)); |
| 1964 | } |
| 1965 | {#code_end#} |
| 1966 | {#header_close#} |
| 1967 | {#see_also|@memberName|@memberCount|@tagName|@sizeOf#} |
| 1952 | 1968 | {#header_close#} |
| 1953 | 1969 | {#header_open|union#} |
| 1954 | 1970 | {#code_begin|test|union#} |