Events

CppCon 2015 Program Highlights, 1 of N

The CppCon 2015 conference program has been posted for the upcoming September conference. We've received requests that the program continue to be posted in "bite-sized" posts, a few sessions at a time, to make the 100+ sessions easier to absorb, so here is another set of talks. This series of posts will conclude once the entire conference program has been posted in this way.

 

There is lots -- lots -- of existing C++ code. How can you effectively bring existing C++ code forward to C++11/14? How can you upgrade your coding styles and conventions? How can tools help you and your team to use correct modern C++ in your production projects?

The following interrelated CppCon 2015 talks tackle these issues and more.

In this post:

  • Keynote: Writing Good C++14 (Bjarne Stroustrup)
  • Plenary: Writing Good C++14 By Default (Herb Sutter)
  • A Few Good Types: Evolving array_view and string_view For Safe C++ Code (Neil MacIntosh)
  • More than Lint: Modern Static Analysis For C++ (Neil MacIntosh)

 

Keynote: Writing Good C++14

How do we use C++14 to make our code better, rather than just different? How do we do so on a grand scale, rather than just for exceptional programmers? We need guidelines to help us progress from older styles, such as “C with Classes”, C, “pure OO”, etc. We need articulated rules to save us from each having to discover them for ourselves. Ideally, they should be machine-checkable, yet adjustable to serve specific needs.

In this talk, I describe a style of guidelines that can be deployed to help most C++ programmers. There could not be a single complete set of rules for everybody, but we are developing a set of rules for most C++ use. This core can be augmented with rules for specific application domains such as embedded systems and systems with stringent security requirements. The rules are prescriptive rather than merely sets of prohibitions, and about much more than code layout. I describe what the rules currently cover (e.g., interfaces, functions, resource management, and pointers). I describe tools and a few simple classes that can be used to support the guidelines.

The core guidelines and a checker tool reference implementation will be open source projects freely available on all major platforms (initially, GCC, Clang, and Microsoft).

Use, comment, and contribute!

Speaker: Bjarne Stroustrup, Managing Director, Morgan Stanley. Stroustrup is the creator and original implementer of C++. He is also a Visiting Professor in Computer Science at Columbia University, a Distinguished Research Professor in Computer Science at Texas A&M University, and continues to actively participate and lead language evolution in the ISO C++ committee.

 

Writing Good C++14 By Default

Modern C++ is clean, safe, and fast. It continues to deliver better and simpler features than were previously available. How can we help most C++ programmers get the improved features by default, so that our code is better by upgrading to take full advantage of modern C++?

This talk continues from Bjarne Stroustrup’s Monday keynote to describe how the open C++ core guidelines project is the cornerstone of a broader effort to promote modern C++. Using the same cross-platform effort Stroustrup described, this talk shows how to enable programmers write production-quality C++ code that is, among other benefits, type-safe and memory-safe by default -- free of most classes of type errors, bounds errors, and leak/dangling errors -- and still exemplary, efficient, and fully modern C++.

Background reading: Bjarne Stroustrup’s 2005 “SELL” paper, “A rationale for semantically enhanced library languages," is important background for this talk.

Speaker: Herb Sutter, author and chair of the ISO C++ committee.

 

A Few Good Types: Evolving array_view and string_view for Safe C++ Code

The Library Fundamentals TS already contains a string_view type, and possibly soon an array_view type. These are important and should be used pervasively as function parameters, especially instead of (pointer, length) pairs which are generally unsafe. They offer additional benefits in the form of decoupling: allowing functions to be specified in terms of high-level views rather than references to specific, concrete string and container types which bind both caller and callee to a specific implementation detail. As a specific example, using string_view in function signatures allows them to be called with any of the endless proliferation of string types that exist in codebases today (std::string, CStringT, char*, BSTR, HSTRING, MyString etc).

We can and should evolve these types further as a key part of achieving memory safety for C++ code.

This example-driven talk shares our experience with preventing defects in large-scale commercial C++ codebases by applying modestly evolved versions of the proposed array_view and string_view types, plus a small number of related types such as not_null. Adopting these types enables simpler and safer code that eliminates important classes of defects by construction. The types are carefully designed to have usually exactly zero space and time overhead over the current unsafe idioms they replace, so as to leave no valid performance reason against adopting them. Using these types enables high-quality static analysis, and is allowing Microsoft to fully replace non-standard and non-portable annotation systems for type and memory safety in our own code bases.

We believe this approach is generally applicable to code at all levels, from application code down to the most performance-sensitive systems code. An open source reference implementation of the types that supports all major compilers and platforms will be available on GitHub.

More than Lint: Modern Static Analysis for C++

