Modern C++: What You Need to Know—Herb Sutter

A recording of yesterday's //build/ talk by Herb Sutter is now available on Channel 9:

Modern C++: What You Need to Know

by Herb Sutter

This talk will give an update on recent progress and near-future directions for C++, both at Microsoft and across the industry. This is a great introduction to the current state of the language, including a glimpse into the future of general purpose, performance-intensive, power-friendly, powerful native programming.

From the advance description on Herb's blog:

I was asked to give a "foundational talk" about C++, and I decided that meant I should focus on addressing two questions that I get a lot these days:

  • FAQ #1 (1-2 slides): When should I use C++ compared to another language -- on all platforms in general, and on Microsoft platforms in particular?
  • FAQ #2 (lots of slides): What should I know about C++ if I’m a {Java|C#|JavaScript|Python|...} developer?

Even if you're a seasoned C++ developer, there are some nuggets and data points in the middle of the talk that I think you will find useful in your own work...

GoingNative no longer a standalone conference, being rolled into CppCon

cppcon-155.PNGThe fall C++ conference calendar is consolidating around the new CppCon.

Yesterday afternoon, the organizers of the popular GoingNative C++ conference announced that they will not organize a GoingNative 2014, in favor of supporting CppCon instead as "'the' C++ conference" and the natural successor to GoingNative.

From the announcement:

With CppCon, there's no longer a need to put on a separate GoingNative -- CppCon is just better in every way.

The Call for Submissions is still open, so we don't know the final session list yet. However, topics that are expected to be covered in CppCon sessions include some you'll likely anticipate, as well as others you'll be surprised and delighted to see covered by experts in their fields:

  • C++11 and C++14, of course
  • C++ libraries and frameworks
  • Parallelism and multiprocessing, including coverage of the Concurrency TS, Parallelism TS, and other C++ libraries and tools for parallel computing
  • Concepts and generic programming
  • Functional programming
  • High-performance and low-latency computing
  • Real-world application experience reports
  • Tools and processes for C++ development
  • Using C++ in mobile applications, embedded devices, and Internet of Things
  • Industry-specific C++: gaming, trading, scientific, robotics, ...
  • And more...

If you liked GoingNative, you will love CppCon [... with] 150+ talk sessions expected -- plus more than just regular talks, including "unconference time" with lightning talks, birds-of-a-feather sessions, evening gatherings, and more.

Reaction on the CppCon site.

Quick Q: Why doesn’t my C++ program compile under Windows 7 French?—StackOverflow

Quick A: It's a language conformance issue.

Today on StackOverflow:

Why can't my program compile under Windows 7 in French?

I'm running Windows 7 French and I'm trying to compile this really basic program, but Visual Studio is being stubborn and refuses to comply. I also tried compiling it with both GCC 4.7 and Clang trunk on Coliru and I get more or less the same errors (output is below the code), though I think Coliru runs on an English OS so I wouldn't expect it to work anyway.

What am I doing wrong? And how can I fix it?

C++ in the 21st Century—Arvid Norberg

A recently posted talk by BitTorrent's chief architect:

C++ in the 21st Century

by Arvid Norberg

From the announcement:

In this edition of Tech Talks: an overview of some C++ gems. I threw this talk together because my team was about to start a new project in C++11. Since it’s fairly new, I figured some of it might not be as well-known as it should. Fundamentally, I’m pretty excited about all the new possibilities in C++11. Even higher-level abstractions, at even lower cost than C++98.

In the video below, we go over for-loops, automatic type deduction, lambda functions and more.

Declare functions noexcept wherever possible?—Scott Meyers

Scott Meyers' work on his new "Effective C++" book, tentatively titled Effective Modern C++, progresses with an updated draft item:

Declare functions noexcept wherever possible?

by Scott Meyers

From the article:

In the comments following my last post, there was some controversy regarding the wording of my advice on noexcept functions. My advice is "Declare functions noexcept whenever possible." Some people appear to be concerned that this could be misconstrued as advocating noexcept even when it makes no sense, but I think the advice is a reasonable conclusion to the Item that supports it. I posted a draft version of that Item in early February, but I've revised the draft since then, and I'm making the current draft available now: ...

cereal 1.0.0 is available

cereal 1.0 is available:

cereal - A C++11 library for serialization

cereal is a header-only C++11 serialization library. cereal takes arbitrary data types and reversibly turns them into different representations, such as compact binary encodings, XML, or JSON. cereal was designed to be fast, light-weight, and easy to extend -- it has no external dependencies and can be easily bundled with other code or used standalone.

... cereal uses features new to C++11 and requires a fairly compliant C++ compiler to work properly. cereal has been confirmed to work on g++ 4.7.3, clang++ 3.3, and MSVC 2013 (or newer). It may work on older versions, but there is no emphasis on supporting them. cereal works under both libstdc++ and libc++ when compiling with g++ or clang++.