Articles & Books

C++ User Group Meetings in February

The monthly listing of upcoming C++ User Group meetings at Meeting C++:

C++ User Group Meetings in February

by Jens Weller

From the article

The monthly overview on the upcoming C++ User Group meetings! In the shortest month of the year there are still 21 C++ User Groups which are meeting!

There are 7 new C++ User Groups: Sofia, Ho Chi Minh, Iasi, Noida, Macedonia, Buenos Aires, Stuttgart / Ludwigsburg (Qt).

Constructor Failures--Arne Mertz

Constructing or not constructing, that is the question.

Constructor Failures

by Arne Mertz

From the article:

Sometimes we fail to acquire a needed resource or responsibility during the construction of an object. Sometimes the construction of a subobject fails. How can we deal with an incompletely constructed object?

 

Experiments in partition and remove -- Brent Friedman

An analysis and exploration of partition and remove algorithms. By combining aspects of these two, we rediscover useful algorithms that the Standard Library doesn't have.

Experiments in partition and remove

by Brent Friedman

From the article:

The C++ Standard Library exposes dozens of powerful algorithms for use in everyday software. Two of these algorithms, partition and remove_if, provide similar functionality for segregating data. If we dig carefully into implementations of these algorithms, a certain symmetry is exposed. This exploration will lead us to the discovery of useful algorithms that we can employ in our daily engineering work.
This article demonstrates particular algorithm implementations — but it is important to remember that the source code will vary between different implementations of the standard library, and can differ based on what sort of data you pass in.

Using parallelism with boost::future

A new blog entry about parallelism and boost::future:

Using parallelism with boost::future

by Jens Weller

From the article:

... While I'm fine with that the application locks up kind of hard during writing a GB zip file (its only job), I'd like to be as fast as possible. Thats why I decided to parallelize the part of the application that reads the file paths via boost::filesystem...

C++ in 2016

A short overview on what is to expect from C++ in 2016:

C++ in 2016

by Jens Weller

From the article:

Like in the previous years, a short outlook into the fresh year regarding C++...

A customizable framework -- Andrzej Krzemieński

How to write customizable framework which would work on "practically any type". This article is continuation of author previous post: "Overload resolution".

A customizable framework

by Andrzej Krzemieński

From the article:

We want to provide a function (or a set of overloaded functions) that would ‘do the right job’ for ‘practically any type’, or for ‘as many types as possible’. As an example of such ‘job’ consider std::hash: what we want to avoid is the situation, where you want to use some type X as a key in the standard hash-map, but you are refused because std::hash does not ‘work’ for X. In order to minimize the disappointment, the Standard Library makes sure std::hash works with any reasonable built-in or standard-library type. For all the other types, that the Standard Library cannot know in advance, it offers a way to ‘customize’ std::hash so that they can be made to work with hash-maps.

C++11 threads, affinity and hyperthreading -- Eli Bendersky

How to use C++11 threads library for setting various attributes related to thread affinity/hyper-threading.

C++11 threads, affinity and hyperthreading

by Eli Bendersky

From the article:

This post is not a tutorial on C++11 threads, but it uses them as the main threading mechanism to demonstrate its points. It starts with a basic example but then quickly veers off into the specialized area of thread affinities, hardware topologies and performance implications of hyperthreading. It does as much as feasible in portable C++, clearly marking the deviations into platform-specific calls for the really specialized stuff.

Writing modern C++ servers using Wangle--James Perry

Nice use of modern C++:

Writing modern C++ servers using Wangle

by James Perry

From the article:

I mentioned in my previous post that I was able to build a prototype database engine within one day using Facebook’s Wangle so this post explains how I managed that. By the end of this post, you will be able to write a high-performance C++ server using Wangle. This post also serves as a tutorial which will be merged into Wangle’s README.md.

Modern C++ Features – keyword `noexcept`--Arne Mertz

Explications of the noexcept keyword:

Modern C++ Features – keyword `noexcept`

by Arne Mertz

From the article:

I have written about handling exceptions some time ago, and about the levels of exception safety last week. What I have not touched yet are exception specifications. I will catch up on those with this post.

C++98 had the possibility to denote the types of exceptions that could be thrown from a given function by using throw(<exception list>). In theory, the runtime had to check if any exception emitted by the function was indeed in that list or derived from one of the types in the list. If it wasn’t, the handler std::unexpected would be called...

C++ User Group Meetings in January

The monthly update of C++ User Group Meetings at Meeting C++:

C++ User Group Meetings in January 2016

by Jens Weller

From the article:

The monthly overview on upcoming C++ User Group meetings! There is a new C++ User Group in Iasi, Romania and a lot of C++ User Groups which are meeting in January!

Maybe you want to start a C++ User Group in 2016? Also feel free to contact me on the topic!