The FAQ list is under (constant) development. If you post a question on GitHub Issues it will be used to create one.
- Q1: "How do I build STLSoft?"
- Q2: "How do I install STLSoft?"
- Q3: "How do I use STLSoft?"
- Q4: "Does STLSoft have unit-tests?"
- Q5: "Is STLSoft still relevant given the widespread support for 'Modern C++'?"
You don't — for ordinary use.
STLSoft is 100% header-only, so application code only needs to #include the requisite headers. We recommend defining an environment variable such as STLSOFT so that you can point projects at new versions without disruption.
Building the project's own examples and tests is optional and is done via CMake (see INSTALL.md).
Basically, there are three ways:
- As downloaded archive, using environment variables;
- Cloning project, using environment variables;
- Cloning project, installing via CMake;
Option 3 is recommended.
See INSTALL.md for details of these options.
Assuming you've installed it using environment variables (as per instructions in Q2), then:
- in your IDE settings, add the include directory
$(STLSOFT)/include; or - in your makefiles, add the include directory
-I$STLSOFT/include(UNIX) or-I%STLSOFT%/include(Windows);
If you installed via CMake, consumers may instead use find_package(STLSoft REQUIRED) and link to STLSoft::STLSoft.
Yes. The 1.11 tree includes a large suite of component- and unit-tests exercised via CMake / CTest and xTests. See INSTALL.md for the first-time install ordering (STLSoft without tests → xTests → STLSoft with tests) that avoids a circular dependency.
This is a good question. The Synesis open-source libraries — including b64, FastFormat, Pantheios, recls, shwild, and more — continue to be maintained in light of contemporary C++ practice, while still supporting a wide range of compilers and platforms. That work informs the future of STLSoft, which may mean further investment in the existing 1.x stream or, eventually, a 2.x stream less burdened by historical compiler-feature detection.