Articles & Books

Bjarne Stroustrup on the 30th anniversary of Cfront (the first C++ compiler) -- A. Regat-Barrel

cpp30.PNGHow time flies -- 30 years ago today, the Cfront 1.0 compiler and the first edition of The C++ Programming Language were officially released. In celebration of the event, here's a new interview with Bjarne Stroustrup.

Bjarne Stroustrup on the 30th anniversary of Cfront (the first C++ compiler)

by Aurélien Regat-Barrel

Candidate for favorite quote: "I did learn a fair bit about C++ by trying to explain it to people." Experienced instructors will all tell you the same thing -- you really grok something after you've taught it to others. Thanks for 30+ years of teaching, Dr. Stroustrup!

30 Years of C++ -- Aurélien Regat-Barrel

Aurélien Regat-Barrel interviewed Bjarne Stroustrup about the first release of CFront (the first C++ compiler), exactly 30 years ago.

30 Years of C++

by Aurélien Regat-Barrel

From the article:

Aurélien Regat-Barrel gives an overview of the evolution of the language and talks with Bjarne Stroustrup about the first publication of "C++ The Programming Language", how he experienced the evolution of the language and they close the interview with an outlook of what is coming in the future.

 

Overload 129 is now available

ACCU’s Overload journal of October 2015 is out. It contains the following C++ related articles.

Overload 129 / PDF

From the journal:

Description : Concepts in C++11 had many false starts. Andrew Sutton show why they are a big deal now they are with us. by Andrew Sutton

Description : Concepts are abstract. Jonathan Coe and Andrew Sutton provide us with a concrete example of their use. by Jonathan Coe

 

 

Improving performance and maintainability through refactoring in C++11 -- Garcia, Stroustrup

garcia-stroustrup.PNGIn the "writing better code" department:

Improving performance and maintainability through refactoring in C++11

by J. Daniel Garcia and Bjarne Stroustrup

Abstract:

Abstraction based programming has been traditionally seen as an approach that improves software quality at the cost of losing performance. In this paper, we explore the cost of abstraction by transforming the PARSEC benchmark fluidanimate application from low-level, hand-optimized C to a higher-level and more general C++ version that is a more direct representation of the algorithms. We eliminate global variables and constants, use vectors of a user-defined particle type rather than vectors of built-in types, and separate the concurrency model from the application model. The result is a C++ program that is smaller, less complex, and measurably faster than the original. The benchmark was chosen to be representative of many applications and our transformations are systematic and based on principles. Consequently, our techniques can be used to improve the performance, flexibility, and maintainability of a large class of programs. The handling of concurrency issues has been collected into a small new library, YAPL.

Bitesize Modern C++ : std::array--Glennan Carnie

Some details about arrays in C++:

Bitesize Modern C++ : std::array

by Glennan Carnie

From the article:

C++98 inherited C’s only built-in container, the array. Arrays of non-class types behave in exactly the same way as they do in C. For class types, when an array is constructed the default constructor is called on each element in the array...

AllocatorAwareContainer: Introduction and pitfalls...--Jonathan Müller

An interesting article about some dangerous allocators:

AllocatorAwareContainer: Introduction and pitfalls of propagate_on_container_XXX defaults

by Jonathan Müller

From the article:

While I was writing the std_allocator adapter of foonathan/memory I've learned some not so well-known facts about the STL Allocator and AllocatorAwareContainer concepts I'd like to share. Let's take a deep breath and dive in into an aspect of the STL containers that isn't that well covered: Allocator storage.

I will explain the comparison properties of Allocators, show the C++11 propagate_on_container_XXX traits and how the combination of the two can lead to an unnecessary pessimization and a probably not widely known case of undefined behavior...

C++ User Group Meetings in October

The monthly overview on upcoming user group meetings:

C++ User Group Meetings in October

by Jens Weller

From the article:

    5.10 C++ UG Dublin - C/C++ Meeting with 3 Talks
    7.10 C++ UG Saint Louis - Intro to Unity\, Scott Meyers "gotchas"\, Group exercise
    7.10 C++ UG Washington, DC - Q & A / Info Sharing
    13.10 C++ UG New York - Joint October C++ Meetup with Empire Hacking
    14.10 C++ UG Utah - Regular Monthly Meeting
    14.10 C++ UG San Francisco/ Bay area - Presentation and Q&A
    19.10 C++ UG Austin - North Austin Monthly C/C++ Pub Social
    20.10 C++ UG Berlin - Thomas Schaub - Introduction to SIMD
    20.10 C++ UG Hamburg - JavaX (really?)
    21.10 C++ UG Washington, DC - Q & A / Info Sharing
    21.10 C++ UG Bristol - Edward Nutting
    21.10 C++ UG Düsseldorf - CppCon trip report & Multimethods
    21.10 C++ UG Arhus - Lego & C++
    24.10 C++ UG Italy - Clang, Xamarin, MS Bridge, Google V8
    28.10 C++ UG San Francisco/ Bay area - Workshop and Discussion Group
    29.10 C++ UG Bremen - C++ User Group

This years C++ Committee papers sorted by mailing and subgroup

An alternative listing of the papers sorted by mailing & subgroups:

This years C++ Committee papers sorted by mailing and subgroup

by Jens Weller

From the article:

I used to do overviews on all papers for a meeting, and when I find the time, I will do this for upcoming meetings again. I will try to post a best-of later, with all the good stuff on concepts, modules and more later. Currently I'm to busy, I just got back from CppCon, and will go to the Qt World Summit next week (meet me there!).

So, in the mean time you can take take a look for yourself, as what follows is the list off all papers submitted this year, sorted by mailings and then subgroups. My awesome paper crawler tool did finally its job correct...