Note STLSoft-1.9 is now obsolete; please instead use STLSoft 1.10, which may be obtained from https://github.com/synesissoftware/STLSoft-1.10
STLSoft is a suite of C and C++ libraries that provides:
- STL extensions;
- General-purpose utility components;
- Facades over operating-system and technology-specific APIs.
The overarching characteristic of STLSoft is that it is lightweight. That sounds great, 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. UNIXSTL and WinSTL) 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
andwinstl::filesystem_traits
traits classes provide thestat()
andf!stat()
operations,lstat()
is provided only byunixstl::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*
andstd::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
stlsoft::auto_buffer
andstlsoft::scoped_handle
;
NOTE: It is important to understand 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.
... more information TBC as we move towards a full (non-beta) release
There are two main ways to install STLSoft-1.9:
- As downloaded archive, using environment variables;
- Cloning project, using environment variables;
See INSTALL.md for details of these options, and also for an explanation of the top-level build scripts in the project.
T.B.C.
T.B.C.
Defect reports, feature requests, and pull requests are welcome on https://github.com/synesissoftware/STLSoft-1.9.
If you'd like to help out with the project, please raise an issue via GitHub Issues Page - you'll be very welcome!
There are no dependencies
Projects that depend on STLSoft - though for some it is only for test - include:
STLSoft is released under the 3-clause BSD license. See LICENSE for details.