Keynote: Reflection in C++26 - Welcome to the meta::[[verse]]! - Inbal Levi - ACCU 2024

Поділитися
Вставка
  • Опубліковано 6 вер 2024
  • ACCU Membership: tinyurl.com/yd...
    ---
    Keynote: Reflection in C++26 - Welcome to the meta::[[verse]]! - Inbal Levi - ACCU 2024
    ---
    With a proposal slated to introduce reflection to C++26 (including the “std::meta” namespace) getting strong support in WG21, we can already start imagining a whole new world of possibilities. In this session, we will dive into reflection and its transformative potential within our codebases.
    We will start with an introduction of utilities from the reflection proposal.
    Then, we delve deeper into practical applications and demonstrate solutions to problems that commonly use reflection and the power it holds.
    For the last part, we will explore the possibilities within “Reflection Libraries". This includes both “traditional” libraries which provide functionality, and more “novel” approaches which reshape users’ code. We will look at examples of what such libraries can cover, and demonstrate potential directions the future holds.
    Join us as we traverse the meta::[[verse]]
    Slides: accu.org/conf-...
    Sponsored By think-cell
    ---
    Inbal Levi
    ​Inbal Levi is a Lead Software Engineer at Millennium (MPGC Services Ltd) with an interest in code readability, compilers, language and software design. She is an active member of the ISO C++ Standards Committee as Library Evolution Work Group Chair, and as the ISO C++ Israeli NB Chair.
    Inbal is also a director at ISO C++ Foundation and the Boost Foundation and puts effort into evolving both the local and international C++ communities, as an organizer of the CoreC++ conference and meetup group, and as the program chair of C++Now.
    ---
    The ACCU Conference is the annual conference of the ACCU membership, but is open to any and all who wish to attend. The tagline for the ACCU is 'Professionalism in Programming', which captures the whole spectrum of programming languages, tools, techniques and processes involved in advancing our craft. While there remains a core of C and C++ - with many members participating in respective ISO standards bodies - the conference, like the organisation, embraces other language ecosystems and you should expect to see sessions on C#, D, F#, Go, Javascript, Haskell, Java, Kotlin, Lisp, Python, Ruby, Rust, Swift and more.The ACCU Conference is a conference by programmers for programmers about programming.
    Discounted rates for members.
    ACCU Membership: tinyurl.com/yd...
    2024 Program: accu.org/conf-...
    accu.org
    www.accuconfer...
    mastodon.socia...
    / accu-conference
    bsky.app/profi...
    / accuorg
    / accuconf
    ---
    UA-cam Videos Filmed, Edited & Optimised by Digital Medium: events.digital...
    #accuconf #programming #cplusplus #cppprogramming #software

КОМЕНТАРІ • 15

  • @RPG_Guy-fx8ns
    @RPG_Guy-fx8ns 4 дні тому

    You don't need generic reflection built into your language.
    just make a menu system that reads a scripting language to generate menu options,
    then make a transpiler to parse your source code into menu scripts and generate the dispatch code.
    You can use an arena allocator that keeps track of Menu URLs, registering the functions with unique IDs in a switch case of op codes.
    But the simplest solution is to just start using config files to puppet your code, and to generate menus.

  • @jaycarlson2579
    @jaycarlson2579 6 днів тому

    Maybe Reflection of function types and names would be ok if it was only a warning if the parameter names changed, and it did not break compilation.

  • @fdwr
    @fdwr Місяць тому +2

    Hmm, the syntax is the eye stinging, but the uses are intriguing.

  • @shavesha
    @shavesha Місяць тому +3

    Awesome title.

  • @mohre1541
    @mohre1541 Місяць тому

    How can i access your slides? There is nothing in the link you mentioned in the description.

    • @ACCUConf
      @ACCUConf  Місяць тому

      We shall follow this up with the person tasked with providing the slides.

  • @toddfulton2280
    @toddfulton2280 Місяць тому

    When disco from the 70's starts playing in your head...

  • @aniketbisht2823
    @aniketbisht2823 Місяць тому

    30:42 Does this reflect an individual function or the entire overload set? If it's the former then will it fails to compile because of the ambiguity? It would be cool if we could reflect an overload set and pass it around as meta::info objects.

  • @jaycarlson2579
    @jaycarlson2579 8 днів тому

    My opinion --- (Recommended) Do not allow reflection of function parameter names, types yes, names no!
    Or Store All the function uses with Types and Name and Location in a database, and use them as relevant. (Not Recommended)
    Reflection for Class Methods, and Members, yes should be ok.

  • @aniketbisht2823
    @aniketbisht2823 Місяць тому

    Some examples are not working.

  • @AhmedSLilah
    @AhmedSLilah Місяць тому +1

    as always in C++ good idea - worst syntax and implementation.
    why not Circle or better Jai like reflection and meta programming.

    • @VivekNa
      @VivekNa 21 день тому

      Programming languages are not chosen on a whim.
      There is a trillion lines of C++ code running as of today.
      I would say that significant whitespace is the worst possible idea for syntax, its subjective.
      As you write more code all syntax or lack thereof is an irritant and you let the IDE take care of it for you

    • @AhmedSLilah
      @AhmedSLilah 4 дні тому

      @@VivekNa
      Dude you're missing my point and you're wrong on multiple levels.
      1. My point is that the syntax and library functions for meta programming is very bad. And we have seen better proposals based on circle and jai but they got refused for the worst reasons ever.
      2. What the hell does having trillion lines of C++ code have to do with bad language design choices.
      3. Yes, significant white space syntax is bad but not my point in C++.
      4. When on God's earth have you seen any C++ tooling that actually good to handle anything.
      5. Do you think the syntax shown in the video is easy to use?