On Thursday, 17 November 2022 at 22:49:37 UTC, H. S. Teoh wrote:
Just create a nested anonymous struct, like this:
struct Atom {
F_Type kind;
union { // anonymous union
struct {
Atom* car; // ----------------- Left `Atom`
Pointer
Atom* cdr; // ----------------- Right `Atom`
Pointer
}
struct {
double num; // ----------------- Number value
string str; // ----------------- String value, D-string
underlies
}
bool bul; // ----------------- Boolean value
}
F_Error err = F_Error.NOVALUE; // Error code
}
T
Thank you, something similar to what you suggested reduced the
atom size from 72 bytes to 40.