I often read that one of the best ways to continue learning how to program is to study great opensource projects. Many people ask about some good quality open source libraries where they can learn about the language in a quality way. So here i recommend some high quality C++ open source libraries which can help you go through.
Boost provides free peer-reviewed portable C++ source libraries.
They emphasize libraries that work well with the C++ Standard Library. Boost libraries are intended to be widely useful, and usable across a broad spectrum of applications. The Boost license encourages both commercial and non-commercial use.We aim to establish “existing practice” and provide reference implementations so that Boost libraries are suitable for eventual standardization. Ten Boost libraries are included in the C++ Standards Committee’s Library Technical Report (TR1) and in the new C++11 Standard. C++11 also includes several more Boost libraries in addition to those from TR1. More Boost libraries are proposed for standardization in C++17.
Since 2006 an intimate week long annual conference related to Boost called C++ Now has been held in Aspen, Colorado each May. Boost has been a participant in the annual Google Summer of Code since 2007.
Very high robustness, including 100% type-safety. It is more robust than: C’s Streams, C++’s IOStreams,Boost.Format and Loki.SafeFormat. Indeed, with the FastFormat.Write API it is impossible to write defective client code!
Very high efficiency. It is faster than: C++’s IOStreams (by ~100-900%), Boost.Format (by ~400-1600%) and Loki.SafeFormat (by ~35-450%). Verify the performance claims for yourself: just type “make test.performance“!
Infinite extensibility. You can extend it to work with any argument type, any output/destination type, and with any format type
I18N/L10N capabilities. The FastFormat.Format API is a replacement-based API (like the printf()-family, Boost.Format and Loki.SafeFormat), and supports the runtime specification of format strings which facilitates L10N
Simple syntax. There are no overloaded operators, no weird insertion operators/operations, and no need to prep your arguments. Just write simple, clear, transparent code, without sacrificing expressiveness for flexibility.
Atomic operation. It doesn’t write out statement elements one at a time, like the IOStreams, so has no atomicity issues
Thread safety. Each statement operates independently from all others, and it works successfully in single and/or multithreaded scenarios
Highly portable. It will work with all good modern C++ compilers; it even works with Visual C++ 6!
Loki is the name of a C++ software library written by Andrei Alexandrescu as part of his book Modern C++ Design.
The library makes extensive use of C++ template metaprogramming and implements several commonly used tools: typelist, functor, singleton, smart pointer, object factory, visitor and multimethods.
Originally the library was only compatible with two of the most standard conforming C++ compilers (CodeWarrior and Comeau C/C++): later efforts have made it usable with a wide array of compilers (including older Visual C++ 6.0, Borland C++ Builder 6.0, and GCC). Compiler vendors used Loki as a compatibility benchmark, further increasing the number of compliant compilers.
Maintenance and further development of Loki has been continued through an open-source community led by Peter Kümmel and Richard Sposato as a SourceForge project. Ongoing contributions by many people have improved the overall robustness and functionality of the library. Loki is not tied to the book anymore as it already has a lot of new components (e.g. – StrongPtr, Printf, and Scopeguard). Loki inspired similar tools and functionality now also present in the Boost library collection.
Pantheios is an Open Source C/C++ Diagnostic Logging API library, offering an optimal combination of 100% type-safety, efficiency, genericity and extensibility. It is simple to use and extend, highly-portable (platform and compiler-independent) and, best of all, it upholds the C tradition of you only pay for what you use.
Pantheios supports diagnostic logging of message statements of arbitrary complexity, consisting of heterogenous types.
Pantheios supports filtering of log messages based on severity level including (but not limited to) the eight levels defined by the SysLog protocol.
Pantheios supports back-end output, individually and in combination, to file, stderr/stdout, SysLog (including a custom implementation of the SysLog protocol for Windows), Windows debugger, Windows event log, COM Error Object, speech, or any custom back-end extension you care to write. Importantly, Pantheios is readily extended to use the existing transport mechanisms of feature-rich diagnostic logging libraries such as ACE, log4cpp, log4cplus, log4cxx.
Pantheios does not contain any compiler-specific or platform-specific constructs. It supports UNIX (including Linux and Mac OS-X), and Windows, and should work with any operating system. It is known to be compatible with Borland (5.5.1+), Comeau (4.3.3+), Digital Mars (8.45+), GCC (3.2+), Intel (6+), Metrowerks (8+), Microsoft Visual C++ (5.0+), and should work with any reasonably modern C++ compiler.
SourceForge.net Logo Pantheios is completely free and includes source released under a BSD-style licence. It is available for download from SourceForge.net
Modern, powerful open source C++ class libraries and frameworks for building network- and internet-based applications that run on desktop, server, mobile and embedded systems.
The POCO C++ Libraries were created by Günter Obiltschnig in 2004 and have since been extended by enthusiastic C++ developers from all over the world. Funding is provided by Applied Informatics and sponsors.
Companies like 454 Life Sciences, HP, Lumiplan, Riverbed, Schneider Electric, Thales and Voltwerk Electronics; open source projects like GLUEscript, MITK, openFrameworks, Open Game Engine and Ogre.
Facades over operating-system and technology-specific APIs.
The overarching characteristic of STLSoft is that it is lightweight. That sounds rather super, but what does it actually mean? Specifically, the STLSoft libraries share the following characteristics:
100% header-only – all components within the libraries are entirely defined within header files, meaning that users need only #include the requisite files to access the functionality.
Intersecting Conformance – similar, but not-identical, components from different projects (e.g. UNIX vs Win32) are structurally conformant (they share compatible syntax, and corresponding semantics, without being related by type) only to the degree of the intersection of identical functionality, rather than employing significant additional functionality to achieve total structural conformance. For example, though both the unixstl::filesystem_traits and winstl::filesystem_traits traits classes provide the stat() and fstat() operations, lstat() is provided only by unixstl::filesystem_traits.
Maximum Cohesion with Minimal Coupling – achieved by extensive use of generalising mechanisms, particularly shims, e.g. types that manipulate character strings are able to interact with arbitrary string types, not just char const* and std::string.
Very High Efficiency – Second only to Robustness, all components in the libraries are implemented with a view to maximum efficient. This is aided by the extensive use of efficient utility classes, such as auto_buffer, and scoped_handle.
It is important to note that STLSoft is not a framework. Each library component is as “thin” as possible to provide its given function. The intent is that STLSoft components are used as building blocks for writing higher level components – applications, classes, libraries, servers. STLSoft has been used extensively in the development of software in all these guises.