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.
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.
STLSoft is a suite of libraries that provide:
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.