Static analysis tools have the potential to significantly improve programmer productivity as well as the safety, reliability and efficiency of the code they write. Modern static analysis has moved well beyond the mental model people often have based on “lint”: just finding simple “typos” or “thinkos”. Static analysis can find subtle, complex bugs early, identify opportunities to improve performance, encourage consistent style and appropriate usage of libraries and APIs.

This talk will look at the different purposes static analysis tools can be used to meet all these different goals. It will present specific examples from our experience working with sophisticated analysis tools on large, commercial codebases. The talk will also present a specific implementation of a modern static analysis toolkit for C++. This toolkit is being used in a number of different contexts: to provide tool-based enforcement of new coding guidelines and rules, to migrate people to modern C++ coding idioms and to find important security and reliability defects. One notable example of its use is to implement the checker for enforcement of a core set of coding guidelines that are presented in Bjarne Stroustrup’s keynote address.

Some of the tools described in the talk will be available for download as a Community Technology Preview in the latter part of 2015.

Speaker: Neil MacIntosh, Microsoft. Neil is the lead for the C++ static analysis frameworks used widely within Microsoft, including PREfix, PREfast, and ESPx, and is currently involved on making them work better with portable C++14 code rather than nonstandard annotations.

CppCon 2015 program additions posted

cppcon-046.PNGFrom the cppcon.org announcement:

2015 Program Additions

Most of this fall’s program is already online, but we are still working on it. Today we are announcing three new sessions and a panel.

Herb Sutter will be presenting “Writing Good C++14 By Default.” Herb’s session will build on Bjarne Stroustrup’s keynote of the previous day on “Writing Good C++14.”

Chandler Carruth, C++ Language and Compiler Lead at Google, will be presenting “Tuning C++: Benchmarks, and Compilers, and CPUs! Oh My!

Sumant Tambe will be presenting “Reactive Stream Processing in Industrial IoT using DDS and Rx.cpp,” which includes a live demo of a distributed complex event processing system for Internet of Things.

Our Monday evening panel will be Grill the Committee, featuring the opportunity for audience members to question members of the ISO C++ committee. We’ve not yet identified the panel members, but last year’s panel featured a dozen committee members and we’ll have a similar panel this year.

19 C++ User Group Meetings in August

The monthly overview on upcomging C++ User Group meetings:

19 C++ User Group Meetings in August

by Jens Weller

A short overview:

5.8 C++ UG Saint Louis - "Fun with Lambdas" Lightning Talk\, Interview Questions and more
5.8 C++ UG Austin - Introduction to the QT Framework using C++ and QML
6.8 C++ UG Edinburgh - C++ Edinburgh
10.8 C++ UG Denver - Denver Tech Center C++ Developers
12.8 C++ UG Utah - Regular Monthly Meeting
12.8 C++ UG San Francisco/ Bay area - Presentation and Q&A
12.8 C++ UG Washington, DC - Q & A / Info Sharing
17.8 C++ UG Austin - North Austin Monthly C/C++ Pub Social
17.8 C++ UG Juce - Deploy Pure Data patches to any OS with JUCE
18.8 C++ UG Berlin - TBA
19.8 C++ UG Düsseldorf - Treffen der C++ User Gruppe NRW
19.8 C++ UG Hamburg - constexpr
20.8 C++ UG Ruhrgebiet - August Meetup - std::advance(CodingStandard, Modern::c++)
24.8 C++ UG Göteborg - Let's meetup and discuss the format for this group
25.8 C++ UG Chicago - Using NuGet to manage external dependencies in Visual C++ builds
26.8 C++ UG San Francisco/ Bay area - Workshop and Discussion Group
26.8 C++ UG Washington, DC - Q & A / Info Sharing
26.8 C++ UG Aarhus - Access Guards
27.8 C++ UG Munich - Pruning Error Messages From Your C++ Template Code

C++ Siberia 2015

Program, speakers etc. are all online now in Russian.

C++ Siberia 2015

Organized by Sergey Platonov

What to expect at Siberia C++:

The event will take place in Novosibirsk, Siberia, Russia in August 2015. People from Yandex, Boost, PVS-Studio and many more companies will share their knowledge on compilers, concurrency and much more.

CppCon 2015 program is available: 100+ talks, all new

cppcon-054.PNGThe CppCon 2015 program has been posted! A few additional well-known speakers will also be announced soon for the remaining plenary sessions, but the majority of the program is now set: After the opening keynote by Bjarne Stroustrup on "Writing Good C++14," once again there are 100+ top-quality talks in 6 tracks all week long at this year's premier C++ festival, presented by over 80 speakers from around the world.

