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.

Reply via email to