It's very interesting on paper (i.e. in a code review). It's full of good ideas. Such code is relatively easy to use and to review. But I'm a pragmatic developer. And in the debugger, that's a whole other story. If the meta_struct is composed of 2 iterators to a deque and 1 bool, and a function returns such an object, finding the value of the bool member in gdb is challenging.
@JohnDlugosz2 жыл бұрын
You know, the variable layout of the fields in a structure, as well as automatic AOS to SOA was a fundamental feature of the JOVIAL language. That was in 1958, making it, along with ALGOL itself, one of the first block-structured languages. This particular feature did not catch on and as far as I know was not part of any other major language on the ALGOL family tree.
@N....2 жыл бұрын
34:00 That is actually really cool, I guess since the caller does the matching it's as efficient at runtime as having three reference parameters right? EDIT: Actually I think this can be done with minimal compile overhead and regular structs if person_ref has a template constructor
@Ken-S2 жыл бұрын
This talk showed a need for dynamic declaration for a type. I think cpp have to consider support "compiler time struct / class" and a way to convert them to "type / template".
@petermuller6082 жыл бұрын
Great talk! However, the pointer highlighting is highly distracting due to low frame rate
@Solarbonite2 жыл бұрын
It'd be kinda nice to add operator[] for get. I think it should be doable and could make it look more standard? Eg person.id vs person["id"]? Kinda like how lua tables allow . indexing and array indexing.
@VivekNa2 жыл бұрын
The field name is a template param. So you can't get that array syntax
@kamlot02 жыл бұрын
I think it is impossible. For get to work you need to know the value of the string at compile time, therefore it has to be inside . person["id"] is equivalent to get("id", person). But it needs to be get(person).
@YariRu2 жыл бұрын
this is crazy
@ratgr2 жыл бұрын
He asked himself if he could do it never if he should, hahah, amazing metaprograming skill however I woudn't use it, because of compiletime
@budiardjo66109 ай бұрын
i'm cry
@saeed62962 жыл бұрын
I wish there is an explanation for this complicated and ugly syntax 😭
@dozerthecat2 жыл бұрын
C++ gets more academic every update. It's sad. We use c++ for the performance. Stop trying to draw analogies to json parsing. You are killing the language.
@TheIgoorR2 жыл бұрын
If you know C++ good, you can boost your code performance! This is true reason
@nickwilson34992 жыл бұрын
@@TheIgoorR All of c++'s features, yet it's still slower than plain C