Note that there are no repeats -- all of the 100+ talks are new since last year. (If you missed last year's talks, you can watch them for free online on YouTube and Channel 9.) This year the program committee had even more submissions than last time, nearly twice as many as could be accepted. Even though this meant turning down lots of very good talk proposals simply for lack of room, the good news is that's because there was so much even stronger material, and this year's program is packed with the very best topics and content on C++ available this year. Register now for September 20-25, 2015!

Here's the announcement:

CppCon 2015 Program Available

The CppCon 2015 Program is now (mostly) available with talk titles, abstracts, and speakers. The program contains over 100 one-hour sessions by over 80 speakers including many speakers returning from last year’s very successful program as well as many new voices. Not all sessions are announced yet, but we have announced our opening keynote by C++ creator Bjarne Stroustrup on Writing Good C++14.

Finally, we would like to thank the program committee, the speakers on the program, and the many more who proposed talks which we unfortunately just couldn’t squeeze in this year. Thank you for your hard work and enthusiastic support for this year’s program!

C++ User Group Meetings in July

The monthly overview on upcoming C++ User Group Meetings, this time its 18 User Groups who are meeting during summer!

C++ User Group Meetings in July

by Jens Weller

The list of meetings:

7.7 C++ UG Chicago - Memory Management in C++14 and Beyond
8.7 C++ UG San Francisco/ Bay area - HPX, C++ parallel programming framework
8.7 C++ UG Bristol - The Anatomy of Exceptional Engineers
9.7 C++ UG New York - July C++ Meetup
9.7 C++ UG Amsterdam - Hot C++, Part 2
9.7 C++ UG Dresden - Lazy generating non-integral values in range-based for loops
15.7 C++ UG Utah - Embedded Scripting with ChaiScript
15.7 C++ UG Bristol - Save the date
15.7 C++ UG Washington, DC - Q & A / Info Sharing
15.7 C++ UG Düsseldorf - Traveling for C++, a trip report
21.7 C++ UG Berlin - Ingo Josopait - Introducing the Goopax compiler for GPUs and Barb
21.7 C++ UG Portland - PDXCPP July Meeting-- feat. Jon Kalb
22.7 C++ UG San Francisco/ Bay area - Workshop and Discussion Group
23.7 C++ UG Rhein-Neckar - Presenting for Geeks
28.7 C++ UG Cologne - Monthly meeting
29.7 C++ UG Washington, DC - Q & A / Info Sharing
29.7 C++ UG Hamburg - Protocol Buffers
30.7 C++ UG Bremen - C++ Testframeworks

Webinar: A Tour of Modern C++ -- Thursday, July 2nd, 2015

JetBrains is hosting a free webinar (registration required):

A Tour of Modern C++

Thursday, July 2nd, 2015

14:00 - 15:00 GMT (10:00 AM - 11:00 AM EDT)

The C++ programming language has moved quickly from relative stagnation to rapid evolution, with new versions of the standard adding sought-after features to the language and standard library. In this webinar we shall take a look at the latest language additions introduced in C++11 and will also talk a little bit about some of the forthcoming features in C++14 and 17.

Space is limited, please register now. There will be an opportunity to ask questions during the webinar.

About presenter

Dmitri Nesteruk is a developer, speaker, podcaster and technical evangelist. His interests lie in software development and integration practices in the areas of computation, quantitative finance and algorithmic trading. His technological interests include C#, F# and C++ programming as well high-performance computing using technologies such as CUDA. 

Bloomberg C++ Challenge for Chance to Attend CppCon

Announced by Bloomberg this week, starts June 22:

Got What it Takes? Enter C++ Challenge for Chance to Attend CppCon

From the press release:

This summer, Bloomberg is hosting a weekly coding competition in partnership with the Standard C++ Foundation and CppCon, the flagship C++ conference. Part of Bloomberg’s overall CodeCon program, this contest will award seven problem solvers with a trip to Bellevue, Washington to attend CppCon in September 2015. The competition will be opened only to students currently enrolled in a university or college. Bloomberg CodeCon is a browser-based eLearning platform used by universities in their curricula, and powers coding challenges for college students in the US and Europe.

The series of seven weekly challenges will kick off on June 22, 2015, and each week contestants will be provided a different set of problems to solve via Bloomberg’s cloud-based CodeCon platform. Each week’s winner will earn a trip to CppCon in September. The list of seven winners will be announced and notified via email on August 5.

Additional coding contests will take place at the CppCon event in September for those who attend.

“We are excited to expand the types of competitions we can create and the opportunities CodeCon can provide to contestants,” said Rangan Prabhakaran, Bloomberg R&D developer and creator of CodeCon. “Focusing the competition to C++ and partnering with an industry leading conference like CppCon allows us to open greater opportunities for the programmer community at all skill levels.”

Keep an eye out for further contest details by following us on Twitter @BloombergLabs where we will be announcing the beginning of challenges – and make sure you are checking out the Bloomberg CodeCon site: http://codecon.bloomberg.com/.