What modern C++ libraries should be in my toolbox? [closed]

I've been out of the C++ game for about 10 years and I want to get back in and start on a commercial app. What libraries are in use these days?

  • User interface (e.g, wxWidgets, Qt)
  • Database
  • General purpose (e.g. Boost, Loki, STL)
  • Threading
  • Testing
  • Network/sockets

I looking to be cross-platform compatible (as much as possible out-of-the-box).

What libraries to do you rely on? What features do they provide that make them "indispensable"?

See my answer below for a summary.


Cross-platform libraries that are free for commercial (or non-commercial) applications

Feel free to expand this list


  • General Purpose
    • Boost
    • Loki
    • MiLi
    • POCO
    • STL (of course)
    • STXXL (STL re-implementation for extra large data sets)
    • Qt
    • ASL
    • JUCE

  • Audio
    • FMOD
    • Synthesis ToolKit
  • Database
    • SOCI
    • OTL
    • LMDB++
  • Design
    • IoC Frameworks
      • Hypodermic
      • PocoCapsule
      • Wallaroo
  • Documents
    • LibreOffice API
    • PoDoFo
  • Graphics
    • Allegro
    • OGRE
    • SFML
  • GUI
    • FLTK
    • GTK
    • Qt
    • Qwt
    • wxWidgets
    • VTK
  • Hashing
    • MurmurHash3
  • Imaging
    • Boost.GIL
    • CImg
    • DevIL
    • EasyBMP
    • FreeImage
    • ITK
    • OpenCV
  • Logging
    • Boost.Log
    • log4cxx
    • Pantheios
  • Mocking
    • Google Mock
    • Hippo Mocks
    • Turtle (C++ mock object library for Boost)
  • Multimedia
    • openframework
    • Cinder
    • SDL
  • Networking
    • ACE
    • Boost.Asio
    • ICE
  • Testing
    • Boost.Test
    • Google Test
    • UnitTest++
    • doctest
  • Threading
    • Boost.Thread
  • Version Control
    • libgit2
  • Web Application Framework
    • CppCMS
    • Wt
  • XML
    • Libxml2
    • pugixml
    • RapidXml
    • TinyXML
    • Xerces-C++

Links to additional lists of open source C++ libraries:

http://en.cppreference.com/w/cpp/links/libs


Sorry for repeating some of the stuff already written, but:

  • UI: Qt
  • Database: SOCI
  • General purpose: Boost, Loki, STLSoft Libraries, ASL
  • Threading: Boost.Thread
  • Testing: Boost.Test
  • Build tools: Boost.Build, SCons

(Should at least get you started)


On Windows...

ATL for COM development WTL for user interface


CGAL is an excellent c++ library for computational geometry

www.cgal.org


http://loki-lib.sourceforge.net/ might also be good addition.

It's another template library, which introduces typelists, and implementations for various design patterns.

I never used it, but I read Alexandrescu's book to get a better understanding of templates.