Hello all!

Our latest San Diego C++ Meetup took place on Tuesday, August 19th, 2025. It was another great session with engaging discussions on modern C++ features, standard library improvements, and a fascinating look into the world of AI-assisted development.

A huge thank you to JetBrains for their continued sponsorship of our meetup group. Their support is invaluable.

We’d also like to thank our partner, Packt, for providing our members with exclusive discounts on their extensive library of C++ books and courses.

For those who couldn’t make it or wish to review the topics, the full recording is available on YouTube:

Meeting Summary

We covered a lot of ground during this meeting. Here’s a brief overview of what we discussed:

First, we warmed up with a couple of C++ quizzes:

  • Quiz #153: We explored the intricacies of assigning a string literal to a non-const char*, a remnant from pre-C++11 days.
  • Quiz #342: This quiz sparked a discussion on the fundamental rule that references must always be initialized.

Next, we dove into the nuances of the constexpr and static keywords across different scopes: namespace/global, function, and class/struct. We referenced some excellent benchmarks from Jason Turner’s C++ Weekly series to guide our conversation and converged on the best practices for using these keywords for performance and clarity.

Following that, we explored a practical example of metaprogramming by building a simple compile-time TypeList using recursive structs. We also demonstrated how C++20 concepts can significantly clean up and constrain such constructs. This segment was inspired by a recent LinkedIn post from Hakan Gedek.

We then highlighted a significant safety improvement in libc++, which now produces a compile-time error when std::prev is used with an iterator category that doesn’t support it (like a forward iterator). This is a fantastic change that helps developers avoid stepping into Undefined Behavior.

Finally, the highlight of the evening was a live demonstration of using CLion’s AI assistance to build a complete, working “Game of Life” from scratch. I walked the group through the process I’ve been refining over the past six months, which has completely transformed how I build software. The key steps included:

  1. Planning & Brainstorming: Engaging with the AI in a “planning phase,” where I described the goal and let the model ask clarifying questions to build a robust design.
  2. Iterating on the Plan: Collaborating with the AI to refine the architecture, data structures, and logic, resulting in a detailed plan.md file.
  3. Implementation: Starting a new, clean session and feeding the plan.md to the AI to generate the full C++ implementation, complete with unit tests.

The result was a fully functional application, built in a single session, showcasing the incredible power of using AI as a development partner. This agentic approach, where the developer guides the high-level design and the AI handles the detailed implementation, is a paradigm shift in software creation.

Thanks to everyone who attended and participated in the great discussions. I look forward to seeing you at our next meeting!

Kobi

Leave a Reply