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
---
TH-cam Videos Filmed, Edited & Optimised by Digital Medium: events.digital...
#accuconf #programming #cplusplus #cppprogramming #software
Hmm, the syntax is the eye stinging, but the uses are intriguing.
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.
Awesome title.
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.
When disco from the 70's starts playing in your head...
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.
How can i access your slides? There is nothing in the link you mentioned in the description.
We shall follow this up with the person tasked with providing the slides.
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.
Some examples are not working.
as always in C++ good idea - worst syntax and implementation.
why not Circle or better Jai like reflection and meta programming.
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
@@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?