tags:

views:

139

answers:

5

I'm coming to C++ from a .Net background. Knowing how to use the Standard C++ Libraries, and all the syntax, I've never ventured further. Now I'm looking learning a bit more, such as what libraries are commonly used? I want to start getting into Threading but have no idea to start. Is there a library (similar to how .net has System.Threading) out there that will make it a bit easier? I'm specifically looking to do Linux based network programming.

+10  A: 

For C++, Boost is your everything. Threading and networking are among the things it offers. But there's much more:

  • Smart pointers
  • Useful containers not found in the STL, such as fixed-size arrays and hashtables
  • Closures
  • Date/time classes
  • A foreach construct
  • Min/max functions
  • Command line option parsing
  • Regular expressions
Thomas
+2  A: 

If you are looking into network programming and are not interested into GUI, I suggest Boost libraries: in particular, Asio.

Nemanja Trifunovic
+1  A: 

There's no standard multithreading library, but the boost library includes a platform-independent multithreading abstraction that works very well.

Dan Story
+7  A: 

As the others have said, Boost is great. It implements the C++ Technical Report 1 in addition to tons of other stuff, including some mind-blowing template metaprogramming tricks.

For other cross-platform features not provided by Boost, I've had very good luck with a library called Poco. I've worked on commercial projects that incorporated its simple HTTP server, for instance, and it treated us quite well.

sblom
+1 because Poco is really nice and it is tiresome that Boost is the default SO answer to every C++ question.
Duck
+3  A: 

lots of boost suggestions, but Qt is another good option. It's got great support for threading and networking along with pretty much everything else.

http://qt.nokia.com/products

Graphics Noob