Let’s play a game: Spot the bug in popular open-source projects—Andrey Karpov

[We don't often link to quiz-like sites, particularly product-specific ones, but in this case we felt that this could be of broad interest to some of our readers. -- Ed.]


The authors of the PVS-Studio analyzer invite you to test your attentiveness:

Let's play a game -- spot the bug in popular open-source projects

by Andrey Karpov

From the article:

Code analyzers never get tired and can find errors a human's eye cannot easily notice. We have picked a few code fragments with errors revealed by PVS-Studio, all the fragments taken from well-known open-source projects.

We invite you to take part in a competition against code analyzers to test your agility by trying to find the errors by yourself. You will be offered 15 randomly selected tasks. Every correct answer earns you one score if you give it within 60 seconds. The code fragments are short and 60 seconds is a fair limit.

Let's examine a couple of examples with errors for you to understand how to give the answer...

Note: This test does not currently support mobile devices. We are working on new version of tests with better mobile devices support, new problems to solve etc. However, it is not implemented yet. We offer you to subscribe on twitter to read about our new and interesting news and to read about new things in a C++ world.

A Video Interview with C++ Author John Lakos

lakos-cppcon.PNGA video published on InformIT in which author talks about various concepts/aspects of C++.

A Video Interview with C++ Author John Lakos

John Lakos, author of Large-Scale C++ LiveLessons (Workshop): Applied Hierarchical Reuse Using Bloomberg's Foundation Libraries and senior software architect at Bloomberg, talks with Brian Overland about applied hierarchical reuse, the problem with undefined behavior, the use of macros in C++, the importance of using the right tool for the job, and the challenge of getting people to do things your way.

Programming Conversations Lecture Series—Alexander Stepanov

alex-stepanov-programming-conversations.PNGYet again the wonderful ongoing video series from Alexander Stepanov and Paramjit Oberoi (A9 Organization):

Programming Conversations

Programming conversations is intended as an interactive course on programming. We'll try to practice the Socratic method: eventually there will be very little lecturing, and most of the time will be spent in discussions and in writing code together. We plan to cover a wide variety of topics, starting with the nature of programming, and continuing, in no particular order, with benchmarking, algorithms, data structures, caches, instruction level parallelism, generic programming, variable sized types, and Platonic ideas.

Most of the concepts are explained in terms of C++11/STL/Boost.

Source code is available.





C++11/14 Standard & Standardization—Peter Sommerlad

Peter Sommerlad on C++11 and C++14 Standard(s) and Standardization:

Peter Sommerlad on C++11 and C++14 Standard(s) and Standardization

Created by Peter Sommerlad March 6, 2014

From the presentation:

Why is C++ in again?

• more computing per Watt!
  • mobile - battery powered
  • servers - cloud computing
  • high-performance computing & GPUs
• better abstractions than C
  • without performance price (e.g. of a VM)
  • embedded (higher-level type safety)
  • security (buffer overruns, pointers)

Slides (PDF)

Learn How To Program… with C++—Kate Gregory

kate-gregory-v2.jpgDo you know a beginner who'd like to learn C++? Or even just learn how to program... using C++?

Recently, C++ author and trainer Kate Gregory made a new 7-hour course available via Pluralsight. And not just any introductory course, but teaching C++ the way it should be taught... not "C and pointers first."

It's highly-rated, as with all of Kate's courses. Know about it and recommend it to newcomers.

Learn How to Program with C++

Instructor: Kate Gregory

If you've never programmed before, and you think you'd like to learn C++, why not learn it first? This course covers what you need to start writing real applications in C++.

What’s new in C++11?—KDAB

KDAB is now offering three-day training courses in C++11.

What’s New in C++11?

This three-day training teaches everything about the new C++ standard, C++11.

Course description

Table of contents (PDF)

C++11 will become more and more important in the C++ ecosystem, eventually becoming the most prevalent version. Every professional developer should invest in learning the new language version and try introducing its benefits into projects. And for good reasons: C++11 brings a large range of new features that makes development safer, faster, easier and more fun. Once you have tried features like lambda functions, range-based for loops, the auto keyword and the new initialization syntax, you won't want to go back. In addition to that, many more advanced features like variadic templates, rvalue reference and of course the new standard library additions like multithreading classes, smart pointers, regular expressions and new containers and algorithms complete the picture.

During the training day at Qt DevDays 2012 in Berlin, KDAB engineer Marc Mutz, presented some the most important C++11 features using parts of the material from this course. This was very well attended, receiving positive feedback.

Our full training lasts for three days and covers a wide range of topics, it goes in-depth and provides time to show C++11 examples as well as allowing participants to go hands-on and trying out C++11 themselves in exercise projects.

See the course description for more details about the content.

To view our schedule and to book your place for our next C++11 trainings go to:

Effective C++11 update—Scott Meyers

This week, Scott Meyers posted a couple of updates on how C++11 is coming to one of the world's most-loved C++ book series -- Effective C++.


First, here's Scott's preamble about his approach to Effective C++11:

Effective C++11: Background

I've mentioned in some earlier posts that I plan to start writing a new book, Effective C++11.  The purpose of this post is to tell you a little bit about it. Lest there be confusion, let me emphasize that there is no book yet. If everything falls into place the way I hope it will, there will be a book about 10 months from now. If. I'm not making any promises. [...]


As a followup, Scott then posted an early draft list of candidate Items for Effective C++11 as part of this post:

Effective C++11: Content and Status

[...] At last year's C++ and Beyond, I gave a talk entitled "Initial Thoughts on Effective C++11." It had my usual guideline format. I also gave a talk on "Secrets of the C++11 Threading API," which consisted of observations about C++11's threading support. The material in those talks, combined with the feedback I got from giving them and mixed in with my experience explaining the idea of universal references, ultimately yielded the initial list of candiate Items for EC++11. The current snapshot of my vision for Effective C++11 is: [...]

At least a million developers are looking forward to your book, Scott!

No pressure.

C++ Training at All Levels—Leor Zolman

On-Site C++ Training at All Levels

by industry veteran Leor Zolman


Note: For a limited time, any 4- or 5-day training includes the C++11 Overview.


Our C++ and C seminars have been designed by some of the best-known, most effective C++ educators practicing today. In addition to materials created by Leor our C++ training repertoire features courses licensed from and supported by industry leaders Dan Saks and Stephen C. Dewhurst.

A Whirlwind Overview of C++11 (1/2-day, author: Leor Zolman)

Advanced C++  (Author: Stephen C. Dewhurst)

Effective C++ (3-, 4- and 5-day versions of courseware by Scott Meyers based on his books)

An Effective Introduction to the Standard Template Library (STL) (Author: Scott Meyers)

C++ for Non-C Programmers (Author: Leor Zolman)

C++ and Object-Oriented Programming (a.k.a. C++ for C Programmers). (Author: Dan Saks)

A sample unit of any course is available upon request.

Contact us today for more information or to schedule an on-site training at your location!

C++11: The New Standard—Dave Abrahams

C++11 -- The New Standard

Dave Abrahams, BoostPro Computing

Contact for further details


In this class we’ll be using real C++11 compilers to explore the new standard, including these specific topics:

Classes: override and final, =default and =delete, in-class member initializers, delegating and inheriting constructors
Move Semantics: copy elision, rvalue references, and perfect forwarding
Concurrency: high- and low-level lock-based components. Atomics and the C++ memory model.
General: range-based for loops, nullptr, uniform initialization, string encodings, unicode, and auto
Functional: Lambda expressions, std::bind, std::function, user-defined literals, and constexpr
Exceptions: noexcept, nesting, copying, and re-throwing, system_error and friends
Containers: arrays, tuples, initializer_lists, emplacement, scoped allocators, and hash tables
Basic Types: standard-layout types, extended integer types, generalized unions, alignments, and scoped enums
Smart Pointers: unique_ptr, shared_ptr, weak_ptr, make_shared, allocate_shared
Templates: extended SFINAE, working with decltype and declval, and variadic templates

Because the earlier C++03 standard is familiar, and will still be relevant for many years, we offer special attention to future-proofing and to the emulation of C++11 features in C++03 using 3rd-party libraries such as Boost.

Who It’s For: experienced C++ programmers who want to be ready for C++11.

Format: Each day is divided roughly into four blocks, each consisting of an hour of lecture and thirty minutes of hands-on exercises. Ideally presented as a 5-day course, it is scalable to 3 days customized to your team’s needs.

Download a complete brochure (PDF) or contact for details.