tags:

views:

624

answers:

14

Everyone should know about boost. What are other helpful libraries for C++? If you need to mention specifics (like libcurl, freeimage) please note what they are specific to (web protocol, image loading).

+5  A: 

POCO C++ Librarie

Features

threads, thread synchronization and advanced abstractions for multithreaded programming streams and filesystem access shared libraries and class loading powerful logging and error reporting security and encryption network programming (TCP/IP sockets, HTTP client and HTTP server, FTP, SMTP, POP3, etc.) XML parsing (SAX2 and DOM) and generation configuration file and options handling SQL database access (ODBC, MySQL, SQLite)

yesraaj
+13  A: 

SOCI, http://soci.sourceforge.net/

SOCI is a database access library for C++ that makes the illusion of embedding SQL queries in the regular C++ code, staying entirely within the Standard C++.

Example code:

string name;
int salary;
Person p;

sql << "select name, salary from persons where id = " << id,
       into(name), into(salary);

// Object relational mapping
sql << "select first_name, last_name, date_of_birth "
       "from persons where id = " << id,
       into(p);

// Integration with STL
Rowset<string> rs = (sql.prepare << "select name from persons");
copy(rs.begin(), rs.end(), ostream_iterator<string>(cout, "\n"));
+3  A: 

expat

http://expat.sourceforge.net

http://en.wikipedia.org/wiki/Expat_(XML)

An awesome xml parser :)

Nippysaurus
+12  A: 

Qt -- even if you're not using the GUI capabilities, it's wealth of classes (see here) is stunning.

Wolfgang Plaschg
It does, but the license is more restrictive than SOCI (which uses the Boost license).
Doug Richardson
+1  A: 

For scientific/engineering applications: TNT

Colin
+5  A: 

Crypto++ - encryption library

Ogre3D - 3D graphics

OIS - cross platform input

PixelToaster - 2D software rendering

Anti-Grain Geometry - High quality rendering engine

20th Century Boy
+1  A: 

I use Loki-lib most of the time. It's a generic, policy based library with generic DPs, idioms and other useful code snippets.
Boost is also good.
Ace is very good for distrubuted programming.

the_drow
+3  A: 

CGAL - Computer Graphics Algorithms Library

Also see this introduction to CGAL from Google Tech Talks on YouTube.

Vulcan Eager
+1  A: 

Intels OpenCV for computer vision.

Zitrax
+2  A: 

CxxTest for unit testing.

John D. Cook
+1  A: 

Available C++ libraries FAQ

Piotr Dobrogost
+1  A: 

IntelTBB for better multithreading. (More than just threads and mutexes)

Marcus Lindblom
+1  A: 

SDL for multi-platform graphics.

SurvivalMachine
+1  A: 

STL for everyday C++ programming. It has useful algorithms, containers and data structures.

Joy Dutta