Synesis Software Training Courses

The STLSoft Showcase

STLSoft is a collection of libraries that provide:

  • STL extensions, including new collection, container and iterator types, and new iterators and iterator adaptors
  • Facades over operating-system and third-party library APIs
  • Compiler/operating-system/feature discrimination facilities
  • Low-level, high-performance components

The STLSoft libraries have been evolving in a public form since 2002, and now support commercial developments and several best-of-breed software libraries, including:

Starting out as a research exercise, the libraries have accreted a degree of cruft - ugly/ill-conceived/unused components - that tend to disguise the many valuable facilities. A long-term effort is underway to correct this, expected to be complete with version 1.11. But in the mean-time, users of STLSoft 1.9 can learn to find and use many of the hidden jewels by attending this course, an example-based guide to getting started with STLSoft.

Attendees will be introduced to a selection of the best features from STLSoft as they follow along with the development of several small, but non-trivial, programs, solving real problems in the form of simple, expressive and robust programs.


Intermediate. Assumes prior experience of C++.


Presentation. Audience members are encouraged to follow along if they wish.


1 day: lecture + question & answer session

Material Covered

  • Introduction to STLSoft
    • A (very) brief history
  • Understanding STLSoft
    • By Project:
      • STLSoft
      • UNIXSTL
      • WinSTL
      • PlatformSTL
      • COMSTL
      • ACESTL
      • ATLSTL
      • MFCSTL
      • InetSTL
    • By Library:
      • Collection
      • Container
      • Conversion
      • DL
      • File System
      • Iterator
      • Memory
      • Performance
      • Smart Pointer
      • String
      • Synchronisation
      • TMP (Template Meta-Programming)
      • Utility
      • ... and others ...
    • The Principle of Intersecting Conformance
  • Using STLSoft
    • Downloading
    • Installing
    • Working with STLSoft 1.10 alpha releases
  • Components:
    • stlsoft::auto_buffer<> high-performance buffer
    • stlsoft::fixed_array_N containers
    • stlsoft::frequency_map container
    • stlsoft::ostream_iterator<> iterator adaptor
    • stlsoft::cstring_contatenator<> and stlsoft::string_contatenator<> iterator adaptors
    • stlsoft::integer_to_string() high-performance conversion functions
    • stlsoft::member_selector<> iterator adaptors
    • stlsoft::scoped_handle<> smart pointer
    • stlsoft::string_tokeniser<> tokeniser class
    • stlsoft::string_view<> string view class
    • stlsoft::true_typedef<> type-enforcer adaptor
    • stlsoft::truncation_cast<> cast operator and stlsoft::truncation_test<>() cast function
    • stlsoft::unrecoverable unrecoverable exception class
    • platformstl::dl_call() shared object function invocator
    • platformstl::performance_counter
    • platformstl::file_lines
    • platformstl::filesystem_traits
    • platformstl::memory_mapped_file
    • platformstl::properties_file
    • unixstl::readdir_sequence and unixstl::glob_sequence filesystem search sequences
    • winstl::findfile_sequence filesystem search sequence
    • winstl::error_desc
    • comstl::collection_sequence<> collection adaptor
    • The Windows Registry components
    • The String Access Shims
    • The Properties components
    • The Synchronisation components