Can you give me General C++ Library Advice

Started by
7 comments, last by Tradone 18 years, 1 month ago
I haven't had a formal education in computer programming, and did not implement C++ STL library classes into my program until two weeks ago. Currently my program is saved in ASCII format but after some research this morning I have found out about the BOOST serialization class and such. Also my program is almost entirely based on parsing and tokenizations and found the BOOST library extremely helpful. I would like to know if there are any other C++ general/popular libraries out there that I should know about before reinventing the wheel and wasteing my time on things that are already out there. Advice would be much appreciated. [Edited by - Tradone on March 12, 2006 12:17:56 PM]
Advertisement
There are thousands of code libraries available for C++. STL and boost are some of the most useful and generic ones. However, the specific libraries you might find handy will depend entirely on the specific things you're trying to do. For instance, Microsoft's MFC and ATL might be really handy if you're making Windows GUI software, but totally useless if you write network servers for Linux.

Wielder of the Sacred Wands
[Work - ArenaNet] [Epoch Language] [Scribblings]

Do you think you can name me a few generic libraries every programmer should know?

looks like every windows application should use MFC.
photoshop, flash all use MFC right?
Quote:Original post by Tradone
Do you think you can name me a few generic libraries every programmer should know?


The C++ standard library, Boost, wxwidgets, FLTK, zlib, the Apache portable runtime (APR), BLAS, LAPACK, the GNU multiprecision library (GMP), the Adaptive Communication Environment (ACE), some database system or other (e.g. PostgreSQL), OpenGL ...

Add to that the libraries directly related to your platform (e.g. Win32) and the tools you need to solve the task at hand.

Quote:
looks like every windows application should use MFC.


Hell no.

Quote:photoshop, flash all use MFC right?


I strongly doubt it.
"Debugging is twice as hard as writing the code in the first place. Therefore, if you write the code as cleverly as possible, you are, by definition, not smart enough to debug it." — Brian W. Kernighan
After some research, I think I made a small little summary, correct me if I am wrong.


WxWidgets: GUI
FLTK: GUI
Zlib: data compression library
Apache portable runtime: bunch of internet related class(?)
LAPACK: solving linear equations
Adaptive Communication Environment: similar to APR, don't really know what it does.
GNU Multi-Precision Library: Arithmetic Calculations
OpenGL: graphics library ( something like magick++ i'm assuming )


Can you help explain what APR or Adaptive Communication Environment really does? thanks!
Quote:Original post by Tradone
Can you help explain what APR or Adaptive Communication Environment really does? thanks!

ACE is a library for networking and concurrency design patterns.

Also, check Loki out. It is focused on reusable design pattern classes, and also has some general utilities like smart pointers and a small object memory allocator. Although I usually prefer the boost version of something if it is implemented in both Loki and boost.
i see, well i just installed boost, and if boost already has a networking class mind as well use boost.

okay, now here's another question.
now let's say I am going to make a webforum with C++.
what kind of libraries would I need?

definately STL.
and I'm thinking definately Boost's serialize class.
Quote:Original post by Tradone
Can you help explain what APR or Adaptive Communication Environment really does? thanks!


APR is a set of C utility routines covering a wide range of application, from memory management to threading to file IO to networking.

It overlaps somewhat with the C++ standard library and Boost, but you did ask for general-purpose libraries and if you're not going to use C++, but C, APR is well worth knowing about.


You can also add STLSoft to the list of general-purpose libraries, and STLPort as a portable drop-in replacement C++ standard library.

Quote:now let's say I am going to make a webforum with C++.
what kind of libraries would I need?


If you're going to make a web forum, you probably shouldn't bother with C++ because, if you do, you're going to have to start by writing a basic web server, or at least, learn to interface with one (meaning you'll need to learn the Apache API).

You should probably either pick up a CGI language, or at least a web service toolkit.
"Debugging is twice as hard as writing the code in the first place. Therefore, if you write the code as cleverly as possible, you are, by definition, not smart enough to debug it." — Brian W. Kernighan
Quote:
If you're going to make a web forum, you probably shouldn't bother with C++ because, if you do, you're going to have to start by writing a basic web server, or at least, learn to interface with one (meaning you'll need to learn the Apache API).

You should probably either pick up a CGI language, or at least a web service toolkit.


What do you mean by starting a basic web server? ( do you mean running the httpd? )
and what would the Apache API do for me?

because I've already been writing a web forum type of program with C++ for the past 8 months without using any libraries like STL or BOOST. now that I found out about the STL class, I plan to somewhat upgrade and rewrite my existing forum. and to some extent include serialization of my map class data.

Well I've already made a forum without Apache API, but I'm guessing that the Apache API may helped me?

[Edited by - Tradone on March 12, 2006 3:22:26 PM]

This topic is closed to new replies.

Advertisement