Source

Alt text:

A screenshot from the linked article titled “Reflection in C++26”, showing reflection as one of the bullet points listed in the “Core Language” section

  • BatmanAoD
    link
    fedilink
    arrow-up
    3
    ·
    2 months ago

    Ah. Rust’s macros and the C preprocessor’s exist in vastly different universes. The C preprocessor is literally just a fancy programmatic copy-and-paste tool. Rust macros read the input source code and then execute other source code (the macro definition) to generate new source code that the compiler then reads.

    I love Rust, but Rust macros are arguably more of a footgun than compile-time reflection would be, and as amazing as serde is (and no, there’s nothing comparable in standard-compliant C++ yet), there’s a strong argument that compile-time reflection would be a preferable technique for deriving serialization, argument-parsing, and similar feature.