I have heard of Boost and ACE as two of the well known C++ libraries. What are the other good C/C++ libraries available?
Does Boost and ACE support session management for web applications written in C/C++?
EDIT: Ok I will try to be domain specific. I am looking for a C/C++ library which could help me maintain session state for a C++ based CGI web application.
Correct way to marshal SIZE_T*?
Difference between use C# and C or C++ on windows mobile
HashCodeBuilder in C++
It handles sessions either in one process per session (when security matters) or multiple sessions per process.
How to get a Windows Service custom Status? [C++/C#]
You can either use the built-in webserver or use it with any webserver that supports FastCGI..
Sharing objects between C# and C++ code
(Also, I'd recommend it over Boost.CGI as it seems to be maintained and feature-complete)..
Returning C/C++ structure array in XML/XSD format
What language is .NET Framework written in?
For general purpose Boost is best of breed (and don't forget about the good old STL), so I don't see the point of looking for something else that will cover much of the same ground, but is not as polished.
As for domain specific you'd have to specify the domain :-).
What interests you? Web applications, scientific programs, GUIs? Specify what you need exactly if you want a good answer.. Boost is a general-purpose library for relatively low-level things.
It's rather complex and advanced though, so you should have a good grasp of C++ before you start with it.
ACE is mainly for synchronization and communication between threads/processes/applications.. If web applications is what you need, I recommend you to strongly consider the language you're picking.
C++ may not be the best direction to go here, unless you have very specific constraints that force your hand..
Ok I will try to be domain specific.CppCMS?.
I am looking for a C/C++ library which could help me maintain session state for a C++ based CGI web application..
- Example of session management: http://cppcms.sourceforge.net/wikipp/en/page/tut_sessions
- Reference: http://cppcms.sourceforge.net/wikipp/en/page/ref_cppcms_session_iface
- Configuration: http://cppcms.sourceforge.net/wikipp/en/page/ref_config#sessions
(although c++0x should have better unicode support natively when the standard is complete).. Boost doesn't yet support sessions, but a CGI library has been proposed which should have sessions.. If you want to use C++ for web applications, consider using CGICC.
Blitz++ is a C++ class library for scientific computing which provides performance on par with Fortran 77/90.. The C++ programming language offers many features useful for tackling complex scientific computing problems: inheritance, polymorphism, generic programming, and operator overloading are some of the most important.
Unfortunately, these advanced features came with a hefty performance pricetag: until recently, C++ lagged behind Fortran's performance by anywhere from 20% to a factor of ten.
As a result, the adoption of C++ for scientific computing has been slow.. Is there a way to soup up C++ so that we can keep the advanced language features but ditch the poor performance? This is the goal of the Blitz++ project: to develop techniques which will enable C++ to rival -- and in some cases even exceed -- the speed of Fortran for numerical computing, while preserving an object-oriented interface.
The Blitz++ Numerical Library is being constructed as a testbed for these techniques.
. Recent benchmarks show C++ encroaching steadily on Fortran's high-performance monopoly, and for some benchmarks, C++ is even faster than Fortran! These results are being obtained not through better optimizing compilers, preprocessors, or language extensions, but through the use of template techniques.
By using templates cleverly, optimizations such as loop fusion, unrolling, tiling, and algorithm specialization can be performed automatically at compile time.. Another goal of Blitz++ is to extend the conventional dense array model to incorporate new and useful features.
Some examples of such extensions are flexible storage formats, tensor notation and index placeholders..