Good C++-Libraries

This is a collection of C++-libraries that I have taken a look into and found to be very pleasureable to use. Unklike other library-listings, this one is redacted to only list libraries that use modern C++ and encourage its users to use modern C++. (This is by the way the reason why Qt will never appear in this list.) It is very interessting to note here, that many of the libraries do in fact work with C++98, disprooving excuses that C++11 is needed to write great C++. (Though you should totally use C++14 at this point!)

While I took at least a very short look into the implementation of most (but not all) of the listed libraries and never came across things that made my eyes bleed , I decline to comment on the quality of the implementation. Bad implementations of good APIs can be improved, the reverse rarely ever happens!

In order to be listed, a library must be available under a free license as defined by the FSF.

A library that does not follow the stdlib naming-conventions may still be listed if it is otherwise very well designed and if there is no better alternative (this is why gtkmm is listed), but since it forces it’s users to mix random naming-conventions in their code, thereby creating a huge mess, this can easily become a deciding factor for libraries that are edge-cases.

Libraries for normal work

libpqxx

png++

procxx

NLohmann-JSON

Gtkmm

Frameworks

CppCMS

Experimental Libraries

These libraries do not follow current C++-conventions, but are an attempt to change those. They may be unusual but have great strengths in some areas.

Range-V3

Unit-Testing-Frameworks

Since unit-testing-frameworks have completely different needs than other libraries, they run in their own competition. Since you usually only use macros from them, their naming-conventions are also much less important.

Catch

Boost-Test