CppCast - From Self Taught to Committee Member's First Accepted Paper

Episode Date: August 10, 2026

Jason and Mathieu are joined by the self-taught Alex (Waffl3x) to discuss the C++ standards committee, defaulted post-fix operators, and self-taught computer engineering. Alex shares his experience of... joining the C++ Committee and his efforts to get more people involved. News Mateusz needs help with his logarithmic unit design EuroLLVM 2026 security related talks A set of papers related to safety in the July mailing Brno mailing (2026-07) Links Deducing this Clarify the behavior of floating-point overflow

Transcript
Discussion (0)
Starting point is 00:00:00 Hello and welcome to the 410th episode of CBPCast, the first podcast for C++ developers by C++ developers. I am the host, Jason Turner. The fourth episode of C++ Weekly is a crossover episode of CVPCast still, although I have a bit of a mind to change that and kind of make sure that CBPCast has spun off as it's something again, but that's a topic for a different day. You can choose to watch this podcast on YouTube or listen to it on your favorite service,
Starting point is 00:00:24 and hopefully we are actually coordinating the release of these episodes on all of the things right now. I am joined by my co-host, Matuio Ropair. How are you doing my suit? I'm having a very interesting day. There is some reorganization going up at my work. So check your LinkedIn when this episode come out and you will know more than I do today about how it ends up. And I will live it at that for now. But that will explain my maybe interesting vibes tonight. But I'm still happy to hear from you guys and get a distraction. Well, hopefully it is a helpful distraction for you.
Starting point is 00:00:58 We are today joined by Alex, who also goes by Wofflix. I believe I pronounced that correctly. Yes, that was correct. Alex is a... Don't get it right? Yeah. Well, I did ask before I started recording, just for the listeners' sake, here I am cheating.
Starting point is 00:01:18 Alex is a self-taught computer engineer from Canada who has been interested in computer science for most of his life, starting with his family's Windows 3.1 PC. It was long before he developed. a deep curiosity for how they work, starting from the Wikipedia page on Logicades, eventually coming across C++ and finally feeling at home with a language that doesn't try to hide complexity away.
Starting point is 00:01:37 He ignored everyone who told him to not worry about advanced topics or details of the standard and dove straight into metaprogramming. After a decade of hobby work and serious study, he has now contributed to GCC starting as the implementer, well, for deducing this and employed by Bay Libra, working on adding open MP features to GCC as well as participating, in the Open MPARB. He is also a member of WG-21, co-author of few proposals.
Starting point is 00:02:04 His interest include various aspects of language design, such as verifiability, static analysis, and optimization, writing maintainable, simple, and easy to understand code is important to him, but they focus on APIs that are hard or ideally impossible to use wrong and provide good diagnostics when they are. Outside of programming, he enjoys video games, especially competitive and watching streams. How are you doing, Alex?
Starting point is 00:02:27 I'm doing great. I'm glad to be here. I'm a little nervous. Yeah, don't worry about it. Don't worry about it. It's just a conversation. Yeah, I admit, I have done a little more this time and I had not met the bio. I mean, I have met Alex at ACCU.
Starting point is 00:02:44 That's how I got suggested to bring him here. But I heard the, oh, I wanted to learn about how computers work, and I just went on Wikipedia. And I just like, you can do that? I'm having this parallel between my own experience I'm assuming Jason's similar experience in the day and then the guest we had last week
Starting point is 00:03:03 last week last month who told us that back in the day if you wanted to compile you had to mail a company so we could send you like a floppy disk with a compiler on it like the interesting like spectrum of how people get into programming I think just makes for content in itself
Starting point is 00:03:19 I would fully agree yeah I I learned most of what I knew about computer hardware by just buying like computer shopper magazine back in the day, which, Alex, I'm guessing you're not familiar with this magazine, but it was literally the size of a phone book, and many of our listeners don't even know what that means. Okay, I do know that one. I'm not that young. I've seen those. I think I know we're talking about the magazine as well. I think I've seen pictures of it before, but I've never had one.
Starting point is 00:03:55 I can't believe they would publish something this thick every month. It was, Phil, I'm holding my fingers up here. I think back in the day nearly two inches thick. That's insane. Like five centimeters thick. And then over the years, it got slightly smaller until they discontinued it. Catalogs are such an interesting product of their time. I remember the Connects catalog came with like the Connects kits I got when I was a kid.
Starting point is 00:04:21 And that was always crazy. Man, I used to love catalogs. Seriously, I would pick up anyone and just read it. Yeah, I kind of miss them. I'm glad that I am young enough, or old enough rather, I guess. Yeah, old enough that I got to see them for a short time. It was, oh, well, anyhow, it was great during Christmas season when those things would come out. And then you had just, did you have the same experience growing up in France, Matthew?
Starting point is 00:04:50 The catalogs? What catalogs? What catalogs? What catalogs? Mail order catalogs or? Yeah. I mean, in the States, it would have been like Sears, JCPenney, the big department store chains would issue these giant. Yeah, yeah. We had those when I was a kid.
Starting point is 00:05:09 We had a few companies in France that did that. Yeah, yeah, I remember I was a kid. I would look at like the toys and everything around like that. Yeah. Yeah. Anyhow. Maybe we switched into computers at some point that I don't remember. that I don't remember. But yeah, going back to the topic, I think it's interesting that like
Starting point is 00:05:23 nowadays if you're curious with computers, hopefully you can. Like now from a young age, you know, parental control on a side, you can just go on the internet and fight just about any resources you want. Yeah. Yeah. You can even tell on your phone. Yeah, does that mean, Alex, that by the time you reach like a school, like you had, you had been reading more than what that they usually teach you in like CS 101 or whatever. Did you actually do a Unicourse or not? No, I haven't done a Unicourse. And it was weird because I went like on and off.
Starting point is 00:05:59 Like I didn't really heavily get into programming until my later years and my late teens. Like I did some Python on and off. But a lot of my focus in my teen years was in video games, playing them. Right. But in the third grade, I found the logic gays. page and I was just dove into them and I guess as far as Billy and logic goes I probably knew
Starting point is 00:06:25 had learned more than or rather not more but like the entry little stuff that they would teach for a computer science course I imagine I actually did my public speech in third grade on logic gates and that was a terrible idea try to explain that to a bunch of third graders as a third grader was very interesting everyone was very confused. That's perfect. Very confident speaker experience, yes. It's fine. You're confusing your peers. It sounds like fun. It was. Yeah, it was it was it was very interesting. I think people enjoyed it, but it was very long and kind of dry. So they just had no idea what to think, especially at that age. That's great. I love that. That's I'm glad I did. I am sure. Absolutely. It makes her a good story.
Starting point is 00:07:16 That's, it is amazing, though, that you could just go to Wikipedia. It does make me feel old, honestly. I, yeah, I mean, we're probably going to maybe bring that back eventually when we go for a question. But I think it is a different, interesting perspective to hear, like, different generations and how they get into programming. I think it makes for a very interesting and refreshing story that keeps evolving. You know, I still reserve my opinion when we start a new generation. We're just like, oh, I ask CHAPT how that works. Like, is it going to be?
Starting point is 00:07:46 going off a cliff after that i i don't know yet it's a time will tell it's really sketchy in my opinion because you have to know like kind of a baseline amount of stuff to know when it's lying to you at least right now absolutely i um yeah yeah i've been preparing material on that oh you too because i i've been cooking an article in my head because i i've been using a bit more AI kind of like at my new job for my current job for the past couple of months. And, you know, at first, first I didn't want to do it at all. Now I've done it a bit. I'm starting to get somewhere where I want to, I'm starting to feel like I could maybe
Starting point is 00:08:24 not feel completely crazy. Arguably, you could say it's very unpoint to write about what you don't know when you talk about AI. But I'm starting to get a perspective that I think is interesting and maybe a bit more nuanced that my original, although I'm still not going to go like, yeah, you should use AI to code, all the stuff. but I think it's going to be interesting. Before I dive too much or I diverge too much from the topic,
Starting point is 00:08:46 maybe we want to be looking at the news because I know that's prepared some stuff for us. Let's do that. Let's just say high level. One of us can read the news and the others can comment if you'd like. Matu, do you want to? Do you want me to go with us? Sure, I can read them. So we have a new announcement slash request for help.
Starting point is 00:09:12 Matthews Push, a friend of the show, I think we had in the fourth. I mean, I didn't, but you probably, I'm pretty sure he has been on at least once, yeah. Yeah, yeah, which is the rule you can only be there once. That's a new rule. I made it. It's a new rule? Oh, okay. All right.
Starting point is 00:09:26 I just nodded when you say it the first time. Either way, Mathieu, which is, I think, mostly famous, at least in my head for like the Unisly Slive. and all the works he does with the Units Library. He seems to be needing some help because he's trying to work with logarithmic units and that apparently is bringing an interesting amount of questions. So if you are into that stuff, if you're a member of the scientific community,
Starting point is 00:09:52 if you have strong opinion about semantics, which I assume is something to do so you might have, feel free to reach out. We have the link in the description. I haven't had the time to read the article, I admit. Well, it's, yeah, it sounds like he, if I read it correctly, it sounds like it might be novel territory. Like, how do you strongly represent logarithmic scales at compile time? And so they're just trying to make sure that they're doing something that makes sense.
Starting point is 00:10:17 I think a lot of that is new territory, or at least it was about five years ago, five, ten years ago. And C++ has really pushed the needle forward for that. Yeah. Which one of the big things I really like with language. Every time I feel like there's something new happening, I then learned that, PL did it 50 years ago. We all just forgot. Yeah, I could buy that.
Starting point is 00:10:38 Yeah. Maybe I need an AI that is just Kevin Henney, so I can just ask him, like, hey, Kevin, is there like a 1976 book about this? Oh, that's the Newer talks. But yeah, no, I think it's interesting. I'm a big believer in strong types. I'm not as much of a believer in a strong types rapper, because I think it's just, annoying. I just wish there was native
Starting point is 00:11:05 support to just say, hey, this type, make it behave like int, but make it different from int. That's all I want from you. But I don't know if anyone has a proposal in flight for this. I would love it. I would use it in every game I use all the time. But until that happens,
Starting point is 00:11:20 the minute I have to think about either writing or including a strong type library, it's become it becomes an uphill battle. I believe that it has been posed at least three different times and shot down every time for a strong type death. Is this something you're familiar with Alex?
Starting point is 00:11:38 Yes, I actually worked on it a little bit with someone who was proposing that. He did a lightning talk at SuperPCon and I contributed a lot to that. I don't have time to keep working on it, but one of the things that made kind of drop it is there's issues with strong type defts on or strong aliases on, non class types because what happens to this pointer, right? So the moment you push it into a member function, like at what point do we allow that implicit conversion? Because you kind of have to, right? So at the language level, you have to say it is implicitly convertible to the underlying type in the case of a member function being called or something along those lines.
Starting point is 00:12:25 But that's a bit of a carve out. I'm not satisfied with it. So I wouldn't, I don't like carve out. So I think carve-outs are they add a lot of complexity and they're kind of tantamount to giving up. It's like, oh, we haven't found a better way of doing this sort of thing, right? And maybe there is a better way and we just don't know. With that one, it might just be better to allow it to be implicitly convertible in general. Because for strong types, going from the strong type to the weaker type isn't as much the problem. That's not as relevant.
Starting point is 00:12:59 it's the underlying type going to the strong type that is the bigger use case. I would not be satisfied if it was still implicitly convertible to the underlying type personally. I flip-flop on it a lot. That's one of the reasons why I'm not working on it because I can't make up my mind. And reflection is going to allow us to make strong types anyway. So as long as it's like we can probably optimize it. Like it's a bit tough, but it's well, I mean it's a lot of types. So it's going to be heavy memory use.
Starting point is 00:13:30 That was like the big motivation for me on that paper was that with strong aliases, you can optimize it much more because you don't have to create like a whole new struck type for that strong type. It's just a little flag on it. Like, oh, no, it's this. It's a strong type of this type and the underlying type. We actually have machinery in GCC that kind of already supports the notion of this, more or less. I don't understand it totally well, but I've looked at it and it's pretty clear that's what is trying to accomplish.
Starting point is 00:14:04 I think I'm not entirely, well, one of the things is for qualification. Like you have the unqualified type and the qualified types points out unqualified type. I don't want to get too much in the weeds. Compiler code base 40 years. I think the fact that it comes back and forth means that there is a problem. I mean, we could try to solve the root issue, which. which is using like a third-party library that use templates to wrap an end, probably acceptable if you only care about compiling in release
Starting point is 00:14:38 and you have a package manager, or if you can drop a header on your project, that part. I think the build part is acceptable. Oh my God, look at the code gen in debug, not as much. Right. But you're, I want to, if you don't mind, revisit. You said that with reflection, we'll be able to get it. I want to make sure I understand. With C++-26 reflection, we can't do that yet, right?
Starting point is 00:15:05 Because I want to know what exactly you're suggesting. Like I'm imagining walking over all of the members and just duplicating them into the new thing. But I'm not sure if that's what you were implying. That one we can't do. I'd like my proposal for reflection is going to target that. But it's kind of tough. There's a lot of stuff to work out on it. still working on it. But also, it might be more possible than we think, especially if it's a
Starting point is 00:15:31 single member, right? Like, if it's just an ins, that's no problem, I'm sure. But there was a new blog post. I haven't had a chance to read yet that my friend sent me that's, I'm trying to remember, because I only skimmed it, but it's demonstrated some things in reflection in 26 that some people didn't believe was possible yet. So, I mean, look at what we do with templates, right? Oh yeah, I know. I'm assuming that it would be a decade before we know. Yeah. It's going to be quite interesting seeing people actually use it and go, and I'm sure there's going to be tons of annoying edge cases because they're already having. Oh, yeah.
Starting point is 00:16:09 Especially with ODR. Yeah. Yeah. That's the one definition rule for our listeners just so you know that's something to go look up later. Yes. Or maybe don't. When you get into sports and you have to learn this weird like, like, like, like RIAI and Svinae and, and what's my favorite?
Starting point is 00:16:29 Oh, what is it? Something, something in, oh, I've got. I forgot my favorite. The one that ends in no diagnostic requite. Oh, I, FNDR. I love that one so much. Why does it even exist? Anyway, next item, the lifts.
Starting point is 00:16:49 Something about ULVM. Yes. Uralvium happened. I think, I don't know exactly what he was, but it was sometimes this year. I wasn't there. But there was some talks about Super Security there, and they have all been put on YouTube for your consumption. I admit I am a bit far away from the safety scene. But if you guys want to...
Starting point is 00:17:13 You're a game developer. You don't care about that kind of thing. Exactly. It's an argument. I keep having my girlfriend, Wux, in Finis. Like, what do you mean? You don't care about safety. but the survival.
Starting point is 00:17:24 Can I need crashes? There is to some degree we care, to some degree we care, but it's really like, it's not the same argument to make that you make with a guy who is like trading your money, which is something like that. Although I do know a game developer who does care about crashing really bad and we didn't even get into it. Our last guest who does pinball development, he says, if someone puts a quarter into your pinball machine and the game crashes and they lose their quarter, they are very annoyed.
Starting point is 00:17:51 He's told me this privately. So you make sure that game keeps going no matter what. To be fair, I've been working with mobile clients lately for my consulting gig. And there is like your app actually gets like, it's waiting on the store like and boosted or mostly. I don't think you get a boost, but you can get demoted on your match results, search results if you have a too high crash ratio. And that spells death to you when you're trying to make a mobile app. Because when someone types the name of your app or a type of app in general, if you're not in the top 10 results, you don't even exist, right?
Starting point is 00:18:33 Nobody squalls. So, yeah, you want to make sure you don't go too low. You want to keep these rates high enough that Apple and Google will throw you into the backburn of listing of apps. I don't think that's as true for other stores. Like, Steam, as far as I know, does not. not care at all. Your game can crash. Your game can mostly crash.
Starting point is 00:18:55 They will still list you. I'm pretty sure consoles care a lot. Or at least they care to some degree. Yeah, I believe consoles care. Yeah. And the Windows Store, I think the Windows Store actually has also better checks than Steam is just the one that has the least checks on quality of your app from my experience. I haven't tried to publish on Epic on God. I don't know how good of that they are.
Starting point is 00:19:18 Yeah, Steam is quite lax in that regard. you have to get public outcry before they're pulled the game. There's even been malware recently in some Steam games. Or I should say, seem game singular because I only know of one case specifically. So you mentioned before we started recording that you had had an interest in game development. And since we've already diverted a little bit to this topic, are you doing game development right now? Or is that still just an interest? That's mostly just an interest.
Starting point is 00:19:47 I never went that far into game dev. I guess I've touched on it. I mean, the first big project I did was Tetris, right? Like, as it should be. And I did work on making a Vulcan library for a while that I never finished. But, yeah, I'm certainly interested in game dev. It just never got that deep into it. I was more a player of games, mostly.
Starting point is 00:20:11 The big reason why I didn't go into the game dev industry is I saw how overworked game developers are. and how underappreciated and underpaid. Yeah, yeah. I can say that for said listeners, like, unless you're in a country with like a strong work, work health, like, work in family, like in general life, balance culture, do not do not go in the stream.
Starting point is 00:20:34 Is that why you moved from France to Sweden then? Not entirely. I, to be fair, I thought that, surprisingly, France is not amazing at that either. Oh, I actually thought France. France was pretty good at it. I was just giving it. No, no.
Starting point is 00:20:50 The reason I didn't go into games after my uni, despite being interested in the topic, was that every graduate went to me and said, do not go there. Do not go there. It's terrible. But Sweden is probably one of the strongest country when it comes to work-life balance. I think the scandinies in general are pretty strong about that. So that will avoid the worst by far. France is okay because you will be shelved by,
Starting point is 00:21:20 protected by some issue, but it's still compared to other industries in France, it's clearly still like you can see the difference. Oh, wow. And then there's the US and then you're like, oh. Yeah, there's no, well, I mean, it's not fair to say there's no protection. The problem is if you get classified as an exempt employee, which means you're exempt from overtime rules,
Starting point is 00:21:45 then that's the problem where you get like death march, you know, to the deadlines kind of thing. And they know they can, you know, not require you to be in the office for 100 hours, but if you aren't, then you might be the next one to be let go.
Starting point is 00:22:01 Yeah, you can always work around. Yeah, that's always the issue. But yeah, no, I can see, are you in the U.S.?
Starting point is 00:22:07 or are you in Canada next? I'm in Canada, but I work as a contractor, so I've experienced a little of this. Uh, no, no, no. Yeah. Yeah, and I've heard some ex-friends and colleagues who work in Canada and said that it's better than the US, but it's still, you might get an email telling you that you have to be gone very soon.
Starting point is 00:22:24 Yeah, Canada isn't as, I do get a little annoyed sometimes seeing people who don't live in Canada, speak on Canada because it's really not, it's quite similar to the US in many different ways. And I feel like Canadians are often dishonest about how good it is. someone who's been at all levels of the system like it was i've been homeless at one point in ottawa so i know what that's like too um you've been homeless you said yes wow oh shit ah rough childhood yeah i left to make sure i heard you correctly oh yeah yes it's much better now um that was uh more than 10 years ago now so that's good oh god that was 12 years ago i don't like feeling like i'm getting old
Starting point is 00:23:09 I like being the youngest in every group. It's worked out so far, actually. In games, like playing games, I was always the youngest, and now on the C++ committee, I'm still the youngest. Yeah, I was going to say on the C++ committee, you're unlikely to be the oldest or even on the median for probably a while. Actually, I'm curious because I'm not on the committee. I don't know, like, how does it regenerate it,
Starting point is 00:23:35 which is why it's going to be interesting to talk about. maybe I can take one of those questions in advance, because we have a question about that, because you are involved with the standards committee. And I am actually curious to say, like, what gets new generations to get into the standards committee? I've been hearing my life that C++ is a dead language for all people. So it's nice to see that it's maybe not entirely the case. But I'm also curious to see, like, is it just you?
Starting point is 00:24:01 Do you feel like there is still an influx of, like, new blood and whatnot? I personally push for it myself. Like I have my small Sepils West community and I encourage people to actually get into it and encourage people to come to the committee and see what's going on with that
Starting point is 00:24:18 because on the committee I really feel at home in the committee which I haven't felt in many places in my life so I think it's a great place like obviously like not everyone's great like I make the mistake of saying everyone's really nice sometimes then someone has to correct me no not everyone. They're like okay fine not everyone
Starting point is 00:24:35 because it's a very big committee, especially as far as committees go, like on ISO, we're one of the biggest, if not the biggest, from what I've heard. But yeah, influx from new people, I think it's, yeah, there's certainly not a lot of it. I just kind of got into it because my friend who's on the committee just kind of prodded me for about two years. Like, hey, you should join the committee. You should join the committee. You should join the committee. When I finally got a job, finally, I was like, okay, yeah, I guess I'll join now. because I can actually attend. I'm not broke now. So you said you're contractors.
Starting point is 00:25:11 I mean your company is not spending, is not, are you sponsoring yourself to the committee meetings? That's what I'm trying to ask. It depends. Going forward, they've changed policy and contractors aren't sponsored unless they're speaking. That's the policy now. So definitely not anymore.
Starting point is 00:25:28 But they did sponsor at least one. They sponsored one. and the last one in why am I blank in Bernou? They also did because it was like a week after the company gathering so it was like okay well
Starting point is 00:25:48 I wasn't going to go because I had gone to like two of them but then it was right after the company gathering I was in Europe anyway so I went okay so it just worked out timing wise but yeah going forward no they're not going to I think if it made more sense for them business-wise, I think they would.
Starting point is 00:26:07 But it's also just kind of like a hobby for me. So for the most for like the Hawaii one, I footed the bill because like it's Hawaii. It sounds. It's hard to really sell that. So you basically, you joined to the committee because your friend badgered you too. Yes, pretty much. To be fair, he also got me working on the paper with him, which was an awesome experience. and eventually, like, for the last revision, I did like all the wording on it.
Starting point is 00:26:35 He gave input, but like most of the wording was for me. Well, I should clarify because pretty much just from what I understand all the wording is a very collaborative effort, right? Because like Brian Bai and Hubert Tong gave a lot of feedback. And Yens, of course, gave a lot of feedback. So everyone who gave feedback is a part of that process. But I was one who wrote the wording and made decisions for that. incorporating that feedback.
Starting point is 00:27:02 Everything else I'm hopeless that. I'm so glad to have him as a co-author because he's very good at really selling a feature, selling the justifications for it and all that and a very good sense of taste for what we should do because I didn't agree with everything that we did on the paper, but he convinced me like, oh, no, it has to match up with the other defaults, right? So which paper was this?
Starting point is 00:27:28 the defaulting post-fix increment increment which has been merged into 29 is that correct i was surprised to see it because you told me about it and then i was coincidentally a talk that i'm working on overlapped with this and i'm like wait a minute this is already been the standard i didn't think it had been merged yet okay yeah we for me is really fast because i've only attended three meetings. I started in Hawaii, but Matthew's been working on that for much longer than I have. I think at least a year before I joined forces with him. It felt very funny for sure, because I've only been on the committee for about a year, just over a year now. And I already have a feature in the standard. It's just very cool. I do a lot to Matthew for that, though. Maybe I have a habit of
Starting point is 00:28:20 selling myself too short, but I think that he did a great work on it. So I don't, I don't want to to pretend like it was all me or anything. I still think it's a very inspiring story in the sense that you can, you know, you can join up on the committee even as one of the, you know, younger member of the, of the, of the of the community and still like get a chance to contribute pretty easily. I am told that a lot of people who write papers are actually quite overworked and usually very much welcome getting help on either some final details and whatnot on a paper. because I have never done a paper.
Starting point is 00:28:56 I have rambled about stuff a bunch, but that's a different thing from making a paper. Actually, it's interesting you bring that up because you've reminded me. That's kind of how I get people to join on the committee as I keep encouraging them to write papers. And if they actually do, I tell them, if you write it, I will champion it for you. There's one right now that my friends wrote.
Starting point is 00:29:20 he was annoyed at the unbalanced for initialization of default arguments on functions. You can't do curly brace syntax on it, right? Like arguments, curly brace, sorry, parameter curly base. It has to be the equals syntax. But you can still do equals braces, right? Yes. You want without the equals. Right.
Starting point is 00:29:44 Honestly, personally, I don't really care. But if he cares about all championing it for him, So he doesn't have to like spend a lot money to come join a meeting and have someone fight for his paper like hey look he cares about this. It's technically sound. Here's the arguments etc. I haven't done it yet. So I hope I can do that justice. But that's um it is something that I'm willing to do for people because if they put the work in like it deserves to be hurt on the committee. I think I would be in favor of that on the surface of it because it's an inconsistency that comes up every now and then if I'm teaching students and I'm just like typing some code
Starting point is 00:30:22 real quick and I'm like, oh, whatever. Then I put the brace, oh, right, that doesn't compile. Okay. You can't. And it's, yeah, every now and then it just catches you for what doesn't appear to be any good particular reason. Yeah. Yeah.
Starting point is 00:30:39 I'm just afraid of syntax changes these days as a compiler developer. You have to make the implementation and, and, you have to make the implementation. and whatnot, yeah. I was going to say, I think what personally, what always, and I will extend that, turn that into a question, what has always kind of like pushed me back is like, yeah, but how long will it take for me
Starting point is 00:31:00 to be actually seeing the feature? But I think it's a problem that happens on every product I ever worked on. And the longer, the release date, I've noticed the hardest. Like when I worked on a game and I could see that if I decided that something annoyed me,
Starting point is 00:31:13 especially when it was technically, it was easier because I could kind of like make it happen, like, you know, But you know what I mean? Like, we're working on a game. You make a release every couple months at best, at worst. Like something annoys you in the game as a user of the software, in that sense.
Starting point is 00:31:28 You just, you make a fix you push it in the next video since they're there. Then there's some software, you know, you have to make a chance. It needs to go through like a lot of QA validation. It takes a year or two to get there. C++S is like, okay, you need to put it in the standard. It's going to be in the next version. So up to three years, depending on how lucky you are. and then you need to upgrade whatever tool chain you're using to actually get to the standard.
Starting point is 00:31:50 And I know, like, Jason, you don't have that issue because you can almost always do like a DCD preview or something. I mean, that's because I don't do real work anymore. But yeah, many companies are like, like, I'm working on 17 at the office and I can ask for 20 on some modules. I'm lucky to actually don't have to work on the engine itself. Because I think sometimes I would probably do something and get annoyed by the fact that it's 17, come on. It's nine years old. I'm on 14 for GCC. Oh, GCC itself has to compile on 14?
Starting point is 00:32:29 Has to compile with a version of GCC that's, I think it's five years old. So there's other caveats too. Oh, so it's a bootstrapping problem, really? Yep. Right. I will say, you know, from the respect of a trainer. And, you know, I will have a classroom of students all 20 people who are the same company, right? But maybe there's three or four different teams represented.
Starting point is 00:32:53 And so I often will have to be like, okay, since you can go up to 17, this is where the feature you can use. Since you can go up to 20, this is how we can do it better. Since you can go up to 23, this is how we can do it better again. And I'm like basically always giving lessons on language or theology, basically. And then you go ahead, disguise on the over. Oh, three, look how sad he looks and how painful it is to do anything. Oh, my goodness. Oh, three doesn't even C++ to me.
Starting point is 00:33:22 No, it wouldn't be to you. No, I'm sure. Yeah. Move semantics are so important. Can you tell us what your, the feature that you just got merged? Why don't you go ahead and tell our audience what it is? Okay, so it is a, basically if you have a prefix increment on your type, you have to write the same thing for the post fix every single time.
Starting point is 00:33:45 It looks the same every single time. You copy it. You increment the original and you return the copy every single time. Maybe sometimes you're doing something weird, but 99% of the time is that. So if you're doing that, you can just write equals default and it will give you that body that you would write anyway. And the extra benefit of this is not just getting rid of boilerplate. It's also that now when you're doing the normal thing, it says equals default. instead of this code block that you have to look like,
Starting point is 00:34:15 oh, did they return the, that they increment the copy by accident? Did they return the original by accent? Did they do it correctly? Did they, like, were they half awake when they wrote this? Is this where the bug is? But no, if it says equals default, no, that's, it's correct. The bug is not here because it says default.
Starting point is 00:34:37 It's default semantics. That's what our goal of the proposal was, and I think we achieved that pretty well. Nice. It's a very small one, but it's really nice. It also takes pages out of the standard. That's good. I was going to say, did you find any use case for a custom version that would not be the default?
Starting point is 00:34:57 Because I can't even think of, I mean, assuming you found one because else you might even have shown the wall again, say, just stop doing it. We're just duplicating that now. So there are a standard. And the standard? Yes. Oh, weird. weird things like that weird um iterators um i can't think of them i should be able to because i went over that the library wording paper of a fine two of well this is probably why is because it was
Starting point is 00:35:26 in the evening of like wednesday or thursday that we did the final revision of the library paper and it just like took two or three hours because it's just like it's it's busy work right We're going through fixing the syntax, not the syntax, but the formatting. Right. And just going over it and your brain starts to melt. But there are some that have some, well, they're reasonable semantics, but they're not default, right? Right. But I think that really highlights why the proposal is so cool is because now those standout really high.
Starting point is 00:36:07 Oh, so you're able to remove all the ones that were explicitly specified except for the ones that are weird and different. Yeah. The ones that aren't weird or specified as equals default in the center now. But I do have to equal default to get it. It's not going to ever implicitly be done for me. Yes. That was part of the design is because, well, you might not actually want it.
Starting point is 00:36:27 Maybe as a best practices choice, you might go, yeah, I'm not doing post-6 increment. Right. It's weird that I worked on this paper because I don't actually think post-six increment is a very good idea to use. I made a point of doing. get out of my language, so. Yeah. It doesn't optimize too often, which is weird. You would think it would, but it just doesn't sometimes.
Starting point is 00:36:52 I don't know. I don't know if that's like a GC bug or if it's like, I mean, obviously it is because it can optimize it. But there are definitely cases that I've seen where if it's a non-trivial iterator and you put it like, like, you know, I++ in the, in a four loop, just sometimes it doesn't work and you would think it does. But even for trivial cases, sometimes it doesn't. Look, if you find one of those exact cases, please send it to me because I really want
Starting point is 00:37:22 this for a C++ Weekly episode. I have actually spent a fair bit of time of my own personal life trying to find this example for C++ Weekly, and I have not been able to. If you have one... I bet algorithms are where you'd find it, because it's with algorithms where you copy to an out iterator, and they do the... plus de-reference equals results. Yeah.
Starting point is 00:37:45 I think I've seen it have regressions in performance. Well, it's regression in co-gen there. I shouldn't say in performance because it's not actually necessarily a performance problem. It's just clearly the code gen is worse. Yeah, I was able to demonstrate worse code gen with like a map iterator or something. I forget what it was. But I still was never able to measure a problem and I just, I really wanted to measure it to measure. Sure.
Starting point is 00:38:11 Yeah. Maybe some weird ranges. Maybe. Yeah. Maybe. If you have some crazy range that does a lot of funky stuff, and then the cost of doing the thing might be... Well, the views are supposed to be very trivial.
Starting point is 00:38:25 Oh, no, because the problem is the cost of copying, right? It's not the cost of... The cost of copying the iterator specifically is where the problem would come in, right? Yeah. I guess that's why it's hard to measure. It really, realistically, should be an on-issue. almost all the time. Yeah.
Starting point is 00:38:44 Is there at least a theoretical world in the equals default case that you as the compiler implementer can say, hey, wait a minute, I know what's going to happen here, and then you can do your own people optimization or something or another? I don't know. Well, if you write equals default, you should be writing it on the declaration. If you write it on the definition, you'll make me sad. You can do it. We allow it, but you'll make me sad because it's like it's a free line function.
Starting point is 00:39:08 Yes. Especially even out of line, like please stop doing it. that. It's a very short function. Just put it, it's in your style guide. Okay, change your style guide. Um, but it's still very funny that I worked on that because it's very cool. It removes boilerplate. If you're writing a generic class, you're still going to put it in there, like even if you think that you're not supposed to use it. And I write a lot of those. That's kind of where I cut my teeth on C++ plus and no one ever used my library utilities. But that's kind of where I got a long practice was writing library utilities. And imagine, how people would use them right and trying to account for the judge cases i maybe should have
Starting point is 00:39:47 released something at some point i'm thinking of doing that on on twitter just posting my snippets from my personal utilities library just slowly and may as well yeah yeah maybe like doing stuff on github doesn't get you people randomly or i mean or at least i haven't found how to but to be fair i don't know if anyone would use anything i have on my github but that's a different question i'm also using code rig these days. Well, I don't have anything on it yet, but I decided with the whole AI thing, I'm not going to use GitHub anymore
Starting point is 00:40:19 because if you're going to use my code to train something, you should be paying me. Yeah. Yeah. Or at least asking for permission, right? Oh, no, I'm not going to disagree with you here. It's just the fact that you can type in, write this code in the style of Jason Turner,
Starting point is 00:40:38 and it works. Yeah, which is kind of incredible, but also, ugh. Yeah. I don't get money for that. You don't get credit for that either other than the fact that they're putting Jason Turner in.
Starting point is 00:40:51 You could write this code and best practices and it would still probably converge into something that you would write. And then you don't get credit for it. Yeah. Which is ridiculous because, like, I don't know, I'm not one to really whine for credit, right? But, like,
Starting point is 00:41:09 attribution is important to me for sure. People don't necessarily have to get money for it, but they should, if you did it, it should be attributed to you. I just, I don't want people to lie, right? Like, almost everything that I've put out there, basically, I mean, for me personally, probably over 75% of the stuff that I've ever produced and created is available publicly, public domain or a freely available license. And I just don't want someone to be like, hey, I invented this thing. I already gave you permission to use it. Don't lie and say you invented it, right?
Starting point is 00:41:46 This feels like another branch of effort fraud to me. Yeah. I kind of wonder now if someone has tried to do like a GPL or BSD version or MIT license, but have an extra like AI close. So if someone has done something like that, they probably have to write the clause. I haven't heard like it getting any traction at least, but that would be an interesting thing to say like, oh, yeah. I would probably reference to write that clause now.
Starting point is 00:42:09 What? I don't. Because it doesn't benefit, right? Yeah. Okay. Back to your prefix increment. Defaulting post-fix. Post-fix increment operator.
Starting point is 00:42:28 Okay, I have to ask you a question because I swear if I read the paper correctly, if I read the changes correctly, you can volatile. Yes. And that is literally the only part of the standard that will let you default something that is volatile, first of all. And second of all, virtually nothing in the standard works with volatile. Like there's no volatile accessor for Tupol, for example. So I'm just curious. We noticed it late in our design, and we did not want to go back to EWG, because it's a kind of bureaucratic, right? There is an element of this. If you go back to
Starting point is 00:43:12 UWG, then maybe there's a chance to look at it again and go, actually, we don't want this. I was like, should have said anything. No, that's fine. It's in now. So like, if they want to remove it, that's really hard. Like, removing contracts would have been very, very hard and some people wanted to. But part of it was that volatile is deprecated on post-fix. just like for int. That's a different paper. And we decided that by the time 29's about ready to ship, it's probably not like that deprecation might actually be coming around. Or sorry, removal of that might be coming around and we can fix it.
Starting point is 00:43:53 Oh, removal of the deprecation. It's undepricated, right? Yeah. Just just no, no, sorry, no. Removal of the. So instead of deprecated, removed. Oh, okay. All right. So there's kind of a hope there that that will happen. Wait, wait, but right now you can default it as volatile, right? Yes. And you're, but it might be removed entirely. So yeah, if it's removed entirely, then it's easy to look at it and go, okay, look, well, it's
Starting point is 00:44:22 not allowed here, so now let's remove it from this too. And we just do it at the same time, which won't be too hard. And obviously, constant is allowed for obvious reasons. Right. Operator. Yeah, we just didn't want to, to open that can of worms. and if EWG decides on a design, like you stick to that design, you don't change it. That's the rule.
Starting point is 00:44:43 That's how you get sent back to EWG, right? That's kind of how it works is like you go to EWG, then they forward it to core. And then once like it's design approved, you go to core and you do the wording now. You can't change the design at that point. If you do, you go back to you to the UG. So we didn't, if the design was approved, we didn't feel it was a big enough deal to actually change it. It's just kind of awesome. I mean, I have no problem with it being there.
Starting point is 00:45:07 I just wanted to know. Yeah. It just kind of comes on to that. On behalf of some listeners who may be as dumb as me, but hopefully, I think they're old smarter. Wasn't volatile, like, deprecated slash removed in 17, or am I missing something? Yes.
Starting point is 00:45:22 I'd have to look up the paper, but I'm almost certain it was an Osder Meredith paper. It was J.F. Bastion. Oh, was it? Oh, yeah, it was J.F. Right. Yeah. One of the papers I actually like from him.
Starting point is 00:45:35 I got in a fight on Twitter with him about the Charbit one Oh wait so do you want me to edit that out Are you good at that state? No, that's fine here Okay It was public I've spoke to him a lot one It didn't make it in there's not too much to say about it
Starting point is 00:45:50 But I do think He's done some really good work on simplifying the standard Right I don't agree with all of them But this one was good Right Because he had a bit of a mistake here with that That got undepricated
Starting point is 00:46:05 Right. Yeah. I think you had a Sequeless Weekly one on that actually, maybe. Or maybe it was... I don't recall. Yeah, someone was pointing out that in-embedded, it was like really the only sane way to do it for certain things to... Right.
Starting point is 00:46:20 Yeah. For bit-wise, bit-ops. So bit... So bit and equals or bit or equals, I think is the one. And that was deprecated. Okay. So prefix increment is not deprecated, but post-fix increment is deprecated.
Starting point is 00:46:38 Is that correct? I don't know that one. I think like prefix increment for volatile. Yes, I can see justifications. Absolutely for that. That sounds like a very valid use case for a volatile. Well, no, I mean, like it's honestly, it's kind of sketchy because you're hiding a load and a store in a single operation.
Starting point is 00:47:01 But then embedded people probably have the same argument does they have with the bit, bit or, bit and equals, where it's the only same way to do it and to show the compiler. I don't remember exactly what the arguments were, but combining a load in a store that are both volatile, I believe it can cause a very funny race condition because it's not like it, mutexes that's, like, this is outside my domain, so I'm like, I'm probably way off market. I think, though, but basically every CPU R.
Starting point is 00:47:34 since the 60s has had a single op code for increment. That's why I could see an argument for prefix increment being allowed for volatile. Right, right, right. Okay. Yeah, that's probably fine. You can definitely see where my knowledge is not as advanced. No, that's just because I decided to spend too much of my adult years learning assembly language. I honestly should visit it a bit. I'm trying to go more to the middle end and back end, on compilers because I just spent all my time on the front end, which is great because I'm like the only one in my company who really knows what they're doing like 100% in the C++S front end, but then also it's a little bit too niche and it becomes a problem sometimes where I'm not
Starting point is 00:48:26 not useful for a lot of tasks. So I am trying to branch out a little bit to the lower level stuff. I also find it very interesting. I've always found it very interesting, especially if I'm getting into wanting to like measure performance. I have to understand what's actually going on there much better. Godbolt's obviously a huge help for that. Yes. Matt changed how we program. Yeah, absolutely. We mentioned the paper I think last month, right? The one line change in DCC that that optimise the branch production bylaw. Oh, yeah. Yeah. I heard that one. Yeah. I had a little bit. A little bit of a discussion. with my friend on that one because a lot of those heuristic or a lot of sorry a lot of those values in the optimizer they're not really there's no justification behind them it's just kind of
Starting point is 00:49:16 someone punched in and oh let's see if it works right no one's actually done proper heuristics no one's actually like there's been projects to do it but they haven't borne much fruit and there's not a lot of investment into it that there should be like someone needs to sit down and look at it and go oh yes this values good good and this value's not. He wants to throw a genetic algorithm at it. I think that's a good idea. He just doesn't have a lot of time right now.
Starting point is 00:49:42 But I think it's a great idea. I think this falls under something where it's like, if someone else does it, we won't even be mad that the idea was stolen, right? It's just we want it to be done. Sure. Yeah, because I guess it's a lot of juristic like numbers training that's kind of like, eh,
Starting point is 00:49:58 a cost. It's a cost. It's a cost model, right? So I'm surprised, I'm surprised, like, no company will realize in C++ performance. Because, you know, they're willing to throw all the money at, like, AI or, like, supercomputers or cloud computer, whatever. That can't be that expensive. I mean, even if there is, like, I don't know, say, like, a couple, like, hundred weights, maybe more. Like, I'm sure compared to the domain of what we do today, maybe the problem is having a good test suit to run it against to see where the algorithm goes.
Starting point is 00:50:31 Because it's always like, you know, you're only going to be as good as your performance test suit. but assuming you have a reasonably representative test suit, you could even just do it for your own program if you're really crazy like that, right? If you have a benchmark of the actual app you're making, just say, hey, just try to tweak DCCs with a bunch of your stakes. Maybe you would need to change DCC so that those values are modable because I know compilers are not made like video games, right?
Starting point is 00:50:54 You don't have a definition file that allows you to tweak the values in thin. You have to recompile it, but I'm pretty sure that could be extracted for the purpose of that change. I don't think you need to do this. On the fly, command line or config file? Well, you have, I forget what the name is. Why am I blanking the name? It's not heuristic.
Starting point is 00:51:14 Profile, profile guided, PGO. Profile guided offline. It kind of does that, I guess, to some degree anyway. I think that's exactly what it does for sure. Because it's all the cost model, right? Like, oh, how do we want this to be shorter or faster, right? A lot of the vectorizers in that cost model, because if you vectorize everything, You can vectorize a lot of things, just won't be faster.
Starting point is 00:51:37 It'll be a lot slower. I'm just looking at the GCC command line arguments, and there's various thresholds that are configurable for inlining and branch prediction probability and stuff. I bet there's enough knobs to tweak that if you wanted to throw something at it, just as GCC as today, you could at least figure out which knobs need to tweak more. Yeah. And then there's a question of doing it. for like what is the average GPU targeting?
Starting point is 00:52:06 Do you do it? Because I think that the fix is good right now for like older architectures that don't do is like minus M arch. Like it's for when you compile for generic. And you might get into like microcode and how differently it works on the front you watch. But I think it's an interesting topic. I really wish. I've seen PGO hurt performance where it optimized. so well for the test case that it hurt the other cases, the actual, the actual users cases.
Starting point is 00:52:42 It helped my test case hurt the users, right? Yeah, so that was an obvious. Yeah, it is always the problem of how representative is your test case, right? I think ideally PGO should probably just be used on the actual thing that you're doing. Yeah. I don't think you should really do anything other than that. At least, well, this was a physics simulation engine. So like, it's, it's, it's, it's, it's, my.
Starting point is 00:53:08 Oh, I see. Okay. Yeah. You basically can't use PGO on something like a simulation engine because you don't know how your users are going to use it. Yeah. Like, you only, you throw like a bunch of big things into it that collide a lot versus like a particle simulator.
Starting point is 00:53:27 Those are two very different cases where different code paths more often. Yeah. And by the time you make your test suite large enough, you've gained nothing. Yeah. Right. This is where Jit is the B.O. Endall. I really believe in Jit being the B.O. End all. Obviously, everyone's designing a language in their head at some point, right? And then for mine, I definitely want to target both ahead of time and Jit. I want to figure out exactly how much information needs to be retained to make. like meaningful optimizations and fast optimizations at runtime, especially with multi-core CPUs too. Like you can just put the jit on a different core and then the running on another core and it is just better.
Starting point is 00:54:12 Like there's overhead there obviously and you can't do it on embedded obviously, but jit is the be all and all because you can treat things that are dynamic runtime values as constants because the jit looks and goes, yeah, we loaded that one hour ago when the program started, it's not changing and it can suddenly inline more things and get rid of branches and eliminate code and a lot. So I definitely think JIT is the BEL. JIT is even like there are people in the committee, including myself kind of, although I'm a little iffy on it because of the nature of parsing C++ plus that wants eventually to make JIT a part of C++ plus.
Starting point is 00:54:55 And we'll see if that actually happens in the next decade or if it's going to be two decades. but I think it's going to be really cool to go that direction. I will be retired by then. Knowing you, you're still going to be looking at the new stuff at that point. You know, a 30-year-old habit at that point. Yeah. You never know. You never know.
Starting point is 00:55:18 All right, given the time we had, maybe we want to, yeah, since we're talking about the standard, I guess maybe we can take a question or two about at least the present or the future. what are we thinking like the classic we would like to ask people like what do you think is uh you mentioned reflection already so is it your best is it your best favorite feature of 26 i like so far
Starting point is 00:55:41 or do you have other interesting thing in there i actually caused a bit of a kerfuffle because i in croydon i think i'm allowed to say this because it's myself yeah i i can quote myself i thought reflection should be pulled i didn't think it's ready i still i think
Starting point is 00:55:58 I do think we're going to break it in 29, like, that there are problems with it. After talking to Dan Katz, I've changed my mind a little bit. I think it's a lot more cooked than I originally thought, like cooked in the positive connotation. Right. Not overcooked, not undercooked. It's probably exactly where we need to be. So after talking to him, I agree it should stay instead of thinking it should have been pulled. But there are edges of it that are kind of hairy.
Starting point is 00:56:28 I don't like Define Aggregate. I think Define Aggregates, I don't like that it is a, I mean, my proposal is kind of a alternate direction on how we would use that. And hopefully I actually finish that proposal. And then I just have to make it gain consensus. We'll see. Like, there's a lot of work to do on it. There's like weird edge cases with like two phase lookup is a big annoying part.
Starting point is 00:56:52 I'm glad that I had the opportunity to speak to a lot of the people who worked on reflection. They can go, okay, well, this is the problem we had with this design. here's this problem, this problem, this problem, these are the things you have to solve. And it gives me direction. I have to have to rediscover all those things. But with all I said, reflection is easily one of my favorites. Reflection is awesome. It's kind of gone away from when I first saw it for like the first early talks, right?
Starting point is 00:57:14 But it's still incredible and I'm glad we have it. And I feel that way even more after watching Lori Wired's talk with runtime reflection. I think that's really incredible. I knew it was possible, but I didn't think the syntax would be that good what she actually had done at that point. I think contracts are my favorite, for sure. I was in another session. I need to watch it.
Starting point is 00:57:38 Yeah, it was usually the best talk at the event. Oh, really? Okay. Oh, yeah. I suggested Laurie to come to be your next speaker, but I haven't been able to get in touch with her. So we'll see if maybe in the future episode we can have her talk about it. I don't know when ACCU talks will be published.
Starting point is 00:57:55 assuming it's probably a couple months away still. But that sounds interesting. Yeah, that sounds like we need to make sure we follow up with that again. Yeah. Contract picture is my favorite. Oh. Slining that in. Okay, because I have a very strong opinion about that.
Starting point is 00:58:16 Yes. Interesting, because I have a strong opinion. I saw John Lekos's talk. I walked away. We like, oh, yeah, he's so right. We sold safety or whatever. No. And then I spent five minutes to think about it.
Starting point is 00:58:28 I was like, no, actually, no, because there's so many. You can't write if you be in a contract. So by definition, there's a lot of things we can't test in contracts. UB.S.S.S. solves that. When contracts fix functional safety, which is something that our language. Well, I say that, but we talked about this earlier with them. I don't remember APL, that's it. APL having already invented stuff.
Starting point is 00:58:51 Ada already did this one. Yeah. Like, so contracts aren't. new, but they're very cool. I like them for the static analysis potential, right? Because you can now say, hey, this parameter expects this or this, you can express now that one parameter depends on another parameter without these ad hoc annotations like C is doing. I'm not like super against how C is doing it. It's kind of interesting. It's not too bad. Like the counted by annotation. But I do think it's a little too ad hoc, a little too specific. I think we're going to
Starting point is 00:59:25 get a lot of that out of contracts. I've actually been working on that in GC trying to add refinement types. I started last week because I decided one thing wasn't possible, so I was going to build into the compiler instead. If we had more time, I'd go in depth of than I think. Is the compiler going to be allowed to optimize on contract pre-conditions or not? As an extension, like, it's not a part of the standard. We were never going to standardize it, because no one's going to agree to that, right? There's always going to be someone who looks like, goes, no, but we know that all compilers are going to do it anyway. They're going to look at that and go, they're going to add an assume semantic.
Starting point is 00:59:59 Right. With that said, I think that the implicit contracts are allowed to have an assume semantic. The reason being is that they, the old semantics were basically an assumed semantic, right? Like an overflow on int was assumed to never happen. So the implicit contract on like overflow for int, you can say assume that doesn't happen. so but these days now now we have implicit contracts on that and now it's not ub or i'm not sure that paper went in yet but it won't be ub in the future um i think that's a really cool proposal um because i didn't think we could get rid of that ub from the language and i don't want to because
Starting point is 01:00:37 it's a functional um functional safety violation if you've overflown and it's like that's not almost never correct right yeah it's always a bug even if it was well to find um unfortunately we do need to wrap things up. It is that time, isn't it? Too bad. I had some follow-up questions, but it's fine. I'll keep them for another time. It's too bad that you have the role
Starting point is 01:01:00 that you can only have someone on once, right? Well, it's Jason's rule. So now we know that we just have to convince Jason. It is my role. Well, it's just like the committee. There's always just one person you have to convince. Yeah, that's true. Yeah, all right.
Starting point is 01:01:16 Since we already almost out of time, First of all, thank you, Alex, for coming. Do you don't have a sponsor, but if there is a last word you want to have, in particular, if you want to recommend someone, we kind of have this thing that we've done once or twice, that the last guest gets to name someone, like, you know, live on air, and then we can immediately go to them in whatever contact you provide us and say, hey, you know the same way you got roped on the committee?
Starting point is 01:01:45 You can use that to rope people on CPPCAST if you think that would be an interesting. interesting guests, because we're always looking for more speakers. Oh, I... If I knew I was thinking about harder, but I'll have to call out Matthew Taylor, I think. I don't know if he'll do it, but my co-author, because... Okay, it's going to make it harder for AI to understand the summary of the episode because there's going to be two Matthews.
Starting point is 01:02:08 It already did that. Someone sent me a screenshot. The summary of the last episode was Jason Turner and Matt Goldbolt. Yeah, made an assumption. Which she was mad. He's talking. And I wish I was Matt Godbolt, but I'm not as cool as Matt Godbolt. Who doesn't wish they're at Godbolt, right?
Starting point is 01:02:27 Yeah, yeah. You just get the discount French version instead. You know, it is what it is. All right. Either way, thank a lot for coming. Thank you to all the listeners for listening. Again, we are looking for more speakers. So guests, so if you want to come and join us,
Starting point is 01:02:44 even if you have not been named by your previous guest, you are allowed unless you came once and then you're gone for. But if not, only of that, feel free to reach out to us on Twitter, LinkedIn, Discord, whatever other contacts. Comments below if you want to. We'll get in touch. That will be great. And with that being said, thank you for listening and we will see you next time.

There aren't comments yet for this episode. Click on any sentence in the transcript to leave a comment.