October 2015

Random Acts of Optimization—Tony Albrecht

Discussion regarding systematic approach to go about optimization of logic.

Random Acts of Optimization

by Tony Albrecht

From the article:

The three stages mentioned here, while seemingly obvious, are all too often overlooked when programmers seek to optimize. Just to reiterate:

    1. Identification: profile the application and identify the worst performing parts.
    2. Comprehension: understand what the code is trying to achieve and why it is slow.
    3. Iteration: change the code based on step 2 and then re-profile. Repeat until fast enough.

The solution above is not the fastest possible version, but it is a step in the right direction—the safest path to performance gains is via iterative improvements.

Using Variadic Templates cleanly—Florian Weber

Variadics are even more easy to use than we tought:

Using Variadic Templates cleanly

by Florian Weber

From the article:

When one comes across examples for variadic templates, almost always recursion is used to achieve almost everything, for example like this:

// We are lucky: the author correctly used zero
// arguments instead of one as the base-case,
// thereby avoiding code-duplication:
inline void print_to_stream(std::ostream&) {}

template<typename Head, typename...Tail>
void print_to_stream(std::ostream& stream, const Head& h, const Tail&... t) {
  stream << h;
  print_to_stream(stream, t...);

In this article we will see what better alternatives for this rather clumsy hack exist and see how we can write a better version with less code...

Trip report: C++ standards meeting in Kona, October 2015—Stephan T. Lavavej

The fall ISO C++ standards meeting concluded less than 24 hours ago, and our own STL (the person, not the library) has posted the first trip report to Reddit. It was a very successful meeting with considerable progress.

C++17 Progress Update! (Oct 2015)

by Stephan T. Lavavej (aka STL)

Note that this report is focused on an overview of what reached full committee approval, with an emphasis on library features. Important milestones were also achieved to progress other major topics, including modules, contracts, and variant that we hope will reach formal full committee approval at the next meeting or two, and these topics will no doubt be covered in other people's trip reports and commentaries as well.

C++ day in Spain: using std::cpp 2015

The Spanish-language C++ event using std::cpp 2015 will gather C++ Spanish comunity in a full one day free event.

using std::cpp 2015

November 18, 2015

University Carlos III of Madrid in Leganés

For the 3rd year, University Carlos III of Madrid, hosts using std::cpp, an event for C++ software developers held in Spain. Past editions of using std::cpp have had participations around 200 people each year where 75% were professional software developers and the other 25% where academics and students. The event offers a godd opportunity for the Spanish C++ comunity to gather together and exchange experiences about the language as well as to provide udpdated information about the language.

Some program highlights:

  • Concepts Lite (Manu Sánchez, By Tech)
  • Contract based programming in C++ (J. Daniel García, University Carlos III)

You may access to videos and slides from previous years:

For more information you may contact J. Daniel Garcia.

More than you need—Andrzej KrzemieĊ„ski

Some thoughts about what the standard provides by default:

More than you need

by Andrzej Krzemieński

From the article:

The classes you design can do more (in terms of allowed operations) than what you could figure out from just looking at their member function declarations. The C++ Standard defines a number of cases where certain expressions involving your type are valid, even though there are no corresponding member function declarations. Sometimes this is just what you need; but sometimes the additional operations you never asked for can have grave negative impact on your program correctness...


CppCast Episode 31: JUCE with Julian Storer

Episode 31 of CppCast the only podcast for C++ developers by C++ developers. In this episode Rob and Jason are joined by Julian Storer to discuss the JUCE library.

CppCast Episode 31: JUCE with Julian Storer

by Rob Irving and Jason Turner

About the Interviewee:

Jules has been developing audio and library software in C++ for over 15 years, and is the author of the JUCE library, the most widely used framework for audio applications and plugins. Music tech company ROLI acquired JUCE in 2014, and as well as continuing work on library itself, he helps to guide ROLI's other software projects.

He also created the Tracktion audio workstation in 2002, which is still going strong and being used by thousands of recording musicians around the world.

He lives in London, and likes to escape from the world of music technology by playing classical guitar.

Lambda hackery: Overloading, SFINAE and copyrights—Nikos Athanasiou

Lambdas are often miscalled "functions"; learn how to implement some "function only" features in the article:

Lambda hackery: Overloading, SFINAE and copyrights

by Nikos Athanasiou

From the article:

If we think of lambdas as functions we’d might make an attempt to overload them. This attempt is easy to rebut by stating that lambdas are closures ie runtime objects and well … objects, even callable ones, do not overload! (...) The closest thing to a lambda that can overload is its function call operator, so you might already had your “aha!” moment by now. If not, here it is ...