Reminder: Bjarne Stroustrup live tomorrow in Austin, TX

Reminder: Bjarne Stroustrup is appearing live tomorrow in Austin, TX.

C++11 Style: A Touch of Class (Bjarne Stroustrup)

September 19, Austin, TX, USA

What principles, techniques, and idioms can we exploit to make it easier to produce quality code? This presentation reflects my thoughts on what “Modern C++” should mean in the 2010s: a language for programming based on light-weight abstraction with a direct and efficient mapping to hardware, suitable for infrastructure code. I will make an argument for type-rich interfaces, compact data structures, integrated resource management and error handling, and highly-structured algorithmic code. I will illustrate my ideas and motivate my guidelines with a few idiomatic code examples. I will use C++11 freely. Examples include auto, general constant expressions, uniform initialization, type aliases, type safe threading, and user-defined literals. C++ features are only just starting to appear in production compilers, so some of my suggestions have the nature of conjecture. However, developing a “modern style” is essential if we don’t want to maintain newly-written 1970s and 1980s style code in 2020.

ASIO: Portable Stackless Coroutines in One* Header -- Chris Kohlhoff

Via C++ Next, hat tip to Dave Abrahams:

Chris Kohlhoff’s ASIO library contains an extraordinary little header, not in the public interface, but in the examples directory, that implements what he calls “Stackless Coroutines” (very similar to Python’s Simple Generators if you’re familiar with those). He does it completely portably, with just a few macros, and considering that there are zero lines of platform-specific code, they work amazingly well.

Dave cites this article that describes how to use the coroutines:

A potted guide to stackless coroutines

Keen-eyed Asio users may have noticed that Boost 1.42 includes a new example, HTTP Server 4, that shows how to use stackless coroutines in conjunction with asynchronous operations. This follows on from the coroutines I explored in the previous three posts, but with a few improvements. In particular:

  • the pesky entry pseudo-keyword is gone; and
  • a new fork pseudo-keyword has been added.

The result bears a passing resemblance to C#'s yield and friends. This post aims to document my stackless coroutine API, but before launching into a long and wordy explanation, here's a little picture to liven things up...

Free two-day event: Silicon Valley codecamp_12 for C++11

The page's own intro says it all:


C++ is Hot!

Mobile and cloud technologies are re-energizing interest in the uncompromising performance that C++ delivers and the new ISO/ANSI standard (C++11) introduces features that allow programmers to achieve that performance with ever greater expressiveness.

Join us as we discuss how to get the most out of Classic C++ and discover the new features of C++11 that are being delivered now by the latest compilers.

Sessions in this track are being given by award winning presenters. We will go beyond Procedural and Object-Oriented Paradigms to explore Generic Programming and Logic Paradigms. We will teach you how to write code in both Classic C++ and C++11 that you can be confident is performant, maintainable, and 100% robust in the face of exceptions. We will cover new C++11 features, including the new standard for threading and what Scott Meyer’s calls “the marquee feature of C++11,” move semantics. We will also introduce you to some powerful new tool sets, one from Microsoft and the other Open Source (Clang), for use with both Classic C++ and C++11.

Fall WG21 meeting: Register by Fri Sep 14 (this week)

Via Clark Nelson:

Final reminder: The registration page for the Portland meeting (Oct 15-19, 2012) closes after this Friday, September 14. If you're planning to come and haven't made your reservation yet, don't delay to get the discount room rate.

Registration page for Portland meeting

A few people have asked about reserving a room at the DoubleTree outside the range of dates acceptable to the web site. Just reserve what you can, and make your request for additional days in the "Special Requirements" box. Be advised that the DoubleTree is already all booked up for both Saturday nights, October 13 and 20.

More information about the Portland meeting:

VC++ 2012 Desktop Express (free)

Today Microsoft released another free Express version of Visual C++ 2012. In addition to the free Express Visual C++ compiler for building tablet applications, Visual Studio Express 2012 for Windows Desktop directly supports traditional Windows and command-line applications in C++.

This a great free C++ compiler on Windows for everything from hobby development to using and contributing to open source projects. Besides additional C++11 standards conformance with range-for, override and final on the language side (with more to come in the coming months; watch this space) and a complete C++11 standard library implementation, the free compiler also includes unit testing framework for C++, code analysis for C++ (try /analyze today if you haven't already, as John Carmack says so well), C++ AMP for GPGPU programming, and much more.

See also the longer announcement here.

just::thread 1.8.0 released

Version 1.8.0 of just::thread was released today. just::thread is Just Software Solutions' C++11 Thread Library.

What's new:

  • The big news with this release is the new support for Microsoft Visual Studio 2012, so you can continue to take advantage of just::thread when upgrading your compiler.
  • A fix for using just::thread in a DLL on Windows XP.
  • Minor fixes and improvements to the generated code across all platforms.

Core C++, 4 of N: Virtual Functions -- Stephan T. Lavavej

Core C++, 4 of N: Virtual Functions -- Stephan T. Lavavej

Stephan T. Lavavej, aka STL, will take us on a journey of discovery within the exciting world of Core C++. We know lots of folks are either coming back to C++, coming to C++, or have never left C++. This lecture series, in n parts, is for all of you! Only STL can make that work (novice, intermediate, and advanced all bundled together and presented in a way only STL can do).

In part 4, Stephan teaches us about Virtual Functions. In parts 1-3, we learned about compile-time constructs. Now, we enter the realm of runtime. STL spends some time discussing inheritance and a bit about access control.

Tune in. Learn.