It’s been a few weeks since my last post. Should I apologize? I really should. But with eight sessions and a workshop at DevWeek, I hope to make up for it in the upcoming weeks. Anyway, next week I’m giving a workshop at DevWeek, titled Making The Most Of C++ 11/14. It’s a distilled summary of modern C++ that every C++ developer has to be aware of. This is a slightly longer description that what was published on the conference website.
The C++ language many of us are using today goes back more than thirty years. You might be using some “newer” features, such as templates or the standard library, which have been standardized around 1998 – the previous millennium. Since 1998, C++ has seen two major international standards – C++ 11 and C++ 14, and work is in progress on another major revision to be published in 2017.
Over the last few years, C++ developers all over the world are transitioning to the new, modern C++. It’s not just a matter of language features or library APIs. It’s a matter of style and flavor, which makes C++ so successful across all major server, desktop, and mobile operating systems and processors. Conference talks use modern C++. Dozens of books are published every year using modern C++. Online forums like StackOverflow use modern C++ and code samples you see on your favorite software manuals use modern C++. You simply can’t be a C++ developer today without being able to write – or at least read and understand – the modern C++ syntax and style.
In this full-day workshop you will learn from the collective experience of many C++ developers and companies, distilled into a set of guidelines and features that are guaranteed to make your development more effective. We will discuss language features that make you more productive, help express yourself more clearly in C++, and help avoid mistakes and unsafe constructs. We will review library features around the concurrency library, which make portable multi-threaded code a reality for C++. And most importantly, we will experiment with multiple examples where we modernize existing C++ code to bring it up to par with the modern C++ style. It’s not always going to be shorter, but it will always be safer, more readable, more accurate, and often more efficient.
The workshop includes hands-on labs that you’ll perform in class, and some additional exercises that you can experiment with after the workshop. This combination of theory peppered with labs and discussions has proven very effective for understanding modern C++ and knowing when to apply in your existing systems. Please bring a laptop with a modern C++ compiler, such as Visual C++ 2013/2015, GCC 4.8, or Clang 3.5. Alternatively, you will be able to use an online compiler such as http://ideone.com.
The tentative agenda for the workshop is as follows:
- 09:30 – 09:45 Introductions, C++ roadmap overview, compiler conformance
- 09:45 – 10:15 Productivity features: NSDMI, deleted functions, type inference
- 10:15 – 11:00 Productivity features: range-based for, uniform initialization, lambda functions
- 11:30 – 12:00 Hands-on lab: modernizing code using type inference and lambda functions
- 12:00 – 13:00 Move semantics, rvalue references, performance implications
- 14:00 – 14:45 Smart pointers, resource management, RAII, revisiting the Pimpl idiom
- 14:45 – 15:15 Hands-on lab: introducing smart pointers
- 15:45 – 17:00 Concurrency: memory model, atomics, threads, futures and promises, synchronization mechanisms
I’m looking forward to seeing you there! If you haven’t registered yet, use the code DW15GLD for a 10% discount.