From beb13b54e74f8d5e87c3ebdfc7f365db6cf8ac1a Mon Sep 17 00:00:00 2001 From: Matt Wilson Date: Wed, 29 Jul 2026 18:58:23 +1000 Subject: [PATCH 01/24] chore: standardised .gitattributes file --- .gitattributes | 21 ++++++++------------- 1 file changed, 8 insertions(+), 13 deletions(-) diff --git a/.gitattributes b/.gitattributes index 847b22dd..e6605d10 100644 --- a/.gitattributes +++ b/.gitattributes @@ -1,22 +1,17 @@ *.c linguist-language=C -*.h linguist-language=C - -*.cpp linguist-language=C++ -*.hpp linguist-language=C++ -*.cxx linguist-language=C++ -*.hxx linguist-language=C++ - *.cmake linguist-language=CMake - *.cmd linguist-detectable=false -*.html linguist-detectable=false -*.sh linguist-detectable=false +*.cpp linguist-language=C++ +*.cxx linguist-language=C++ *.dsp linguist-detectable=false *.dsw linguist-detectable=false +*.h linguist-language=C +*.hpp linguist-language=C++ +*.html linguist-detectable=false +*.hxx linguist-language=C++ +*.sh linguist-detectable=false *.sln linguist-detectable=false -*.vimrc linguist-detectable=false *.vcxproj linguist-detectable=false - +*.vimrc linguist-detectable=false CMakeLists.txt linguist-language=CMake makefile linguist-detectable=false - From efcd56398395a397a3ad6d33aa3328cf3a162877 Mon Sep 17 00:00:00 2001 From: Matt Wilson Date: Wed, 29 Jul 2026 19:02:15 +1000 Subject: [PATCH 02/24] chore: standardised .vimrc file --- .vimrc | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/.vimrc b/.vimrc index 3be09bc5..1bf33a0e 100644 --- a/.vimrc +++ b/.vimrc @@ -17,12 +17,12 @@ set fixeol set list set listchars=tab:->,trail:-,extends:>,precedes:<,nbsp:+ -" editor.detectIndentation: false — global defaults (editor.tabSize: 2, insertSpaces: false) -set tabstop=2 -set shiftwidth=2 -set softtabstop=2 -set noexpandtab +" editor.detectIndentation: false — global defaults (editor.tabSize: 4, insertSpaces: true) set colorcolumn=76 +set expandtab +set shiftwidth=4 +set softtabstop=4 +set tabstop=4 " colorcolumn draws a full-column tint in Vim (not a VS Code-style 1px line). " Keep it subtle via the ColorColumn highlight group; reapply after colorscheme changes. @@ -46,6 +46,9 @@ augroup sis_c_cxx " [c] / [cpp] autocmd FileType c,cpp setlocal expandtab tabstop=4 shiftwidth=4 softtabstop=4 colorcolumn=60,64,68,72,76 + " [rust] + autocmd FileType rs setlocal expandtab tabstop=4 shiftwidth=4 softtabstop=4 colorcolumn=76 + " [cmake] autocmd FileType cmake setlocal noexpandtab tabstop=4 shiftwidth=4 softtabstop=4 From 568437013356005434dbb98c9ac41beec95bf35a Mon Sep 17 00:00:00 2001 From: Matt Wilson Date: Wed, 29 Jul 2026 19:10:04 +1000 Subject: [PATCH 03/24] chore: VS Code settings --- .vscode/settings.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.vscode/settings.json b/.vscode/settings.json index 424702b5..3fe51d2b 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -178,5 +178,5 @@ }, "files.insertFinalNewline": true, "files.trimTrailingWhitespace": true, + "git.mergeEditor": false, } - From 5b51010acb12ebb9225426acd14357a410b8f873 Mon Sep 17 00:00:00 2001 From: Matt Wilson Date: Wed, 29 Jul 2026 19:15:52 +1000 Subject: [PATCH 04/24] chore: standardised markdown files --- AUTHORS.md | 2 +- EXAMPLES.md | 2 +- HISTORY.md | 2 +- NEWS.md | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/AUTHORS.md b/AUTHORS.md index 4dda311e..24e7c058 100644 --- a/AUTHORS.md +++ b/AUTHORS.md @@ -1,4 +1,4 @@ -# STLSoft - Authors +# STLSoft - Authors ## Major Contributors: diff --git a/EXAMPLES.md b/EXAMPLES.md index caa4783d..c4e388a6 100644 --- a/EXAMPLES.md +++ b/EXAMPLES.md @@ -1,4 +1,4 @@ -# STLSoft Examples +# STLSoft Examples | Name | Source & Description | Platform | Summary | | ---- | -------------------- | -------- | ------- | diff --git a/HISTORY.md b/HISTORY.md index 340a53d4..4eb1e724 100644 --- a/HISTORY.md +++ b/HISTORY.md @@ -1,4 +1,4 @@ -# STLSoft - History +# STLSoft - History ---- diff --git a/NEWS.md b/NEWS.md index 84568964..5d1aead3 100644 --- a/NEWS.md +++ b/NEWS.md @@ -1,4 +1,4 @@ -# STLSoft - News +# STLSoft - News | Date | News Item | From 27ed61a5574f95f4ee0d790e8aa3ad614db0e8c8 Mon Sep 17 00:00:00 2001 From: Matt Wilson Date: Wed, 29 Jul 2026 19:27:13 +1000 Subject: [PATCH 05/24] chore: README.md badges --- README.md | 123 ++++++++++++++++++++++++++++-------------------------- 1 file changed, 63 insertions(+), 60 deletions(-) diff --git a/README.md b/README.md index 72e93654..9292b3a6 100644 --- a/README.md +++ b/README.md @@ -1,44 +1,46 @@ # STLSoft 1.11 +*... robust, lightweight, cross-platform, template software ...* + + +![C](https://img.shields.io/badge/C-00599C?style=flat&logo=c&logoColor=white) +![C++](https://img.shields.io/badge/C%2B%2B-00599C?style=flat&logo=c%2B%2B&logoColor=white) [![License](https://img.shields.io/badge/License-BSD_3--Clause-blue.svg)](https://opensource.org/licenses/BSD-3-Clause) [![GitHub release](https://img.shields.io/github/v/release/synesissoftware/STLSoft.svg)](https://github.com/synesissoftware/STLSoft/releases/latest) [![Last Commit](https://img.shields.io/github/last-commit/synesissoftware/STLSoft)](https://github.com/synesissoftware/STLSoft/commits/master) +[![CMake on multiple platforms](https://github.com/synesissoftware/STLSoft/actions/workflows/cmake-multi-platform.yml/badge.svg)](https://github.com/synesissoftware/STLSoft/actions/workflows/cmake-multi-platform.yml) -*... robust, lightweight, cross-platform, template software ...* - -![C++](https://img.shields.io/badge/c++-%2300599C.svg?style=for-the-badge&logo=c%2B%2B&logoColor=white) -![C](https://img.shields.io/badge/c-%2300599C.svg?style=for-the-badge&logo=c&logoColor=white) ## Table of Contents -- [Introduction](#introduction) -- [Installation](#installation) -- [Components](#components) - - [Subprojects](#subprojects) - - [Libraries](#libraries) -- [Examples](#examples) -- [Project Information](#project-information) - - [Where to get help](#where-to-get-help) - - [Contribution guidelines](#contribution-guidelines) - - [Dependencies](#dependencies) - - [Test-only dependencies](#test-only-dependencies) - - [Related projects](#related-projects) - - [License](#license) +* [Introduction](#introduction) +* [Installation](#installation) +* [Components](#components) + * [Subprojects](#subprojects) + * [Libraries](#libraries) +* [Examples](#examples) +* [Project Information](#project-information) + * [Where to get help](#where-to-get-help) + * [Contribution guidelines](#contribution-guidelines) + * [Dependencies](#dependencies) + * [Test-only dependencies](#test-only-dependencies) + * [Related projects](#related-projects) + * [License](#license) ## Introduction **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. +* 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` and `winstl::filesystem_traits` traits classes provide the `stat()` and `fstat()` operations, `lstat()` is provided only by the former; -- **Maximum Cohesion with Minimal Coupling** - achieved by extensive use of generalising mechanisms, such as "*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** - along with *Robustness*, all components in the libraries are implemented with a view to maximum _Efficiency_. This is aided by the extensive use of efficient utility classes, such as `stlsoft::auto_buffer` and `stlsoft::scoped_handle`; +* "**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` and `winstl::filesystem_traits` traits classes provide the `stat()` and `fstat()` operations, `lstat()` is provided only by the former; +* **Maximum Cohesion with Minimal Coupling** - achieved by extensive use of generalising mechanisms, such as "*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** - along with *Robustness*, all components in the libraries are implemented with a view to maximum _Efficiency_. This is aided by the extensive use of efficient utility classes, such as `stlsoft::auto_buffer` and `stlsoft::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. @@ -79,40 +81,40 @@ The following significant sub-projects are provided: The significant libraries include: - * **algorithms** - T.B.C. - * **automation** - T.B.C. - * **clipboard** - T.B.C. - * **collections** - T.B.C. - * **containers** - general- and special-purpose containers, such as `stlsoft::frequency_map<>`; - * **controls** - T.B.C. - * **conversion** - T.B.C. - * **diagnostics** - T.B.C. - * **dl** - dynamic-library loading and invocation (for both **Unix** and **Windows**); - * **filesystem** - T.B.C. - * **function_adaptors** - T.B.C. - * **functional** - T.B.C. - * **iterator** - T.B.C. - * **locale** - T.B.C. - * **memory** - T.B.C. - * **meta** - T.B.C. - * **network** - T.B.C. - * **performance** - T.B.C. - * **process** - T.B.C. - * **quality** - T.B.C. - * **reactor** - T.B.C. - * **registry** - T.B.C. - * **resource** - T.B.C. - * **security** - T.B.C. - * **shell** - T.B.C. - * **shims** - T.B.C. - * **smartptr** - T.B.C. - * **speech** - T.B.C. - * **string** - T.B.C. - * **synch** - T.B.C. - * **system** - T.B.C. - * **time** - T.B.C. - * **typelib** - T.B.C. - * **view** - T.B.C. +* **algorithms** - T.B.C. +* **automation** - T.B.C. +* **clipboard** - T.B.C. +* **collections** - T.B.C. +* **containers** - general- and special-purpose containers, such as `stlsoft::frequency_map<>`; +* **controls** - T.B.C. +* **conversion** - T.B.C. +* **diagnostics** - T.B.C. +* **dl** - dynamic-library loading and invocation (for both **Unix** and **Windows**); +* **filesystem** - T.B.C. +* **function_adaptors** - T.B.C. +* **functional** - T.B.C. +* **iterator** - T.B.C. +* **locale** - T.B.C. +* **memory** - T.B.C. +* **meta** - T.B.C. +* **network** - T.B.C. +* **performance** - T.B.C. +* **process** - T.B.C. +* **quality** - T.B.C. +* **reactor** - T.B.C. +* **registry** - T.B.C. +* **resource** - T.B.C. +* **security** - T.B.C. +* **shell** - T.B.C. +* **shims** - T.B.C. +* **smartptr** - T.B.C. +* **speech** - T.B.C. +* **string** - T.B.C. +* **synch** - T.B.C. +* **system** - T.B.C. +* **time** - T.B.C. +* **typelib** - T.B.C. +* **view** - T.B.C. As **STLSoft** approaches an official release we will provide increasing information on the above _sub-projects_ and _libraries_. @@ -128,16 +130,19 @@ Examples are provided in the ```examples``` directory, along with a markdown des [GitHub Page](https://github.com/synesissoftware/STLSoft "GitHub Page") + ### Contribution guidelines Defect reports, feature requests, and pull requests are welcome on https://github.com/synesissoftware/STLSoft. If you'd like to help out with the project, please raise an issue via [GitHub Issues Page](https://github.com/synesissoftware/STLSoft/issues "GitHub Issues Page") - you'll be very welcome! + ### Dependencies There are no dependencies for installation and use of **STLSoft**. + #### Test-only dependencies The component-/unit-tests depend on the **xTests** project: @@ -145,7 +150,6 @@ The component-/unit-tests depend on the **xTests** project: * [xTests](http://github.com/synesissoftware/xTests/) - ### Related projects Projects that depend on **STLSoft** - though for some it is only for test - include: @@ -168,4 +172,3 @@ Projects that depend on **STLSoft** - though for some it is only for test - incl - From d877f8f9ed77f876287f839b1e70e0e51e0a7617 Mon Sep 17 00:00:00 2001 From: Matt Wilson Date: Wed, 29 Jul 2026 19:50:44 +1000 Subject: [PATCH 06/24] chore: TODO.md standardisation --- TODO.md | 82 +++++++++++++++++++++++++++++---------------------------- 1 file changed, 42 insertions(+), 40 deletions(-) diff --git a/TODO.md b/TODO.md index 48e97e2b..f956484f 100644 --- a/TODO.md +++ b/TODO.md @@ -5,21 +5,22 @@ ## Table of Contents -- [Functional improvements](#functional-improvements) - - [Code changes (1.10.x)](#code-changes-110x) - - [Code changes (1.11.x)](#code-changes-111x) - - [Code changes (1.12+)](#code-changes-112) - - [abandoned TODOs](#abandoned-todos) -- [Performance improvements](#performance-improvements) -- [Packaging improvements](#packaging-improvements) - - [Administrative (1.10.x)](#administrative-110x) - - [Administrative (1.11.x)](#administrative-111x) - - [Building/executing automated tests (1.11.x)](#buildingexecuting-automated-tests-111x) - - [Administrative (1.12+)](#administrative-112) +* [Functional improvements](#functional-improvements) + * [Code changes (1.10.x)](#code-changes-110x) + * [Code changes (1.11.x)](#code-changes-111x) + * [Code changes (1.12+)](#code-changes-112) + * [abandoned TODOs](#abandoned-todos) +* [Performance improvements](#performance-improvements) +* [Packaging improvements](#packaging-improvements) + * [Administrative (1.10.x)](#administrative-110x) + * [Administrative (1.11.x)](#administrative-111x) + * [Building/executing automated tests (1.11.x)](#buildingexecuting-automated-tests-111x) + * [Administrative (1.12+)](#administrative-112) ## Functional improvements + ### Code changes (1.10.x) * [ ] GitHub README.md badges - version, build, etc; @@ -47,7 +48,7 @@ * [ ] abstracting out string stuff (into `stlsoft::`); * [ ] sorting the "safe-string" stuff; * [ ] abstracted file-system operations such as `#make_writeable()` / `#make_readonly()`; -* [x] ~~~**winstl/api/internal/get_home_directory_.h**~~~ - ✅; + * [x] ~~~**winstl/api/internal/get_home_directory_.h**~~~ - ✅; * [x] ~~~add `WINSTL_API_INTERNAL_System_get_home_directory_a_()` / `WINSTL_API_INTERNAL_System_get_home_directory_w_()`~~~ - ✅; * [x] ~~~tries first for `"USERPROFILE"` and then falls back to `"HOMEDRIVE"` and `"HOMEPATH"`~~~ - ✅; * [x] ~~~implement `winstl_C_get_home_directory_a()` / `winstl_C_get_home_directory_w()` (**winstl/system/directory_functions.h**) in terms of `WINSTL_API_INTERNAL_System_get_home_directory_a_()` / `WINSTL_API_INTERNAL_System_get_home_directory_w_()`~~~ - ✅; @@ -57,13 +58,13 @@ * [x] ~~~`unixstl::glob_sequence` add `skipHiddenFiles` and `skipHiddenDirs`~~~ - ✅; * [x] ~~~`unixstl::readdir_sequence` add `skipHiddenFiles` and `skipHiddenDirs`~~~ - ✅; * [ ] standardise (via **INTERNAL**) of following: - * [x] ~~~`ExpandEnvironmentStringsA/W()`~~~ - ✅: - * [x] ~~~`GetEnvironmentVariableA/W()`~~~ - ✅: - * [x] ~~~`GetModuleFileNameA/W()`~~~ - ✅: - * [x] ~~~`GetSystemDirectoryA/W()`~~~ - ✅: - * [x] ~~~needs to set `ERROR_INSUFFICIENT_BUFFER`~~~ - ✅; - * [x] ~~~`GetWindowsDirectoryA/W()`~~~ - ✅: - * [x] ~~~needs to set `ERROR_INSUFFICIENT_BUFFER`~~~ - ✅; + * [x] ~~~`ExpandEnvironmentStringsA/W()`~~~ - ✅; + * [x] ~~~`GetEnvironmentVariableA/W()`~~~ - ✅; + * [x] ~~~`GetModuleFileNameA/W()`~~~ - ✅; + * [x] ~~~`GetSystemDirectoryA/W()`~~~ - ✅; + * [x] ~~~needs to set `ERROR_INSUFFICIENT_BUFFER`~~~ - ✅; + * [x] ~~~`GetWindowsDirectoryA/W()`~~~ - ✅; + * [x] ~~~needs to set `ERROR_INSUFFICIENT_BUFFER`~~~ - ✅; ### Code changes (1.12+) @@ -110,6 +111,7 @@ ## Packaging improvements + ### Administrative (1.10.x) * [ ] GitHub README.md image features - version, build, etc; @@ -134,27 +136,27 @@ ### Building/executing automated tests (1.11.x) - | C++ | C | Clang 15.0 (macOS, ARM64) | Clang 17.0 (macOS, x64) | GCC 11.4 (Linux) | GCC 13.2 (Linux) | GCC 14.2 (Linux) | GCC 14.2 (MinGW, Windows) | Visual C++ 17.x (Windows) | - | ----- | --- | :-----------------------: | :---------------------: | :---------------: | :---------------: | :---------------: | :-----------------------: | :-----------------------: | - | 23 | 23 | | ✅ | | ✅ | ✅ | | | - | 23 | 17 | | ✅ | | | | | | - | 20 | 23 | | ✅ | | | | | | - | 20 | 17 | | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | - | 20 | 11 | | ✅ | | | | | | - | 20 | 99 | | ✅ | | | | | | - | 20 | 90 | | ✅ | | | | | | - | 17 | 17 | | ✅ | ✅ | ✅ | ✅ | | ✅ | - | 17 | 11 | | ✅ | | | | ✅ | | - | 17 | 99 | | ✅ | | | | | | - | 17 | 90 | | ✅ | | | | | | - | 14 | 11 | | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | - | 14 | 99 | | ✅ | | | | | | - | 14 | 90 | | ✅ | | | | | ✅ | - | 11 | 11 | | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | - | 11 | 99 | | ✅ | | | ✅ | | | - | 11 | 90 | | ✅ | | | | | | - | 98 | 99 | | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | - | 98 | 90 | | ✅ | | ❌ | ❌ | | ✅ | +| C++ | C | Clang 15.0 (macOS, ARM64) | Clang 17.0 (macOS, x64) | GCC 11.4 (Linux) | GCC 13.2 (Linux) | GCC 14.2 (Linux) | GCC 14.2 (MinGW, Windows) | Visual C++ 17.x (Windows) | +| ----- | --- | :-----------------------: | :---------------------: | :---------------: | :---------------: | :---------------: | :-----------------------: | :-----------------------: | +| 23 | 23 | | ✅ | | ✅ | ✅ | | | +| 23 | 17 | | ✅ | | | | | | +| 20 | 23 | | ✅ | | | | | | +| 20 | 17 | | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| 20 | 11 | | ✅ | | | | | | +| 20 | 99 | | ✅ | | | | | | +| 20 | 90 | | ✅ | | | | | | +| 17 | 17 | | ✅ | ✅ | ✅ | ✅ | | ✅ | +| 17 | 11 | | ✅ | | | | ✅ | | +| 17 | 99 | | ✅ | | | | | | +| 17 | 90 | | ✅ | | | | | | +| 14 | 11 | | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| 14 | 99 | | ✅ | | | | | | +| 14 | 90 | | ✅ | | | | | ✅ | +| 11 | 11 | | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| 11 | 99 | | ✅ | | | ✅ | | | +| 11 | 90 | | ✅ | | | | | | +| 98 | 99 | | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| 98 | 90 | | ✅ | | ❌ | ❌ | | ✅ | ### Administrative (1.12+) From c1dda1387038be862326ccbcf37efedd10b34dc3 Mon Sep 17 00:00:00 2001 From: Matt Wilson Date: Thu, 30 Jul 2026 14:41:07 +1000 Subject: [PATCH 07/24] fix --- .github/workflows/ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 8173ffce..7af08516 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -4,7 +4,7 @@ on: push: branches: - master - - main + - dev - ver - rc4 - rc5 From 810d16bd6dbd43537e09336be1f2fa3640c671a7 Mon Sep 17 00:00:00 2001 From: Matt Wilson Date: Thu, 30 Jul 2026 14:50:42 +1000 Subject: [PATCH 08/24] tidy --- CMakeLists.txt | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index c95b6586..946df499 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -5,7 +5,7 @@ # Purpose: Top-level CMake lists file for STLSoft # # Created: 31st March 2021 -# Updated: 15th July 2026 +# Updated: 30th July 2026 # # ######################################################################## # @@ -46,8 +46,8 @@ string(REGEX MATCH "#${RX_WS}*define${RX_WS}+_?${RX_PROJ_TAG}_VER_MAJOR${RX_WS}+ set(_VERSION_MAJOR ${CMAKE_MATCH_1}) string(REGEX MATCH "#${RX_WS}*define${RX_WS}+_?${RX_PROJ_TAG}_VER_MINOR${RX_WS}+([0-9]+)" MINOR_DUMMY ${_header_file}) set(_VERSION_MINOR ${CMAKE_MATCH_1}) -string(REGEX MATCH "#${RX_WS}*define${RX_WS}+_?${RX_PROJ_TAG}_VER_PATCH${RX_WS}+([0-9]+)" PATCH_DUMMY ${_header_file}) -set(_VERSION_PATCH ${CMAKE_MATCH_1}) +string(REGEX MATCH "#${RX_WS}*define${RX_WS}+_?${RX_PROJ_TAG}_VER_(PATCH|REVISION)${RX_WS}+([0-9]+)" PATCH_DUMMY ${_header_file}) +set(_VERSION_PATCH ${CMAKE_MATCH_2}) # set project version number here set(PROJECT_VERSION_MAJOR ${_VERSION_MAJOR}) @@ -122,6 +122,8 @@ include(TargetMacros) option(BUILD_EXAMPLES "Build examples" ON) +option(BUILD_TESTING "Build tests" ON) + # ###################################### # features From a77e530c64223589e07620dc87e740149cb4ac6e Mon Sep 17 00:00:00 2001 From: Matt Wilson Date: Thu, 30 Jul 2026 15:00:14 +1000 Subject: [PATCH 09/24] chore: README badges --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 9292b3a6..857aac21 100644 --- a/README.md +++ b/README.md @@ -8,7 +8,7 @@ [![License](https://img.shields.io/badge/License-BSD_3--Clause-blue.svg)](https://opensource.org/licenses/BSD-3-Clause) [![GitHub release](https://img.shields.io/github/v/release/synesissoftware/STLSoft.svg)](https://github.com/synesissoftware/STLSoft/releases/latest) [![Last Commit](https://img.shields.io/github/last-commit/synesissoftware/STLSoft)](https://github.com/synesissoftware/STLSoft/commits/master) -[![CMake on multiple platforms](https://github.com/synesissoftware/STLSoft/actions/workflows/cmake-multi-platform.yml/badge.svg)](https://github.com/synesissoftware/STLSoft/actions/workflows/cmake-multi-platform.yml) +[![CMake on multiple platforms](https://github.com/synesissoftware/STLSoft/actions/workflows/ci.yml/badge.svg)](https://github.com/synesissoftware/STLSoft/actions/workflows/ci.yml) ## Table of Contents From 2da7ac7ab48c8fd66e34d5073e6e05873024e262 Mon Sep 17 00:00:00 2001 From: Matt Wilson Date: Fri, 31 Jul 2026 06:38:08 +1000 Subject: [PATCH 10/24] whitespace --- README.md | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/README.md b/README.md index 857aac21..40e2414e 100644 --- a/README.md +++ b/README.md @@ -16,16 +16,16 @@ * [Introduction](#introduction) * [Installation](#installation) * [Components](#components) - * [Subprojects](#subprojects) - * [Libraries](#libraries) + * [Subprojects](#subprojects) + * [Libraries](#libraries) * [Examples](#examples) * [Project Information](#project-information) - * [Where to get help](#where-to-get-help) - * [Contribution guidelines](#contribution-guidelines) - * [Dependencies](#dependencies) - * [Test-only dependencies](#test-only-dependencies) - * [Related projects](#related-projects) - * [License](#license) + * [Where to get help](#where-to-get-help) + * [Contribution guidelines](#contribution-guidelines) + * [Dependencies](#dependencies) + * [Test-only dependencies](#test-only-dependencies) + * [Related projects](#related-projects) + * [License](#license) ## Introduction From b40fce4d5fc39bc7186670fc60a40f7a85e7fb1c Mon Sep 17 00:00:00 2001 From: Matt Wilson Date: Fri, 31 Jul 2026 06:48:38 +1000 Subject: [PATCH 11/24] chore: renamed **CHANGES.txt** => **CHANGES.md** --- CHANGES.txt => CHANGES.md | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename CHANGES.txt => CHANGES.md (100%) diff --git a/CHANGES.txt b/CHANGES.md similarity index 100% rename from CHANGES.txt rename to CHANGES.md From 5b3dda52ce4da3d119d6f60379e7896efd043939 Mon Sep 17 00:00:00 2001 From: Matt Wilson Date: Fri, 31 Jul 2026 06:58:05 +1000 Subject: [PATCH 12/24] chore: renamed **CHANGES.txt** => **CHANGES.md** --- CHANGES.md | 15038 ++++++++++----------------------------------------- 1 file changed, 2903 insertions(+), 12135 deletions(-) diff --git a/CHANGES.md b/CHANGES.md index 0d5d415a..39281223 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -1,12664 +1,3432 @@ -============================================================================ -STLSoft - Changes - -; Created: 29th March 2002 -; Updated: 29th July 2026 - -============================================================================ - - ************************************** - * Change key: * - * * - * ~ means something has changed * - * + means a new addition * - * - means removal of something * - * * means a general bullet-point * - * * - ************************************** - - -Changes for 1.11.1-rc4 (29th July 2026) - -General: -======== - - * Added GitHub Actions CI (**.github/workflows/ci.yml**) on macOS, Linux, and Windows with **clang**, **gcc**, **MinGW**, and **Visual C++** (**cl**); - * CI jobs: six independent **ci-cell.yml** reusable workflows (build + parallel run sub-jobs per compiler/OS) plus **install-smoke**; - * MSVC CI disables **find_package(MFC)** (**CMAKE_DISABLE_FIND_PACKAGE_MFC**) — GHA has MFC headers but not **_AFXDLL** / **/MD** linkage for mfcstl tests; - * Visual C++ 18.x recognition in **stlsoft.h** (for current MSVC toolsets on **windows-latest**); - * Fixed **winstl::codepage_sequence::data()** — now returns **m_cpids.data()** (was missing **return**); - * Fixed **winstl_C_printf_debug_string()** — compare buffer length via **STLSOFT_C_CAST(int, STLSOFT_NUM_ELEMENTS(msg))** (signed/unsigned comparison with **/WX**); - * Clang cccap: 64-bit sized types use **`long long`** (not **`__INT64_TYPE__`**) so they stay distinct from **`long`** on Linux LP64 — fixes redefinition of overloads guarded by **STLSOFT_CF_LONG_DISTINCT_INT_TYPE** (e.g. **try_parse_to**); - * Allocators: reject element counts above **max_size()** before **`n * sizeof(T)`** (fixes GCC **`-Werror=alloc-size-larger-than=`**); **pid_sequence** avoids **`size() - 1`** underflow when eliding PIDs; - * **test.unit.versions** — aligned with **1.11.1-rc4** (**_STLSOFT_VER_1_11_1_RC4**); - * MinGW compatibility in **winstl/util/struct_comparers.hpp** — omit **NETWORK_APP_INSTANCE_EA**, **POWER_LIMIT_VALUE**, **SHUFFLE_FILE_DATA** byte comparers when **STLSOFT_MINGW** is defined; - * Test/example runner scripts — **--unit-only** / **--component-only** on **run_all_unit_tests.sh**; new **run_all_examples.sh** / **.cmd**; **run_all_unit_tests.cmd**, **run_all_scratch_tests.cmd**, and **execute_performance_tests.cmd** aligned with shell counterparts; - * code generation scripts; +# **STLSoft** Changes -Details: -======== - -Test/example runner scripts: - * **run_all_unit_tests.sh** — + **--unit-only**, **--component-only** (mutually exclusive); - * **run_all_unit_tests.cmd** — aligned with **.sh** (**SIS_CMAKE_BUILD_DIR**, **-M**, **--list-only**, unit/component filters, exit status); - * **run_all_scratch_tests.cmd** — aligned with **run_all_scratch_tests.sh**; - * **run_all_examples.sh** / **run_all_examples.cmd** — run (or list) all programs under the CMake **examples/** build tree; **--skip-interactive** skips GUI examples listed in **.github/ci_skip_interactive_examples.txt** (used by CI on headless runners; skip matching normalises Windows paths and CRLF line endings); - * **execute_performance_tests.cmd** — aligned with **execute_performance_tests.sh**; - * **.sis/script_info_lines.txt** — centralised project description/copyright for script **--help** output; - -GitHub Actions CI (**.github/workflows/ci.yml** + **ci-cell.yml**) — Phase 2 job split: - * **ci.yml** — matrix of six **workflow_call** invocations (**cell**) plus **install-smoke**; - * **ci-cell.yml** (reusable, per **cell-id**): **build** then parallel **run-examples**, **test-unit**, **test-component**, **test-scratch**, **test-performance** — each cell's **needs: build** is scoped to that cell only (not the whole matrix); **run-examples** uses **--skip-interactive** so **shell_functions** (folder-browser dialog) does not block headless Windows runners; MinGW builds use **cmake --build --parallel 2** to avoid **cc1plus** out-of-memory on GHA (**--parallel** without a job count lets **mingw32-make** run unbounded); - -MinGW compatibility in **winstl/util/struct_comparers.hpp**: - * **NETWORK_APP_INSTANCE_EA** — **WINSTL_THE_COMPARABLE_STRUCTURE_** specialisation guarded with **!defined(STLSOFT_MINGW)** (Win10+ NTDDI); - * **POWER_LIMIT_VALUE** — same guard (Win11 GA+ NTDDI); - * **SHUFFLE_FILE_DATA** — same guard (Win11 GA+ NTDDI); - -Fixed **winstl::codepage_sequence::data()**: - * **include/winstl/i18n/codepage_sequence.hpp** — **const_pointer data() const** now returns **m_cpids.data()**; - -Fixed **winstl_C_printf_debug_string()**: - * **include/winstl/diagnostics/printf_debug_string.h** — overflow check on formatted message length now casts **STLSOFT_NUM_ELEMENTS(msg)** to **int** before comparing with **r**; - -Clang cccap (`include/stlsoft/internal/cccap/clang.h`): - * **STLSOFT_SI64_T_BASE_TYPE** / **STLSOFT_UI64_T_BASE_TYPE** — use **`signed`/`unsigned long long`** instead of **`__INT64_TYPE__`/`__UINT64_TYPE__`** (align with **gcc.h**); on Linux LP64 Clang those builtins are **`long`**, which made **STLSOFT_CF_LONG_DISTINCT_INT_TYPE** overloads redefine the 64-bit overloads; - * **STLSOFT_CF_64BIT_INT_IS_long_long** — always defined when 64-bit support is enabled (the base type is now actually **`long long`**); - -Allocator overflow / GCC **`-Walloc-size-larger-than=`**: - * **include/stlsoft/memory/allocator_base.hpp** — **`allocate()`** rejects **`n > max_size()`** before **`do_allocate()`** (prevents overflow in **`n * sizeof(value_type)`** for all CRTP allocators); - * **include/stlsoft/memory/malloc_allocator.hpp** / **new_allocator.hpp** — same guard in **`do_allocate()`** beside the multiply; - * **include/unixstl/system/pid_sequence.hpp** — elide-Init/Sched path no longer does **`size() - 1`** when empty (unsigned underflow → **`resize(SIZE_MAX)`**), which was the call that triggered the warning under **`-Werror`**; - - -============================================================================ - -Changes for 1.11.1-rc3 (23rd August 2025) - -General: -======== - - * Added `platformstl::pid_sequence` / `unixstl::pid_sequence`; - * Added `winstl_C_printf_debug_string()` in **winstl/diagnostics/printf_debug_line.h**; - * Added `winstl::codepage_sequence`; - * Added Window write-to-console functions; - * More examples; - * More tests; - * Corrected some minor defects around language version detection; - * Compatibility/corrections in string-to-integer functions; - * Canonicalise example programs source names; - * Backwards compatibility (partial) for Visual C++ back to v10; - * Project boilerplate; - -Details: -======== - -Added `platformstl::pid_sequence` / `unixstl::pid_sequence`: - * aded **platformstl/system/pid_sequence.hpp**; - * aded **unixstl/system/pid_sequence.hpp** with support for Linux and macOS; - -Added Window write-to-console functions: - * `winstl_C_write_console_string_m()`; - * `winstl_C_write_console_string_w()`; - * `winstl_C_write_console_line_m()`; - * `winstl_C_write_console_line_w()`; - -More examples: - * added **examples/by_library/system/pid_sequence**; - * added **example.winstl.diagnostics.output_debug_line.C**; - * added **example.winstl.diagnostics.output_debug_line**; - * added **printf_debug_string**; - * added **example.winstl.i18n.codepages**; - -More tests: - * added **test.scratch.winstl.system.console_functions.C**; - * added **test.unit.platformstl.system.pid_sequence**; - * brought over **test.unit.stlsoft.conversion.string_to_integer**; - * brought over **test.unit.stlsoft.conversion.try_parse_to **; - -Corrected some minor defects around language version detection: - * Some tests on `__cplusplus` were against 201702L => corrected to 201703L; - -Compatibility/corrections in string-to-integer functions: - * `stlsoft::try_parse_to<>()` overloads reduced to avoid ambiguity; - -Project boilerplate: - * added EXAMPLES.md file; - * badges in README.md; - - -============================================================================ - -Changes for 1.11.1-rc2 (31st May 2025) +## 1.11.1-rc4 - 29th July 2026 -General: -======== +* Added GitHub Actions CI (**.github/workflows/ci.yml**) on macOS, Linux, and Windows with **clang**, **gcc**, **MinGW**, and **Visual C++** (**cl**); +* CI jobs: six independent **ci-cell.yml** reusable workflows (build + parallel run sub-jobs per compiler/OS) plus **install-smoke**; +* MSVC CI disables **find_package(MFC)** (**CMAKE_DISABLE_FIND_PACKAGE_MFC**) — GHA has MFC headers but not **_AFXDLL** / **/MD** linkage for mfcstl tests; +* Visual C++ 18.x recognition in **stlsoft.h** (for current MSVC toolsets on **windows-latest**); +* Fixed **winstl::codepage_sequence::data()** — now returns **m_cpids.data()** (was missing **return**); +* Fixed **winstl_C_printf_debug_string()** — compare buffer length via **STLSOFT_C_CAST(int, STLSOFT_NUM_ELEMENTS(msg))** (signed/unsigned comparison with **/WX**); +* Clang cccap: 64-bit sized types use **`long long`** (not **`__INT64_TYPE__`**) so they stay distinct from **`long`** on Linux LP64 — fixes redefinition of overloads guarded by **STLSOFT_CF_LONG_DISTINCT_INT_TYPE** (e.g. **try_parse_to**); +* Allocators: reject element counts above **max_size()** before **`n * sizeof(T)`** (fixes GCC **`-Werror=alloc-size-larger-than=`**); **pid_sequence** avoids **`size() - 1`** underflow when eliding PIDs; +* **test.unit.versions** — aligned with **1.11.1-rc4** (**_STLSOFT_VER_1_11_1_RC4**); +* MinGW compatibility in **winstl/util/struct_comparers.hpp** — omit **NETWORK_APP_INSTANCE_EA**, **POWER_LIMIT_VALUE**, **SHUFFLE_FILE_DATA** byte comparers when **STLSOFT_MINGW** is defined; +* Test/example runner scripts — **--unit-only** / **--component-only** on **run_all_unit_tests.sh**; new **run_all_examples.sh** / **.cmd**; **run_all_unit_tests.cmd**, **run_all_scratch_tests.cmd**, and **execute_performance_tests.cmd** aligned with shell counterparts; +* code generation scripts; - * Added `stlsoft::member_selector_view<>` (alpha version), for span-compatibility in **recls**; - * Change semantics of `stlsoft::auto_buffer<>#resize()` the size of external allocation is maintained such that shrinking and then regrowing may be done within the existing allocation; - * InetSTL / UNIXSTL / WinSTL architecture discrimination canonicalised, expanded, and corrected; - * Substantial refactoring and testing of `winstl::filesystem_traits<>`; - * Significant improvements to compatibility with different C and C++ language versions (C90, C99, C11, C17, C23, C++98, C++11, C++14, C++17, C++20, C++23) - detailed in TODO.md; - * Added compatibility with latest Visual C++ (`_MSC_VER` == 1944); - * **test.component.inetstl.util.uds_helpers** now works correctly for both Linux and macOS; - * Brought over several test programs exercising C APIs; - * **run_all_scratch_tests.sh** now accepts '--verbosity' option; -Details: -======== +## 1.11.1-rc3 - 23rd August 2025 -Added `stlsoft::member_selector_view<>` (alpha version): - + **include/stlsoft/view/transforming/member_selector_view.hpp**; - + **test/scratch/stlsoft/view/member_selector_view**; - * for span-compatibility in **recls**; +* Added `platformstl::pid_sequence` / `unixstl::pid_sequence`; +* Added `winstl_C_printf_debug_string()` in **winstl/diagnostics/printf_debug_line.h**; +* Added `winstl::codepage_sequence`; +* Added Window write-to-console functions; +* More examples; +* More tests; +* Corrected some minor defects around language version detection; +* Compatibility/corrections in string-to-integer functions; +* Canonicalise example programs source names; +* Backwards compatibility (partial) for Visual C++ back to v10; +* Project boilerplate; -Substantial refactoring and testing of `winstl::filesystem_traits<>`: - + added **include/winstl/api/internal/SystemInformation.h** ; + added **test.unit.winstl.api.internal.SystemInformation**; - * **test.unit.winstl.api.internal.SystemInformation** : + added tests of `GetSystemDirectoryA/W()`; - + added **test.unit.winstl.system.system_traits** ; ~ improved semantics of `winstl::system_trait<>::get_system_directory()` and `winstl::system_trait<>::get_windows_directory()`; - ~ improved semantics of `winstl::system_trait<>::get_home_directory()`; - * **test.unit.winstl.system.system_traits** : ~ misc. fixes; - + added **test.unit.winstl.api.internal.DynamicLinkLibrary** ; ~ improved semantics of `winstl::system_traits<>::get_module_filename()`; - ~ improved semantics of `winstl::system_traits<>::get_environment_variable()`; - + added unit-tests of `winstl::system_traits<>::get_module_directory()`; - ~ improved semantics of `winstl::system_traits<>::expand_environment_strings()`; - * `winstl::system_traits<>::expand_environment_strings()` : ~ simplified implementation(s), and ensured compatible with `std::vector<>` (as they are with `stlsoft::auto_buffer<>`); - * `winstl::system_traits<>::get_environment_variable()` : ~ simplified implementation(s), and ensured compatible with `std::vector<>` (as they are with `stlsoft::auto_buffer<>`); - * `winstl::system_traits<>::get_home_directory()` : ~ simplified implementation(s), and ensured compatible with `std::vector<>` (as they are with `stlsoft::auto_buffer<>`); - * `winstl::system_traits<>` : ~ fix for failure to obtain resource with empty buffer for reasons other than insufficient-buffer; - * `winstl::system_traits<>::get_module_filename()` : ~ simplified implementation(s), and ensured compatible with `std::vector<>` (as they are with `stlsoft::auto_buffer<>`); - * `winstl::system_traits<>::get_systems_directory()` : ~ simplified implementation(s), and ensured compatible with `std::vector<>` (as they are with `stlsoft::auto_buffer<>`); - * `winstl::system_traits<>::get_windows_directory()` : ~ simplified implementation(s), and ensured compatible with `std::vector<>` (as they are with `stlsoft::auto_buffer<>`); - * brought over **test.unit.winstl.filesystem.filesystem_traits**; - * brought over **test.component.winstl.filesystem.filesystem_traits**; -Brought over several test programs exercising C APIs: - * **test.component.winstl.filesystem.memory_map_functions.C**; - * **test.scratch.stlsoft.conversion.itoslice**; - * **test.scratch.unixstl.system.get_console_width**; - * **test.scratch.winstl.diagnostics.output_debug_line.C**; - * **test.unit.comstl.string.BSTR_functions.C**; - * **test.unit.comstl.util.GUID_functions**; - * **test.unit.comstl.util.VARIANT_functions**; - * **test.unit.stlsoft.memory.C.STLSOFT_C_AUTO_BUFFER**; - * **test.unit.winstl.diagnostics.output_debug_line.C**; +## 1.11.1-rc2 - 31st May 2025 +* Added `stlsoft::member_selector_view<>` (alpha version), for span-compatibility in **recls**; +* Change semantics of `stlsoft::auto_buffer<>#resize()` the size of external allocation is maintained such that shrinking and then regrowing may be done within the existing allocation; +* InetSTL / UNIXSTL / WinSTL architecture discrimination canonicalised, expanded, and corrected; +* Substantial refactoring and testing of `winstl::filesystem_traits<>`; +* Significant improvements to compatibility with different C and C++ language versions (C90, C99, C11, C17, C23, C++98, C++11, C++14, C++17, C++20, C++23) - detailed in TODO.md; +* Added compatibility with latest Visual C++ (`_MSC_VER` == 1944); +* **test.component.inetstl.util.uds_helpers** now works correctly for both Linux and macOS; +* Brought over several test programs exercising C APIs; +* **run_all_scratch_tests.sh** now accepts '--verbosity' option; -============================================================================ +## 1.11.1-rc1 - 6th May 2025 -Changes for 1.11.1-rc1 (6th May 2025) +* Various CMake improvements; +* MinGW compatibility; +* **UNIXem** compatibility; +* Windows compatibility; -General: -======== - * Various CMake improvements; - * MinGW compatibility; - * **UNIXem** compatibility; - * Windows compatibility; +## 1.11.1-beta9 - 5th May 2025 -Changes: -======== +* `stlsoft::basic_string_view` fixed defect in comparison; +* **example.platformstl.filesystem.readdir_sequence** minor fix; - * **prepare_cmake.sh** : ~ canonicalising flag/option handling (by placing aliases last) - * CMake canonicalisation : ~ renamed `CMAKE_NO_SHWILD` => `NO_SHWILD\' - * CMake helper scripts now define default make command as "mingw32-make.xe" if recognise MinGW - * CMakeLists.txt : + added operating system flavour diagnostic message - * ~ minor improvement to '--no-shwild' help message - * **inetstl/util/uds_helpers.h** : ~ reorganising includes / compatibility checks +## 1.11.1-beta8 - 3rd May 2025 -============================================================================ +* Added skipping of hidden directories and files to `unixstl::glob_sequence` and `unixstl::readdir_sequence`; +* Various example improvements; +* Updated **TODO.md** with structure and items; -Changes for 1.11.1-beta9 (5th May 2025) - * `stlsoft::basic_string_view` fixed defect in comparison; - * **example.platformstl.filesystem.readdir_sequence** minor fix; +## 1.11.1-beta7 - 30th April 2025 +* Support for searching of devices on the file system, primarily concerning `unixstl::glob_sequence` and `unixstl::readdir_sequence`; -============================================================================ -Changes for 1.11.1-beta8 (3rd May 2025) +## 1.11.1-beta6 - 28th April 2025 -General: -======== +* Visual C++ compatibility (including _MSC_VER 1943); +* CMake / UNIXem compatibility; +* Refactored / enhanced retrieval of home-directory, including, for Windows, trying first for `"USERPROFILE"` and then falls back to `"HOMEDRIVE"` and `"HOMEPATH"`; +* **prepare_cmake.sh** / **CMakeLists.txt** : + added '--no-shwild' / `CMAKE_NO_SHWILD`; +* Added **test.component.winstl.system.directory_functions**; - * Added skipping of hidden directories and files to `unixstl::glob_sequence` and `unixstl::readdir_sequence`; - * Various example improvements; - * Updated **TODO.md** with structure and items; -Changes: -======== +## 1.11.1-beta5 - 26th April 2025 -Added skipping of hidden directories and files to `unixstl::glob_sequence` and `unixstl::readdir_sequence`: - * `unixstl::glob_sequence` : + added flags `skipHiddenFiles` and `skipHiddenDirs` and implemented logic accordingly; - * `unixstl::readdir_sequence` : + added flags `skipHiddenFiles` and `skipHiddenDirs` and implemented logic accordingly; - * `winstl::readdir_sequence` : + added flags `skipHiddenFiles` and `skipHiddenDirs` and implemented logic accordingly; - * `unixstl::glob_sequence` / `unixstl::readdir_sequence` : + added member constant `typeDefault` that == `directories | files | sockets`; - * ~ bumped value of `_UNIXSTL_VER`; +* Added `platformstl::environment_variable_scope`; +* Added more unit-tests; +* MinGW compatibility; +* `stlsoft::basic_static_string<>` minor fix; +* Miscellaneous fixes; -============================================================================ +## 1.11.1-beta4 - 22nd April 2025 -Changes for 1.11.1-beta7 (30th April 2025) +* `unixstl::glob_sequence` now can search for sockets, in addition to files and directories; +* `stlsoft::cmdargs` added missing member types; -General: -======== - * Support for searching of devices on the file system, primarily concerning `unixstl::glob_sequence` and `unixstl::readdir_sequence`; +## 1.11.1-beta3 - 16th April 2025 -Changes: -======== +* Added specialisations of `integral_traits<>` for integer specialisations of `true_typedef<>`; +* Applied `printf()` format attributes throughout; +* Defect fix(es) to `unixstl::path_squeeze<>()` / `winstl::path_squeeze<>()`; +* MinGW compatibility; +* Wholesale trivial/minor tidying; -Support for searching of devices on the file system: - * `unixstl::filesystem_traits` : + added `::is_device()` overloads; - * `unixstl::glob_sequence` : + added member constant `devices` and filtering for devices; - * `unixstl::readdir_sequence` : + added member constant `devices` and filtering for devices; - * `unixstl::readdir_sequence` : + added conditional suppression of access-related exceptions with new flag `noThrowOnAccessFailure`; - * `winstl::findfile_sequence` : + added member constant `devices` (with value 0) for structural conformance with `unixstl::glob_sequence`; - * `winstl::readdir_sequence` : + added member constant `devices` (with value 0) for structural conformance with `unixstl::readdir_sequence`; +## 1.11.1-beta2 - 21st February 2025 -============================================================================ +* `unixstl::readdir_sequence` now can search for sockets, in addition to files and directories; +* added **inetstl/util/uds_helpers.h** that provides Unix Domain Sockets helper functions; +* GCC (11) compatibility around use of `__builtin_is_constant_evaluated` (when not C++20); +* **InetSTL** improved compatibility with macOS / Linux; -Changes for 1.11.1-beta6 (28th April 2025) -General: -======== +## 1.11.1-beta1 - 31st December 2024 - * Visual C++ compatibility (including _MSC_VER 1943); - * CMake / UNIXem compatibility; - * Refactored / enhanced retrieval of home-directory, including, for Windows, trying first for `"USERPROFILE"` and then falls back to `"HOMEDRIVE"` and `"HOMEPATH"`; - * **prepare_cmake.sh** / **CMakeLists.txt** : + added '--no-shwild' / `CMAKE_NO_SHWILD`; - * Added **test.component.winstl.system.directory_functions**; +* Command-line handling components minor improvements and unit-testing; +* Visual C++ compatibility (including _MSC_VER 1942); +* MinGW compatibility; +* Miscellaneous backwards-compatibility fixes; +* Miscellaneous (near) final fixes and tidying; -============================================================================ +## 1.11.1-alpha28 - 28th December 2024 -Changes for 1.11.1-beta5 (26th April 2025) +* substantial reworking of abstraction of memory functions, resulting in performance improvements across numerous components, `stlsoft::auto_buffer<>` in particular; +* MinGW compatibility; +* miscellaneous generalisation of code and dependencies; +* added more test programs; -General: -======== - * Added `platformstl::environment_variable_scope`; - * Added more unit-tests; - * MinGW compatibility; - * `stlsoft::basic_static_string<>` minor fix; - * Miscellaneous fixes; +## 1.11.1-alpha27 - 19th December 2024 -Changes: -======== +* added `stlsoft::doomgram` and `stlsoft::gram_scope` (from old research repo(s)); +* added **include/stlsoft/diagnostics/gram_utils.hpp**, including `stlsoft::gram_to_strip()`; +* added `stlsoft::count_hexadecimal_digits()`, and refactored `stlsoft::count_digits()` into `stlsoft::count_decimal_digits()`; +* added **unixstl/time/comparison_functions.h**, including `unixstl_C_compare_timevals()` / `unixstl::compare()`; +* added `winstl_C_difference_in_microseconds_QPC()` and `winstl_C_absolute_difference_in_microseconds_QPC()`; +* `winstl::micro_sleep()` (and `winstl_C_micro_sleep()`) now implemented in terms of active methods for accurate behaviour in small durations (0 < delay_us <= 250000); +* added `#pause()` and `#unpause()` to stopwatch types (incl. `stlsoft::std_chrono_hrc_stopwatch`, `unixstl::stopwatch()`, `winstl::stopwatch()`); +* added `#get_kernel_nanoseconds()`, `#get_user_nanoseconds()`, `#get_nanoseconds()` to `unixstl::stopwatch()`; +* added `#cbegin()` / `#cend()` and `#crbegin()` / `#crend()` methods to `stlsoft::auto_buffer<>`; +* separated Windows-specific `platformstl::readdir_sequence` into `winstl::readdir_sequence`; +* added **test.component.platformstl.diagnostics.stopwatch**; +* added **test.performance.stlsoft.count_digits**; +* added **test.performance.stlsoft.doomgram**; +* added **test.performance.stlsoft.gram_utils**; +* added **test.scratch.winstl.micro_sleep**; +* added **test.unit.stlsoft.diagnostics.doomgram**; +* added **test.unit.stlsoft.diagnostics.gram_scope**; +* added **test.unit.stlsoft.util.count_decimal_digits**; +* added **test.unit.stlsoft.util.count_hexadecimal_digits**; +* added **test.unit.winstl.conversion.number.grouping_functions**; +* **run_all_unit_tests.sh** now respects environment variables `XTESTS_VERBOSITY` and `TEST_VERBOSITY`; +* miscellaneous minor/trivial improvements; -Added `platformstl::environment_variable_scope`: - * added `platformstl::environment_variable_scope`; - * added **test.component.platformstl.system.environment_variable_scope**; -MinGW compatibility: - * `stlsoft::basic_static_string<>` : MinGW compatibility (#86) - * **test.unit.stlsoft.string.copy_functions** : ~ warning suppression; - * **test.unit.stlsoft.util.string.snprintf** : ~ warning suppression; +## 1.11.1-alpha26 - 23rd November 2024 -Added more unit-tests: - * + brought over **test.component.platformstl.system.system_traits** - * + brought over **test.unit.stlsoft.string.copy_functions** +* added `stlsoft::integral_traits<>` (**stlsoft/traits/integral_traits.hpp**); +* added `stlsoft::unicode_point_map`; +* added **test.unit.stlsoft.limits.integral_limits**; +* added **test.unit.stlsoft.traits.integral_traits**; +* minor tidying to CMake facilities; -`stlsoft::basic_static_string<>` minor fix: - * preparatory tidying; - * fixed format specifiers for generation of `length_error`; - * **test.unit.stlsoft.string.static_string** : + tests for `length_error` -Miscellaneous fixes: - * **include/unixstl/system/directory_functions.h** : ~ minor improvements to API signatures; - * added optional dependency to **shwild**, so as to allow **xTests**' pattern matching constructs to be used; - * preparatory tidying - * shim fixes (in component tests) in light of changes to xTests +## 1.11.1-alpha25 - 18th November 2024 +* added MSVC MT support; +* added and applied macro `STLSOFT_IS_CONSTANT_EVALUATED()`, in particular to `stlsoft::auto_buffer<>`; +* include ordering (around api/internal / api/external helper headers); +* copy-paste typos; +* made consistent include ordering (around api/internal / api/external helper headers); -============================================================================ -Changes for 1.11.1-beta4 (22nd April 2025) +## 1.11.1-alpha24 - 4th November 2024 -General: -======== +* `frequency_map` : ~ now default-specialised on `frequency_map_traits_unordered` when compiling with C++11+; +* **test.performance.stlsoft.frequency_map** : ~ improved reporting of results ; ~ now uses `stlsoft::std_chrono_hrc_stopwatch`; - * `unixstl::glob_sequence` now can search for sockets, in addition to files and directories; - * `stlsoft::cmdargs` added missing member types; +## 1.11.1-alpha23 - 28th October 2024 -============================================================================ +* `platformstl::basic_file_lines<>` now supports move semantics; +* Fix to definition of `STLSOFT_MESSAGE_ASSERT()` (for Clang); +* **dev/bin/batch_compile_check** now supports '--counts' flag; +* Minor improvements of ./CMakeLists.txt; -Changes for 1.11.1-beta3 (16th April 2025) -General: -======== +## 1.10.12 - 28th October 2024 - * Added specialisations of `integral_traits<>` for integer specialisations of `true_typedef<>`; - * Applied `printf()` format attributes throughout; - * Defect fix(es) to `unixstl::path_squeeze<>()` / `winstl::path_squeeze<>()`; - * MinGW compatibility; - * Wholesale trivial/minor tidying; +* project boilerplate updated (in line with STLSoft-1.11); -============================================================================ +## 1.11.1-alpha22 - 26th October 2024 -Changes for 1.11.1-beta2 (21st February 2025) +* Single fix to default definition of `STLSOFT_FALLTHROUGH()`; -General: -======== - * `unixstl::readdir_sequence` now can search for sockets, in addition to files and directories; - * added **inetstl/util/uds_helpers.h** that provides Unix Domain Sockets helper functions; - * GCC (11) compatibility around use of `__builtin_is_constant_evaluated` (when not C++20); - * **InetSTL** improved compatibility with macOS / Linux; +## 1.11.1-alpha21 - 25th October 2024 -Changes: -======== +* Added and applied macro `STLSOFT_FALLTHROUGH()`; +* Added unit-tests for allocator types; -`unixstl::readdir_sequence` now can search for sockets, in addition to files and directories: - * T.B.C. -GCC (11) compatibility around use of `__builtin_is_constant_evaluated` (when not C++20): - * **stlsoft/stlsoft.h** : ~ `__builtin_is_constant_evaluated` must be called as if a function; +## 1.11.1-alpha20 - 23rd October 2024 -**InetSTL** improved compatibility with macOS / Linux: - * substantial changes to main header to detect architecture, operating system, etc.; - * brought over **test.unit.inetstl.shims.access.string.std.in_addr**; +* Version change only; -**InetSTL** newly released functionality: - * **inetstl/util/uds_helpers.h**, containing `inetstl_c_sockaddr_un_init_from_path()`; +## 1.11.1-alpha19 - 23rd October 2024 -============================================================================ +* Fixes to (new functionality in) `stlsoft::auto_buffer<>`; +* Fix for (compile-time) defect in `winstl::basic_path<>`; +* Fix for defect in `winstl::basic_reg_key<>`; +* MinGW compatibility in **winstl/internal/windows_version_.h**; +* MinGW compatibility in **winstl/system/console_functions.h**; +* Necessary warning suppression in `stlsoft::basis_simple_string<>`; +* Trivial warning fix in `winstl::readonly_memory_mapped_file<>`; +* Added **test.unit.stlsoft.traits.integral_printf_format_traits**; +* Brought over **test.unit.winstl.registry.reg_value**; +* Added **test.unit.winstl.registry.reg_value_sequence**; +* GCC warnings; +* CMake build scripts minor fixes; -Changes for 1.11.1-beta1 (31st December 2024) -General: -======== +## 1.11.1-alpha18 - 15th October 2024 - * Command-line handling components minor improvements and unit-testing; - * Visual C++ compatibility (including _MSC_VER 1942); - * MinGW compatibility; - * Miscellaneous backwards-compatibility fixes; - * Miscellaneous (near) final fixes and tidying; +* Legacy (pre VS-2022) Visual C++ compatibility; +* Win32 compatibity; -Changes: -======== -Command-line handling components minor improvements and unit-testing: - * `stlsoft::cmdargs` significant refactoring and enhancement, including recognising `"--"` special flag; - * `stlsoft:basic_commandline_parser<>` : ~ refactored and enhanced logic, so can work with multiple string-escape sections in an argument; - * `stlsoft::basic_commandline_parser<>` : + now maintains an additional (uncounted by `#size()`) pointer that is `NULL`; - * `winstl::basic_commandline_parser<>` : ~ reimplemented in terms of `stlsoft::basic_commandline_parser<>`; - * added **test.unit.stlsoft.system.cmdargs**; - * added **test.component.platformstl.commandline_parser**; +## 1.11.1-alpha17 - 13th October 2024 -Miscellaneous backwards-compatibility fixes: - * ensuring C++98 and C++03 compatibility; - * ensuring Win32 compatibility; +* `stlsoft::frequency_map<>` enhancements; +* `unixstl::glob_sequence` enhancements; +* Fixes and enhancement to `dl_call<>()` (both UNIXSTL and WinSTL); +* BREAKING CHANGE: Prospective compatibility with C++20 reserved word `module` (both UNIXSTL and WinSTL) by renaming existing `module` class to `dl_module`; +* GCC 11 compatibility; +* GCC 14 compatibility; +* MinGW-64 compatibility; +* VC++ 17 compatibility; +* General improvements and simplification for compatibility with C++11 - C++20; +* CMake build files improvements; +* Misc. minor fixes and enhancements; +* Misc. code canonicalisation; +* Bringing into repo existing (older) test and example programs; -Miscellaneous (near) final fixes and tidying: - * added **test.component.platformstl.system.environment_variable_traits**; - * general tidyings; +## 1.11.1-alpha16 - 1st October 2024 -============================================================================ +* `auto_buffer` improvements; +* `constexpr` applications; +* Time function enhancements; +* Brought over previously unreleased example and test programs; +* Significant simplification of CMake support; +* Boilerplate file improvements; +* Miscellaneous improvements; -Changes for 1.11.1-alpha28 (28th December 2024) -General: -======== +## 1.11.1-alpha15 - 2nd September 2024 - * substantial reworking of abstraction of memory functions, resulting in performance improvements across numerous components, `stlsoft::auto_buffer<>` in particular; - * MinGW compatibility; - * miscellaneous generalisation of code and dependencies; - * added more test programs; +* Windows ARM64 architecture support; +* Windows 10/11 operating system detection support; +* significant simplification of CMake support; +* minor additions/enhancements to scratch tests; +* miscellaneous fixes; -Changes: -======== -Substantial reworking of abstraction of memory functions, resulting in performance improvements across numerous components, `stlsoft::auto_buffer<>` in particular: - * added **include/stlsoft/api/external/memfns.h**; - * almost all uses of `STLSOFT_API_INTERNAL_memfns_memcpy()` replaced with `STLSOFT_API_EXTERNAL_memfns_memcpy()`; +## 1.11.1-alpha14 - 21st August 2024 -MinGW compatibility: - * introduction of `STLSOFT_MINGW` preprocessor object-like macro; - * various fixes and warnings; - * making (almost) all .h files self-sufficient; +* VC++ 17 latest (`_MSC_VER`==1941) compatibility; -Miscellaneous generalisation of code and dependencies: - * moved integer suffixes (such as `STLSOFT_GEN_UINT64_SUFFIX`) into stlsoft/stlsoft.h from stlsoft/limits/integral_limits.h; - * inline consistency; - * documentation markup consistency around use of terms `NULL` / `nullptr'; -Added more test programs: - * porting over old **test.unit.stlsoft.util.bit_functions**; - * porting over old **test.unit.stlsoft.util.string_switch**; +## 1.11.1-alpha13 - 4th August 2024 +* added `platformstl::isatty()` (and `platformstl::platformstl_C_isatty_fd()` and `platformstl::platformstl_C_isatty_stm()`), `unixstl::isatty()` (and `unixstl::unixstl_C_isatty_fd()` and `unixstl::unixstl_C_isatty_stm()`), `winstl::isatty()` (and `winstlstl::winstlstl_C_isatty_fd()` and `winstlstl::winstlstl_C_isatty_stm()`); -============================================================================ -Changes for 1.11.1-alpha27 (19th December 2024) - - * added `stlsoft::doomgram` and `stlsoft::gram_scope` (from old research repo(s)); - * added **include/stlsoft/diagnostics/gram_utils.hpp**, including `stlsoft::gram_to_strip()`; - * added `stlsoft::count_hexadecimal_digits()`, and refactored `stlsoft::count_digits()` into `stlsoft::count_decimal_digits()`; - * added **unixstl/time/comparison_functions.h**, including `unixstl_C_compare_timevals()` / `unixstl::compare()`; - * added `winstl_C_difference_in_microseconds_QPC()` and `winstl_C_absolute_difference_in_microseconds_QPC()`; - * `winstl::micro_sleep()` (and `winstl_C_micro_sleep()`) now implemented in terms of active methods for accurate behaviour in small durations (0 < delay_us <= 250000); - * added `#pause()` and `#unpause()` to stopwatch types (incl. `stlsoft::std_chrono_hrc_stopwatch`, `unixstl::stopwatch()`, `winstl::stopwatch()`); - * added `#get_kernel_nanoseconds()`, `#get_user_nanoseconds()`, `#get_nanoseconds()` to `unixstl::stopwatch()`; - * added `#cbegin()` / `#cend()` and `#crbegin()` / `#crend()` methods to `stlsoft::auto_buffer<>`; - * separated Windows-specific `platformstl::readdir_sequence` into `winstl::readdir_sequence`; - * added **test.component.platformstl.diagnostics.stopwatch**; - * added **test.performance.stlsoft.count_digits**; - * added **test.performance.stlsoft.doomgram**; - * added **test.performance.stlsoft.gram_utils**; - * added **test.scratch.winstl.micro_sleep**; - * added **test.unit.stlsoft.diagnostics.doomgram**; - * added **test.unit.stlsoft.diagnostics.gram_scope**; - * added **test.unit.stlsoft.util.count_decimal_digits**; - * added **test.unit.stlsoft.util.count_hexadecimal_digits**; - * added **test.unit.winstl.conversion.number.grouping_functions**; - * **run_all_unit_tests.sh** now respects environment variables `XTESTS_VERBOSITY` and `TEST_VERBOSITY`; - * miscellaneous minor/trivial improvements; - - -============================================================================ - -Changes for 1.11.1-alpha26 (23rd November 2024) - - * added `stlsoft::integral_traits<>` (**stlsoft/traits/integral_traits.hpp**); - * added `stlsoft::unicode_point_map`; - * added **test.unit.stlsoft.limits.integral_limits**; - * added **test.unit.stlsoft.traits.integral_traits**; - * minor tidying to CMake facilities; - - -============================================================================ - -Changes for 1.11.1-alpha25 (18th November 2024) - - * added MSVC MT support; - * added and applied macro `STLSOFT_IS_CONSTANT_EVALUATED()`, in particular to `stlsoft::auto_buffer<>`; - * include ordering (around api/internal / api/external helper headers); - * copy-paste typos; - * made consistent include ordering (around api/internal / api/external helper headers); - - -============================================================================ - -Changes for 1.11.1-alpha24 (4th November 2024) - - * `frequency_map` : ~ now default-specialised on `frequency_map_traits_unordered` when compiling with C++11+; - * **test.performance.stlsoft.frequency_map** : ~ improved reporting of results ; ~ now uses `stlsoft::std_chrono_hrc_stopwatch`; - - -============================================================================ - -Changes for 1.11.1-alpha23 (28th October 2024) - - * `platformstl::basic_file_lines<>` now supports move semantics; - * Fix to definition of `STLSOFT_MESSAGE_ASSERT()` (for Clang); - * **dev/bin/batch_compile_check** now supports '--counts' flag; - * Minor improvements of ./CMakeLists.txt; - - - -============================================================================ - -Changes for 1.10.12 (28th October 2024) - - * project boilerplate updated (in line with STLSoft-1.11) - - -============================================================================ - -Changes for 1.11.1-alpha22 (26th October 2024) - - * Single fix to default definition of `STLSOFT_FALLTHROUGH()`; - - -============================================================================ - -Changes for 1.11.1-alpha21 (25th October 2024) - -General: -======== - - * Added and applied macro `STLSOFT_FALLTHROUGH()`; - * Added unit-tests for allocator types; - -Changes: -======== - -Added unit-tests for allocator types: - * added **test.unit.comstl.memory.task_allocator**; - * added **test.unit.mfcstl.memory.afx_allocator**; - * added **test.unit.stlsoft.memory.malloc_allocator**; - * added **test.unit.stlsoft.memory.new_allocator**; - * added **test.unit.stlsoft.memory.null_allocator**; - * added **test.unit.winstl.memory.global_allocator**; - * added **test.unit.winstl.memory.netapi_allocator**; - * added **test.unit.winstl.memory.processheap_allocator**; - * added **test.unit.winstl.memory.shell_allocator**; - - -============================================================================ - -Changes for 1.11.1-alpha20 (23rd October 2024) - - * Version change only; - - -============================================================================ - -Changes for 1.11.1-alpha19 (23rd October 2024) - - * Fixes to (new functionality in) `stlsoft::auto_buffer<>`; - * Fix for (compile-time) defect in `winstl::basic_path<>`; - * Fix for defect in `winstl::basic_reg_key<>`; - * MinGW compatibility in **winstl/internal/windows_version_.h**; - * MinGW compatibility in **winstl/system/console_functions.h**; - * Necessary warning suppression in `stlsoft::basis_simple_string<>`; - * Trivial warning fix in `winstl::readonly_memory_mapped_file<>`; - * Added **test.unit.stlsoft.traits.integral_printf_format_traits**; - * Brought over **test.unit.winstl.registry.reg_value**; - * Added **test.unit.winstl.registry.reg_value_sequence**; - * GCC warnings; - * CMake build scripts minor fixes; - - -============================================================================ - -Changes for 1.11.1-alpha18 (15th October 2024) - - * Legacy (pre VS-2022) Visual C++ compatibility; - * Win32 compatibity; - - -============================================================================ - -Changes for 1.11.1-alpha17 (13th October 2024) - -General: -======== - - * `stlsoft::frequency_map<>` enhancements; - * `unixstl::glob_sequence` enhancements; - * Fixes and enhancement to `dl_call<>()` (both UNIXSTL and WinSTL); - * BREAKING CHANGE: Prospective compatibility with C++20 reserved word `module` (both UNIXSTL and WinSTL) by renaming existing `module` class to `dl_module`; - * GCC 11 compatibility; - * GCC 14 compatibility; - * MinGW-64 compatibility; - * VC++ 17 compatibility; - * General improvements and simplification for compatibility with C++11 - C++20; - * CMake build files improvements; - * Misc. minor fixes and enhancements; - * Misc. code canonicalisation; - * Bringing into repo existing (older) test and example programs; - -Changes: -======== - -`stlsoft::frequency_map<>` enhancements: - * added range ctor; - * added `initializer_list` ctor overloads; - * added move ctor; - * added `#contains()` method; - * more unit-tests; - * tidying; - * added **test.performance.stlsoft.frequency_map**; - -`unixstl::glob_sequence` enhancements: - * added `#cbegin()`, `#cend()`; - * added `#crbegin()`, `#crend()`; - * applied `STLSOFT_NOEXCEPT` to appropriate methods; - * added more test cases - -Fixes and enhancement to `dl_call<>()` (both UNIXSTL and WinSTL): - * bunch of compatibility and consistency improvements; - * decreasing likelihood of name-clash of non-public functions; - * refactoring; - * added example program **examples/by_project/unixstl/dl/dl_call**; - * added example program **examples/by_project/winstl/dl/dl_call**; - * added **test.component.unixstl.dl.dl_call**; - * added test fixture project **example_so**; - * added **test.component.winstl.dl.dl_call**; - * `winstl::dl_call<>()` : ~ proper compatibility for 64-bit, now permitting (but ignoring) an in-name calling convention prefix; - -BREAKING CHANGE: Prospective compatibility with C++20 reserved word `module` (both UNIXSTL and WinSTL) by renaming existing `module` class to `dl_module`: - * BREAKING CHANGE: renamed `unixstl::module` to `unixstl::dl_module` ; - * BREAKING CHANGE: renamed `winstl::module` to `winstl::dl_module` ; - * `unixstl::module()` : ~ now no longer relies on `errno` (except macOS, where it is supported), and instead uses `dlopen()` for failure qualifier; - * `unixstl::module` : ~ preparatory refactoring - * `winstl::module` : ~ preparatory refactoring - -General improvements and simplification for compatibility with C++11 - C++20: - * canonicalised proscribed copy-assignment form and layout; - * canonicalised placement of copy-assignment operator / copy-constructor / default-construction proscriptions; - * added and applied throughout the macros `STLSOFT_COPY_ASSIGNMENT_PROSCRIBED`, `STLSOFT_COPY_CONSTRUCTION_PROSCRIBED`, `STLSOFT_DEFAULT_CONSTRUCTION_PROSCRIBED`; - -CMake build files improvements: - * CMake script files : + now recognises environment variable SIS_CMAKE_COMMAND, if specified, as the make command; - * **execute_performance_tests.sh** : + added '--expand-width ' option; - * **execute_performance_tests.sh**, **run_all_scratch_tests.sh**, **run_all_unit_tests.sh** : + added flag '--list-only'; - * **run_all_unit_tests.sh** : ~ slight improvements to verbosity handling; - * dev/bin/batch_compile_check : + added "20" to C++ default versions; - -Misc. minor fixes and enhancements: - * `stlsoft::shared_ptr<>` : + added move ctor and tests; - * `stlsoft::true_typedef<>` : ~ minor fixes; - * misc exception class compatibility with modern C++ (insofar as copy semantics); - * expanded scope of `winstl_C_is_memory_status_code()`; - * discrimination of `UNIXSTL_ARCH_IS_ARM64`; - * added `UNIXSTL_ARCH_LABEL_STRING`; - * added `WINSTL_ARCH_LABEL_STRING`; - * added `__STLSOFT_FILE_LINE__` and `__STLSOFT_FILE_LINE_FUNCTION__`; - * added `winstl::equal_struct<>()`; - * **include/winstl/system/console_functions.h** : ~ compatibility fixes; - * `unixstl::readdir_sequence` : increased compiler compatibility; - * **test.unit.winstl.util.struct_initialisers** : + more parts; - -Misc. code canonicalisation: - * canonical `main()` signature in all example and test programs; - * canonicalisation of whitespace throughout; - -Bringing into repo existing (older) test and example programs: - * added **test.component.unixstl.filesystem.memory_mapped_file**; - * added **test.component.unixstl.filesystem.readdir_sequence**; - * added **test.component.unixstl.filesystem.readonly_memory_mapped_file**; - * added **test.unit.stlsoft.smartptr.shared_ptr**; - * added **test.unit.winstl.util.struct_comparers** ; - * added **test.unit.winstl.util.struct_initialisers**; - * brought over **test.component.winstl.synch.atomic_functions**; - * brought over **test.component.winstl.synch.spin_mutex**; - * brought over **test.unit.stlsoft.conversion.truncation_test**; - - -============================================================================ - -Changes for 1.11.1-alpha16 (1st October 2024) - -General: -======== - - * `auto_buffer` improvements; - * `constexpr` applications; - * Time function enhancements; - * Brought over previously unreleased example and test programs; - * Significant simplification of CMake support; - * Boilerplate file improvements; - * Miscellaneous improvements; - -Changes: -======== - -`auto_buffer` improvements: - * removed all uses of `auto_buffer_old` throughout the rest of the libraries; - * significantly enhanced functionality, particularly adding range and init-list constructors; - * minor performance improvements; - * significant additional testing in **test.unit.stlsoft.memory.auto_buffer**; - -`constexpr` applications: - * limited application of `constexpr` into `auto_buffer`; - * limited application of `constexpr` into `simple_string`; - * limited application of `constexpr` into `static_string`; - -Time function enhancements: - * added **stlsoft/api/external/time.h** which discriminates support - standard, GCC, VC++ - for time functions such as `::asctime_r()`, `::gmtime_r()`, `::gmtime_s()`, ...; - * reimplementation of `STLSOFT_API_INTERNAL_Time_gmtime()` and `STLSOFT_API_INTERNAL_Time_localtime()` for increased portability; - -Brought over previously unreleased example and test programs; - * (almost) all **by_concept**, **by_library**, **by_project** examples; - * **test.component.stlsoft.system.environment_block**; - * **test.component.unixstl.filesystem.glob_sequence**; - * **test.component.unixstl.filesystem.glob_sequence**; - * **test.unit.unixstl.system.environment_variable**; - * **test.unit.stlsoft.smartptr.scoped_handle**; - * **test.unit.stlsoft.string.exception_string**; - * **test.unit.unixstl.shims.access.string.timeval**; - -Significant simplification of CMake support: - * wholesale application of macros for defining program build instructions; - -Boilerplate file improvements: - * all (Bash) CMake build scripts now recognise environment variable SIS_CMAKE_BUILD_DIR to build in a custom directory, defaulting to stock directory ./_build; - -Miscellaneous improvements: - * ensuring parent class invocation in initialiser lists; - * string access shims for `struct timeval` corrected to reject negative values; - - -============================================================================ - -Changes for 1.11.1-alpha15 (2nd September 2024) - -General: -======== - - * Windows ARM64 architecture support; - * Windows 10/11 operating system detection support; - * significant simplification of CMake support; - * minor additions/enhancements to scratch tests; - * miscellaneous fixes; - -Changes: -======== - -Windows ARM64 architecture support: - * include/platformstl/platformstl.h; - * include/platformstl/synch/atomic_functions.h; - * include/stlsoft/internal/cccap/msvc.h; - * include/winstl/synch/atomic_functions.h; - * include/winstl/winstl.h; - -Windows 10/11 operating system detection support: - * include/winstl/internal/windows_version_.h - `winstl_C_internal_GetVersionEx()` now recognises operating systems from Windows 10 to Windows Server 2025; - * include/winstl/system/os_version.h - `winstl_C_identify_operating_system()` now recognises operating systems from Windows 10 to Windows Server 2025; - * added test/scratch/winstl/system/versions, which illustrates various means of getting Windows operating system version information; - -Significant simplification of CMake support: - * added **cmake/LanguageFullVersion.cmake**, which defines custom C++ language symbol `X_CMAKE_CXX_FULLSTANDARD`; - * added **cmake/TargetMacros.cmake**; - * wholesale simplification of example and test program CMakeLists.txt files; - -Minor additions/enhancements to scratch tests: - * test/scratch/versions/versions.iostreams/versions.cpp now also emits PlatformSTL and UNIXSTL/WinSTL versions; - * test/scratch/versions/versions.stdio/versions.c now also emits PlatformSTL and UNIXSTL/WinSTL versions; - -Miscellaneous fixes: - * include/winstl/system/console_functions.h - missing #include; - * test.unit.stlsoft.filesystem.io_functions.write_string - now eschews holding files (which was causing failed tests on Windows); - - -============================================================================ - -Changes for 1.11.1-alpha14 (21st August 2024) - -* VC++ 17 latest (`_MSC_VER`==1941) compatibility - - -============================================================================ - -Changes for 1.11.1-alpha13 (4th August 2024) - -* added `platformstl::isatty()` (and `platformstl::platformstl_C_isatty_fd()` and `platformstl::platformstl_C_isatty_stm()`), `unixstl::isatty()` (and `unixstl::unixstl_C_isatty_fd()` and `unixstl::unixstl_C_isatty_stm()`), `winstl::isatty()` (and `winstlstl::winstlstl_C_isatty_fd()` and `winstlstl::winstlstl_C_isatty_stm()`) - - -============================================================================ - -Changes for 1.11.1-alpha12 (3rd August 2024) +## 1.11.1-alpha12 - 3rd August 2024 * `unixstl::readdir_sequence` no longer uses `stlsoft::basic_static_string<>`; * simplifying CMake compatibility; * VC++17 compatibility; * minor fixes; -* now depends on xTests 0.24+ - - -============================================================================ - -Changes for 1.11.1-alpha11 (16th July 2024) - -General: -======== +* now depends on xTests 0.24+; -* CMake compatibility fixes +## 1.11.1-alpha11 - 16th July 2024 -============================================================================ +* CMake compatibility fixes; -Changes for 1.11.1-alpha10 (14th July 2024) -General: -======== +## 1.11.1-alpha10 - 14th July 2024 * Fixing upper limit to **xTests** version as <0.23, in anticipation of imminent changes to **xTests**; * Compatibility with latest VC++ 17 (with Visual Studio 2022 version 17.10.1, _MSC_FULL_VER=194033811); -============================================================================ - -Changes for 1.11.1-alpha9 (9th July 2024) - -General: -======== +## 1.11.1-alpha9 - 9th July 2024 * Missing fix to `stlsoft::basic_simple_string`'s `#assign()`; -============================================================================ - -Changes for 1.11.1-alpha8 (9th July 2024) - -General: -======== - - * Added `platformstl::get_home_directory()` and related functions; - * GCC compatibility improvements; - * CMake improvements; - * Boilerplate file improvements; - * More examples and test programs; - -Changes: -======== - -Added `platformstl::get_home_directory()` and related functions: - * added **platformstl/system/directory_functions.h** and functions `platformstl_C_get_home_directory_a()`, `platformstl_C_get_home_directory_w()`, `platformstl::get_home_directory()`; - -GCC compatibility improvements: - * **stlsoft/api/external/string.h* macros implemented in terms of **strings.h**'s `strcasecmp()` etc, when available; - * `STLSOFT_THROW_X()`'s implementation functions `throw_x()` renamed to `stlsoft_CXX_throw()` and marked `noreturn`; - * `stlsoft::basic_string_view` ctors reference full member initialisation list; - * `unixstl::processtimes_stopwatch` members initialised (because compiler can't read the doc markup putting use of `#stop()` before `#start()` at the responsibility of the user); - * **unixstl/filesystem/path.hpp** fall-through added (in implementation of `unixstl::basic_path`); - * ; - -Boilerplate file improvements: - * added option '--no-make' to **execute_performance_tests.sh**; - * added option '--no-make' to **run_all_unit_tests.sh**; - * improved scope of files/directories to be removed by **remove_cmake_artefacts.sh**; - * added **run_all_scratch_tests.sh**; - * - -CMake improvements: - * proper dependency management when configuring/installing for first time; - * move use of flag `-Wno-unused-lambda-capture` into Clang-only generator expression(s); - -More examples: - * added **example.unixstl.filesystem.readdir_sequence** project; - * added **test.scratch.platformstl.system.directory_functions** project; - - -============================================================================ - -Changes for 1.11.1-alpha7 (5th May 2024) - -General: -======== - - * Visual C++ (17) compatibility; - * Windows compatibility for CMake; - * Miscellaneous changes; - -Changes: -======== - -Visual C++ (17) compatibility: - * include/stlsoft/util/std/library_discriminator.hpp compatibility fix for recognising standard library; - * added `STLSOFT_CUSTOM_NOINLINE` pseudo-keyword macro; - * include/stlsoft/api/internal/memfns.h minor fix; - * include/stlsoft/filesystem/io_functions/write_string.hpp minor fix; - * include/winstl/filesystem/findfile_sequence.hpp minor fix; - -Windows compatibility for CMake: - * now works (partially) on Windows; - -Miscellaneous changes: - * added **example.winstl.filesystem.findfile_sequence** example; - * various minor settings improvements; - * include/winstl/system/temporary_file_name.hpp replaced use of deprecated names; - - -============================================================================ - -Changes for 1.11.1-alpha6 (29th March 2024) - -General: -======== - - * added unit-test projects **test.unit.stlsoft.conversion.number.group_functions** and **test.unit.stlsoft.conversion.integer_to_lc_string**; - * partial merge of forthcoming branch 'ss/simple_string-null_object'; - -Changes: -======== - -Added unit-test projects **test.unit.stlsoft.conversion.number.group_functions** and **test.unit.stlsoft.conversion.integer_to_lc_string**: - * CHANGES.txt; - * include/stlsoft/conversion/integer_to_string/integer_to_lc_string.hpp; - * include/stlsoft/conversion/number/grouping_functions.hpp; - * test/unit/stlsoft/conversion/CMakeLists.txt; - * added test/unit/stlsoft/conversion/number/CMakeLists.txt; - * added test/unit/stlsoft/conversion/number/test.unit.stlsoft.conversion.number.group_functions/CMakeLists.txt; - * added test/unit/stlsoft/conversion/number/test.unit.stlsoft.conversion.number.group_functions/entry.cpp; - * test/unit/stlsoft/conversion/test.unit.stlsoft.conversion.byte_format_functions/CMakeLists.txt; - * test/unit/stlsoft/conversion/test.unit.stlsoft.conversion.byte_format_functions/entry.cpp; - * test/unit/stlsoft/conversion/test.unit.stlsoft.conversion.integer_to_base32_string/CMakeLists.txt; - * test/unit/stlsoft/conversion/test.unit.stlsoft.conversion.integer_to_base32_string/entry.cpp; - * test/unit/stlsoft/conversion/test.unit.stlsoft.conversion.integer_to_base36_string/CMakeLists.txt; - * test/unit/stlsoft/conversion/test.unit.stlsoft.conversion.integer_to_base36_string/entry.cpp; - * added test/unit/stlsoft/conversion/test.unit.stlsoft.conversion.integer_to_lc_string/CMakeLists.txt; - * added test/unit/stlsoft/conversion/test.unit.stlsoft.conversion.integer_to_lc_string/entry.cpp; - * test/unit/stlsoft/string/test.unit.stlsoft.string.string_slice/entry.cpp; - * test/unit/stlsoft/string/test.unit.stlsoft.string.string_view/entry.cpp; - -Partial merge of branch 'ss/simple_string-null_object': - * include/stlsoft/string/simple_string.hpp; - * test/performance/test.performance.stlsoft.simple_string.compare/main.cpp; - * test/unit/stlsoft/string/test.unit.stlsoft.string.shim_string/CMakeLists.txt; - * test/unit/stlsoft/string/test.unit.stlsoft.string.simple_string/CMakeLists.txt; - * test/unit/stlsoft/string/test.unit.stlsoft.string.simple_string/entry.cpp; - * test/unit/stlsoft/string/test.unit.stlsoft.string.static_string/CMakeLists.txt; - * test/unit/stlsoft/string/test.unit.stlsoft.string.static_string/entry.cpp; - * test/unit/stlsoft/string/test.unit.stlsoft.string.string_slice/CMakeLists.txt; - * test/unit/stlsoft/string/test.unit.stlsoft.string.string_slice/entry.cpp; - * test/unit/stlsoft/string/test.unit.stlsoft.string.string_view/CMakeLists.txt; - * test/unit/stlsoft/string/test.unit.stlsoft.string.string_view/entry.cpp; - - -============================================================================ - -Changes for 1.11.1-alpha5 (29th March 2024) - -General: -======== - - * various GCC-11 compatibility fixes; - -Changes: -======== - -GCC-11 compatibility fixes: - * dev/bin/batch_compile_check; - * include/stlsoft/diagnostics/std_chrono_hrc_stopwatch.hpp; - * include/stlsoft/internal/cccap/gcc.h; - * include/stlsoft/locale/locale_scope.hpp; - * include/stlsoft/shims/access/string/std/basic_string_view.hpp; - * include/stlsoft/shims/access/string/std/chrono.hpp; - * include/stlsoft/shims/attribute/get_ptr/std/auto_ptr.hpp; - * include/stlsoft/shims/attribute/get_ptr/std/shared_ptr.hpp; - * include/stlsoft/shims/attribute/get_ptr/std/unique_ptr.hpp; - * include/stlsoft/shims/logical/is_null/std/auto_ptr.hpp; - * include/stlsoft/shims/logical/is_null/std/shared_ptr.hpp; - * include/stlsoft/shims/logical/is_null/std/unique_ptr.hpp; - * include/stlsoft/util/options_verifier.hpp; - - -============================================================================ - -Changes for 1.11.1-alpha4 (18th March 2024) - -General: -======== - - * `stlsoft::basic_simple_string<>` now has `#equal()`; - * added 'stlsoft::std_chrono_hrc_stopwatch' stopwatch type; - * various performance improvements; - -Changes: -======== - -String enhancements: - * `stlsoft::basic_simple_string<>` now has `#equal()`; - * enhanced **test.unit.stlsoft.string.simple_string**; - - -Performance: - * include/stlsoft/string/char_traits.hpp - significant specialisation of `stlsoft::stlsoft_char_traits` for improving performance; - * include/stlsoft/api/internal/memfns.h - added `STLSOFT_API_INTERNAL_memfns_wmemcpy()` and `STLSOFT_API_INTERNAL_memfns_wmemset()`; - * added 'stlsoft::std_chrono_hrc_stopwatch' stopwatch type (include/stlsoft/diagnostics/std_chrono_hrc_stopwatch.hpp); - * added project **test.performance.platformstl.stopwatch**; - * added project **test.performance.stlsoft.simple_string.compare**; - * added project **test.performance.stlsoft.simple_string.op_eq**; - - -Various boilerplate improvements: - * build_cmake.sh - can now specify build targets; - * run_all_unit_tests.sh - now executes only unit/component tests; - * added execute_performance_tests.sh - executes performance tests; - - -============================================================================ - -Changes for 1.11.1-alpha3 (16th March 2024) - -General: -======== - - * `stlsoft::basic_simple_string<>` now has `#contains()`; - * `stlsoft::basic_static_string<>` now has `#contains()`; - * wholesale automated layout canonicalisation; - -Changes: -======== - -* numerous - - -============================================================================ - -Changes for 1.11.1-alpha2 (1st March 2024) - -General: -======== - - * True-Typedef supports stream-insertion (`operator <<()`): - * added `stlsoft::write_string<>()`; - * miscellaneous fixes (including C++14/17/20 compatibility); - -Changes: -======== - -True-Typedef supports stream-insertion (`operator <<()`), refactored, and added **test.unit.stlsoft.util.true_typedef**: - * include/stlsoft/util/true_typedef.hpp - * test/unit/stlsoft/CMakeLists.txt - * test/unit/stlsoft/util/CMakeLists.txt - * test/unit/stlsoft/util/test.unit.stlsoft.util.true_typedef/CMakeLists.txt - * test/unit/stlsoft/util/test.unit.stlsoft.util.true_typedef/entry.cpp - -Added `stlsoft::write_string<>()`, moved `stlsoft::read_line<>()`, unit-tests for each: - * include/stlsoft/filesystem/io_functions/write_string.hpp - added `stlsoft::write_string<>()` - * moved `stlsoft::read_line<>()` from **include/stlsoft/filesystem/read_line.hpp** to => **include/stlsoft/filesystem/io_functions/read_line.hpp**: - * include/stlsoft/filesystem/io_functions/read_line.hpp - * include/stlsoft/filesystem/io_functions.hpp - * include/stlsoft/filesystem/read_line.hpp - * added **test.unit.stlsoft.filesystem.io_functions.read_line** and **test.unit.stlsoft.filesystem.io_functions.write_string** - * test/unit/stlsoft/CMakeLists.txt - * test/unit/stlsoft/filesystem/CMakeLists.txt - * test/unit/stlsoft/filesystem/test.unit.stlsoft.filesystem.io_functions.read_line/CMakeLists.txt - * test/unit/stlsoft/filesystem/test.unit.stlsoft.filesystem.io_functions.read_line/entry.cpp - * test/unit/stlsoft/filesystem/test.unit.stlsoft.filesystem.io_functions.write_string/CMakeLists.txt - * test/unit/stlsoft/filesystem/test.unit.stlsoft.filesystem.io_functions.write_string/entry.cpp - -Miscellaneous: - * stlsoft/memory/util/allocator_features.hpp - fix to C++ language discrimination - * include/stlsoft/exception/out_of_memory_exception.hpp - language compatibility - * include/stlsoft/string/string_tokeniser.hpp - unused parameter warnings - * include/stlsoft/util/string_switch.hpp - trivial changes - * include/stlsoft/filesystem/read_line.hpp : + applied `STLSOFT_NOEXCEPT` where appropriate - * include/unixstl/filesystem/handles/memory_mapped_file_view_handle.hpp - language compatibility - * include/winstl/filesystem/handles/memory_mapped_file_view_handle.hpp - language compatibility - - -============================================================================ - -Changes for 1.11.1-alpha1 (20th February 2024) - -General: -======== - - * added `stlsoft::integer_to_base32_string<>()` integer to Base-32-string conversion - * added `stlsoft::integer_to_base36_string<>()` integer to Base-36-string conversion - * `stlsoft::basic_simple_string<>` now has `#starts_with()` and `#ends_with()` - * `stlsoft::basic_static_string<>` now has `#starts_with()` and `#ends_with()` - * `stlsoft::basic_static_string<>` now has `#substr()` - * `stlsoft::basic_static_string<>` now has `#front()` and `#back()` - * `stlsoft::basic_static_string<>` consistently and correctly throws exceptions on any operations that would cause exceeding of internal storage - * improvement to string insertion helper `string_insert()` to work with stream types that do and do not provide `sentry` - * added **test.unit.unixstl.filesystem.path** unit-test project - -Changes: -======== - -Integer to Base-32/36 string conversion: - * include/stlsoft/limits/integral_format_width_limits.hpp - * include/stlsoft/conversion/integer_to_string.hpp - * include/stlsoft/conversion/integer_to_string/integer_to_base32_string.hpp - * include/stlsoft/conversion/integer_to_string/integer_to_base36_string.hpp - * test/unit/stlsoft/conversion/CMakeLists.txt - * test/unit/stlsoft/conversion/test.unit.stlsoft.conversion.integer_to_base32_string/CMakeLists.txt - * test/unit/stlsoft/conversion/test.unit.stlsoft.conversion.integer_to_base32_string/entry.cpp - * test/unit/stlsoft/conversion/test.unit.stlsoft.conversion.integer_to_base36_string/CMakeLists.txt - * test/unit/stlsoft/conversion/test.unit.stlsoft.conversion.integer_to_base36_string/entry.cpp - -`#starts_with()` and `#ends_with()`: - * include/stlsoft/string/simple_string.hpp - * include/stlsoft/string/static_string.hpp - * test/unit/stlsoft/string/test.unit.stlsoft.string.simple_string/entry.cpp - * test/unit/stlsoft/string/test.unit.stlsoft.string.static_string/CMakeLists.txt - * test/unit/stlsoft/string/test.unit.stlsoft.string.static_string/entry.cpp - -Stream insertion improvements (including adding and applying `has_sentry` TMP type): - * include/stlsoft/meta/detectors.hpp - * include/stlsoft/meta/detector/has_sentry.hpp - * include/stlsoft/util/streams/string_insertion.hpp - * test/unit/CMakeLists.txt - * test/unit/unixstl/CMakeLists.txt - * test/unit/unixstl/filesystem/CMakeLists.txt - * test/unit/unixstl/filesystem/test.unit.unixstl.filesystem.path/CMakeLists.txt - * test/unit/unixstl/filesystem/test.unit.unixstl.filesystem.path/entry.cpp - * test/unit/stlsoft/string/test.unit.stlsoft.string.shim_string/entry.cpp - * test/unit/stlsoft/string/test.unit.stlsoft.string.string_slice/entry.cpp - * test/unit/stlsoft/string/test.unit.stlsoft.string.string_view/entry.cpp - -Miscellaneous: - * .vscode/settings.json - added settings - * include/stlsoft/stlsoft.h - version - -Minor tidying and consistency changes: - * include/atlstl/string/CComBSTR_veneer.hpp - * include/atlstl/string/string_traits.hpp - * include/inetstl/filesystem/findfile_sequence.hpp - * include/inetstl/network/connection.hpp - * include/inetstl/network/session.hpp - * include/mfcstl/collections/CString_adaptors.hpp - * include/mfcstl/string/string_traits.hpp - * include/platformstl/filesystem/cwd_stack.hpp - * include/unixstl/filesystem/filesystem_traits.hpp - * include/unixstl/filesystem/path.hpp - * include/unixstl/filesystem/readdir_sequence.hpp - * include/unixstl/filesystem/squeeze_functions.hpp - * include/winstl/filesystem/path.hpp - * include/winstl/filesystem/squeeze_functions.hpp - * include/winstl/registry/reg_key_sequence.hpp - * include/winstl/registry/reg_value.hpp - * include/winstl/security/token_information.hpp - * include/stlsoft/conversion/truncation_test.hpp - * include/stlsoft/iterators/filter_transform_iterator.hpp - * include/stlsoft/iterators/transform_filter_iterator.hpp - * include/stlsoft/string/fast_string_concatenator.hpp - * include/stlsoft/string/special_string_instance.hpp - * include/stlsoft/string/string_tokeniser.hpp - * include/stlsoft/string/string_traits_fwd.hpp - * include/stlsoft/string/string_view.hpp - * include/stlsoft/util/exception_string_creator.hpp - * include/stlsoft/util/operator_bool.hpp - - -============================================================================ - -Changes for 1.10.11 (16th February 2024) - -General: -======== - - * project boilerplate - * corrected inappropriate use of `ss_typename_param_k` - -Changes: -======== - - * include/inetstl/filesystem/findfile_sequence.hpp - corrected inappropriate use of `ss_typename_param_k` - * include/inetstl/network/connection.hpp - corrected inappropriate use of `ss_typename_param_k` - * include/inetstl/network/session.hpp - corrected inappropriate use of `ss_typename_param_k` - * include/stlsoft/conversion/truncation_test.hpp - corrected inappropriate use of `ss_typename_param_k` - * include/stlsoft/iterators/filter_transform_iterator.hpp - corrected inappropriate use of `ss_typename_param_k` - * include/stlsoft/iterators/transform_filter_iterator.hpp - corrected inappropriate use of `ss_typename_param_k` - * include/stlsoft/util/operator_bool.hpp - corrected inappropriate use of `ss_typename_param_k` - * include/unixstl/filesystem/path.hpp - corrected inappropriate use of `ss_typename_param_k` - * include/unixstl/filesystem/squeeze_functions.hpp - corrected inappropriate use of `ss_typename_param_k` - * include/winstl/filesystem/path.hpp - corrected inappropriate use of `ss_typename_param_k` - * include/winstl/filesystem/squeeze_functions.hpp - corrected inappropriate use of `ss_typename_param_k` - * include/winstl/security/token_information.hpp - corrected inappropriate use of `ss_typename_param_k` - - -============================================================================ - -Changes for 1.10.10 (16th February 2024) - -General: -======== - - * further tranche of stream insertion operator implementations - * fixes and enhancements to `stlsoft::util::string_insert` - * added `stlsoft::meta::hash_sentry` meta-type; - * added test.unit.unixstl.filesystem.path test project; - -Changes: -======== - - * .vscode/settings.json - added settings - * include/stlsoft/meta/detector/has_sentry.hpp - added `stlsoft::meta::hash_sentry` TMP detector type - * include/stlsoft/meta/detectors.hpp - added `stlsoft::meta::hash_sentry` TMP detector type - * include/stlsoft/util/streams/string_insertion.hpp - fixes and enhancements to `stlsoft::util::string_insert()` - * include/unixstl/filesystem/path.hpp - applied `stlsoft::util::string_insert()` to `unixstl::filesystem::basic_path<>` - * include/winstl/filesystem/path.hpp - applied `stlsoft::util::string_insert()` to `winxstl::filesystem::basic_path<>` - * test/unit/CMakeLists.txt - new project(s) - * test/unit/stlsoft/string/test.unit.stlsoft.string.shim_string/entry.cpp - enhanced unit-tests to verify changes to `stlsoft::string_insert()` - * test/unit/stlsoft/string/test.unit.stlsoft.string.simple_string/entry.cpp - enhanced unit-tests to verify changes to `stlsoft::string_insert()` - * test/unit/stlsoft/string/test.unit.stlsoft.string.string_slice/entry.cpp - enhanced unit-tests to verify changes to `stlsoft::string_insert()` - * test/unit/stlsoft/string/test.unit.stlsoft.string.string_view/entry.cpp - enhanced unit-tests to verify changes to `stlsoft::string_insert()` - * test/unit/unixstl/CMakeLists.txt - new project(s) - * test/unit/unixstl/filesystem/CMakeLists.txt - new project(s) - * test/unit/unixstl/filesystem/test.unit.unixstl.filesystem.path/CMakeLists.txt - added test.unit.unixstl.filesystem.path test project - * test/unit/unixstl/filesystem/test.unit.unixstl.filesystem.path/entry.cpp - added test.unit.unixstl.filesystem.path test project - - -============================================================================ - -Changes for 1.10.9 (12th February 2024) - -General: -======== - - * stlsoft::frequency_map uses traits to select between ordered and unordered representation - * added test.unit.stlsoft.containers.frequency_map project - * C++98 compatibility - -Changes: -======== - - * .vscode/settings.json - added settings - * include/stlsoft/containers/frequency_map.hpp - added traits (to select unordered vs ordered), improved implementation of `#push_n()`, added `noexcept`, added `#cbegin()`/`#cend()`, added `#crbegin()`/`#crend()` - * include/stlsoft/internal/cccap/clang.h - added discrimination of `STLSOFT_SPTR_T_BASE_TYPE`, `STLSOFT_UPTR_T_BASE_TYPE` - * include/stlsoft/internal/cccap/gcc.h - added discrimination of `STLSOFT_SPTR_T_BASE_TYPE`, `STLSOFT_UPTR_T_BASE_TYPE` - * include/stlsoft/internal/cccap/msvc.h - added discrimination of `STLSOFT_SPTR_T_BASE_TYPE`, `STLSOFT_UPTR_T_BASE_TYPE` - * **/CMakeLists.txt - minor improvements throughout - * test.unit.stlsoft.containers.frequency_map - added test.unit.stlsoft.containers.frequency_map project - * test/unit/stlsoft/memory/test.unit.stlsoft.memory.auto_buffer/entry.cpp - C++98 compatibility - * test/unit/stlsoft/string/test.unit.stlsoft.string.static_string/entry.cpp - C++98 compatibility - - -============================================================================ - -Changes for 1.10.8 (6th February 2024) - -General: -======== - - * added dev/bin/batch_compile_check - * language compatibility fix - * iterator definition fixes (related to C++17 deprecation of std::iterator) - -Changes: -======== - - * include/stlsoft/string/string_slice.h - ~ language compatibility fix - * dev/bin/batch_compile_check - new script to run cross-language/cross-version compilation - * include/stlsoft/properties/field_properties.hpp - compatibility fixes - * include/stlsoft/properties/method_properties.hpp - compatibility fixes - * include/stlsoft/shims/access/string/std/nullptr.hpp - compatibility fixes - * include/stlsoft/iterators/member_selector_iterator.hpp - iterator definition fixes - * include/stlsoft/util/std/iterator_helper.hpp - iterator definition fixes - - -============================================================================ - -Changes for 1.10.7 (30th January 2024) - -General: -======== - - * enhanced stream insertion operators, when used with types descended from `std::basic_ios<>`, to observe width and alignment for `stlsoft::basic_shim_string<>`, `stlsoft::basic_simple_string<>`, `stlsoft::basic_static_string`, `stlsoft::basic_string_view`, `stlsoft::stlsoft_C_string_slice_m_t`/`stlsoft::stlsoft_C_string_slice_w_t` - * refactored (almost) all direct calls to disparate parts of the `printf()`-family to use the STLSoft abstractions - * wholesale refinement of whitespace around conditional control statements; - * large number of minor and trivial tidyings - -Changes: -======== - - Insertion operators (#30): - - ~ moved test/unit/stlsoft/string/test.unit.string.simple_string => test/unit/stlsoft/string/test.unit.stlsoft.string.simple_string - + brought over test.unit.stlsoft.string.string_slice - + preparatory work, in defining some insertion operator tests - ~ whitespace - + added and applied `stlsoft::util::string_insert()`, including unit-tests, to `stlsoft::basic_shim_string<>`, `stlsoft::basic_simple_string<>`, `stlsoft::basic_static_string`, `stlsoft::stlsoft_C_string_slice_m_t`/`stlsoft::stlsoft_C_string_slice_w_t` - ~ applied `stlsoft::util::string_insert()` to `stlsoft::basic_string_view<>`, and brought in test.unit.stlsoft.string.string_view - ~ C++20 compatibility re `allocate()` hint - ~ tidying - ~ fix - - printf refactoring (#29): - - ~ nomenclature - ~ whitespace layout around flow-control keywords - ~ canonicalised indentation of `#define`s - ~ nomenclature - ~ printf()-related minor mods - - removed dead-code - + added test.unit.stlsoft.conversion.byte_format_functions - `stlsoft::format_bytes()` : ~ refactoring in terms of `stlsoft_C_snprintf()` (replacing `::sprintf()`) - - Typos and tidying (#28): - - ~ nomenclature - ~ whitespace layout around flow-control keywords - ~ canonicalised indentation of `#define`s - ~ nomenclature - ~ printf()-related minor mods - - removed dead-code - - Typos and tidying (#27): - - ~ nomenclature - ~ whitespace layout around flow-control keywords - ~ canonicalised indentation of `#define`s - - -============================================================================ - -Changes for 1.10.6 (28th January 2024) - -General: -======== - - * simplification and improvement of CMake handling - * dependency on xTests is now optional (in prepare_cmake.sh) - * now depends on xTests 0.21.2 - * CMake C language now C11 - * fixed defect in `stlsoft::pod_vector` - - -============================================================================ - -Changes for 1.10.5 (18th January 2024) - -General: -======== - - * C++20 and C17 compatibility changes, including `std::allocator_traits`, allocator hints, tightening rules on anonymous enums - * brought over (from internal repository) more unit tests, for: `pod_vector`, `auto_buffer`, `shim_string`, `simple_string`, `static_string` - * stlsoft::pod_vector now default-initialses elements in size-constructor - - -============================================================================ - -Changes for 1.10.4 (16th January 2024) - -General: -======== - - * C++17 compatibility, including: allocators, binders, auto_ptr; - * unixstl::semaphore now fully implemented on Mac OSX; - * unixstl::synchronisation_exception modern C++ compatibility - * added supporting test (for unixstl::semaphore) - * marked relevant files with 'STLSOFT:DEPRECATED' and 'STLSOFT:FILE_NOT_SELF_SUFFICIENT' to simplify automated compatibility checks - - -============================================================================ - -Changes for 1.10.3 (12th January 2024) - -General: -======== - - * include/unixstl/filesystem/path_functions/classify_functions_X_.h - GCC / Clang warning; - * include/winstl/filesystem/path_functions/classify_functions_X_.h - GCC / Clang warning; - * include/comstl/comstl.h - ~ fixed sub-project version; - * include/inetstl/inetstl.h - ~ fixed sub-project version; - * include/unixstl/unixstl.h - ~ fixed sub-project version; - * include/winstl/winstl.h - ~ fixed sub-project version; - * include/stlsoft/conversion/sas_to_string.hpp - typo; - * include/stlsoft/util/std/iterator_helper.hpp - typo; - * include/winstl/filesystem/path.hpp - typo; - * minor fixes to project boilerplate - - -============================================================================ - -Changes for 1.10.2 (3rd January 2024) - -General: -======== - - * include/comstl/collections/safearray_sequence.hpp - defect fix in `safearray_sequence.empty()`; - * include/unixstl/filesystem/filesystem_traits.hpp - removing unused / repetitive code; - * include/unixstl/filesystem/readdir_sequence.hpp - various fixes, including significant defect whereby path would not be updated correctly (leading to FH exhaustion with recls); - * include/winstl/filesystem/filesystem_traits.hpp - removing unused / repetitive code; - * MinGW 64-bit compatibility improvements; - * large number of trivial / whitespace consistency fixes; - - -============================================================================ - -Changes for 1.9.136 (15th December 2023) - - * lots of changes to standardise the library boilerplate - * porting back significant and necessary fixes from STLSoft-1.10 - - -============================================================================ - -Changes for 1.10.1 (December 13th 2023) - -General: -======== - - * CMake support - -Changes: -======== - - STLSoft / UNIXSTL / WinSTL: - =========================== - - * trivial cleanup - whitespace, UTF-8 characters in comments in some headers - - -============================================================================ - -Changes for 1.10.1 beta 33 (April 26th 2021) - -General: -======== - - * Clang compatibility - -Changes: -======== - - STLSoft: - ======== - - ~ stlsoft/internal/cccap/clang.h: - ~ Clang inlines now 'static inline' - -============================================================================ - -Changes for 1.10.1 beta 32 (April 26th 2021) - -General: -======== - - * GCC/Clang compatibility - -Changes: -======== - - STLSoft: - ======== - - ~ stlsoft/shims/access/string/fwd.h: - ~ GCC/Clang compatibility - -============================================================================ - -Changes for 1.10.1 beta 31 (April 2nd 2021) - -General: -======== - - * Clang compatibility - * provision for customising inline (in C compilation) - * warnings - -Changes: -======== - - STLSoft: - ======== - - ~ stlsoft/internal/cccap/clang.h: - ~ Clang inlines now 'extern inline' - - ~ stlsoft/iterators/c_str_inserter.hpp: - ~ c_str_inserter() now does not need lvalue argument - - ~ stlsoft/memory/auto_buffer.h: - ~ clearer initialisation - - ~ stlsoft/stlsoft.h: - ~ allow STLSOFT_CUSTOM_C_INLINE to override STLSOFT_CF_C99_INLINE - ~ preparatory changes - - ~ stlsoft/string/trim_functions.hpp: - ~ Clang compatibility - - -============================================================================ - -Changes for 1.10.1 beta 30 (March 29th 2021) - -General: -======== - - * Clang compatibility - * warnings - -Changes: -======== - - STLSoft: - ======== - - ~ stlsoft/containers/util/array_policies.hpp: - ~ stlsoft/synch/concepts.hpp: - ~ warnings - - ~ stlsoft/internal/cccap/clang.h: - ~ Clang compatibility - - ~ stlsoft/util/std/iterator_helper.hpp: - ~ Clang compatibility - - UNIXSTL: - ======== - - ~ unixstl/filesystem/path_classify_functions.h: - ~ unixstl/filesystem/path_functions/classify_functions_X_.h: - ~ Clang compatibility - - WinSTL: - ======= - - ~ winstl/filesystem/path_classify_functions.h: - ~ winstl/filesystem/path_functions/classify_functions_X_.h: - ~ Clang compatibility - - -============================================================================ - -Changes for 1.10.1 beta 29 (16th February 2021) - -General: -======== - - * a whole lot of Clang- and GCC-compatibility - -Changes: -======== - - STLSoft: - ======== - - ~ stlsoft/error/active_end_iterator_exhaustion.hpp: - + added STLSOFT_NOEXCEPT_STDOVR, which resolves to noexcept, or throw(), or whatever is prescribed - - ~ stlsoft/error/contract_violation.hpp: - + added STLSOFT_NOEXCEPT_STDOVR, which resolves to noexcept, or throw(), or whatever is prescribed - - ~ stlsoft/error/conversion_error.hpp: - + added STLSOFT_NOEXCEPT_STDOVR, which resolves to noexcept, or throw(), or whatever is prescribed - - ~ stlsoft/error/iteration_interruption.hpp: - + added STLSOFT_NOEXCEPT_STDOVR, which resolves to noexcept, or throw(), or whatever is prescribed - - ~ stlsoft/error/unrecoverable.hpp: - + added STLSOFT_NOEXCEPT_STDOVR, which resolves to noexcept, or throw(), or whatever is prescribed - - ~ stlsoft/exception/special/errno_exception.hpp: - + added STLSOFT_NOEXCEPT_STDOVR, which resolves to noexcept, or throw(), or whatever is prescribed - ~ GCC compatibility - - ~ stlsoft/internal/cccap/gcc.h: - + added discrimination of STLSOFT_CF_gcc_pragma_diagnostic_pop - - ~ stlsoft/internal/cccap/msvc.h: - + added discrimination of STLSOFT_CF_msvc_pragma_warning_pop - ~ fixed VC++ definition of STLSOFT_CF_nullptr_KEYWORD_SUPPORT such that ss_nullptr_k is NULL in C - - ~ stlsoft/internal/warnings/pop/suppress_deprecation_.h: - + added discrimination of STLSOFT_CF_gcc_pragma_diagnostic_pop - + added discrimination of STLSOFT_CF_msvc_pragma_warning_pop - - ~ stlsoft/internal/warnings/push/suppress_deprecation_.h: - + added discrimination of STLSOFT_CF_gcc_pragma_diagnostic_pop - + added discrimination of STLSOFT_CF_msvc_pragma_warning_pop - - ~ stlsoft/locale/exception/locale_exception.hpp: - + added STLSOFT_NOEXCEPT_STDOVR, which resolves to noexcept, or throw(), or whatever is prescribed - ~ GCC compatibility - - ~ stlsoft/shims/access/string/fwd.h: - ~ Clang-/GCC-compatibility - - ~ stlsoft/shims/access/string/std/exception.hpp: - ~ returning appropriate default behaviour in NoX - ~ preparatory refactoring - - ~ stlsoft/shims/logical/is_null.hpp: - ~ compatibility with compilers/standard-libraries in which std::auto_ptr is deprecated or missing - - ~ stlsoft/stlsoft.h: - ~ Clang compatibility - + added STLSOFT_NOEXCEPT_STDOVR, which resolves to noexcept, or throw(), or whatever is prescribed - - ~ stlsoft/string/c_string/strnicmp.h: - ~ Clang-compatibility - - ~ stlsoft/string/c_string/strnistrn.h: - ~ Clang-compatibility - - ~ stlsoft/string/replace_functions.hpp: - ~ MinGW-compatibility - - ~ stlsoft/string/trim_functions.hpp: - ~ GCC compatibility - - ~ stlsoft/util/std/stdio_overload_detectors.hpp: - ~ Clang-compatibility - - ATLSTL: - ======= - - ~ atlstl/util/module_scope.hpp: - + added STLSOFT_NOEXCEPT_STDOVR, which resolves to noexcept, or throw(), or whatever is prescribed - - COMSTL: - ======= - - ~ comstl/exception/variant_type_exception.hpp: - + added STLSOFT_NOEXCEPT_STDOVR, which resolves to noexcept, or throw(), or whatever is prescribed - - ~ comstl/shims/access/string/VARIANT.hpp: - ~ removing compiler specific deprecation warning suppression, via stlsoft/internal/warnings/pop/suppress_deprecation_.h and stlsoft/internal/warnings/push/suppress_deprecation_.h - - ~ comstl/typelib/TypeInfo_resource_scope.hpp: - ~ defect fix (disambiguating template parameter names - - ~ comstl/util/initialisers.hpp: - + added STLSOFT_NOEXCEPT_STDOVR, which resolves to noexcept, or throw(), or whatever is prescribed - - MFCSTL: - ======= - - ~ mfcstl/shims/access/string/CException.hpp: - ~ preparatory changes - - PlatformSTL: - ============ - - ~ platformstl/system/environment_map.hpp: - + added STLSOFT_NOEXCEPT_STDOVR, which resolves to noexcept, or throw(), or whatever is prescribed - - ~ platformstl/system/environment_variable_traits.hpp: - ~ MinGW-compatibility - + added STLSOFT_NOEXCEPT_STDOVR, which resolves to noexcept, or throw(), or whatever is prescribed - ~ removing compiler specific deprecation warning suppression, via stlsoft/internal/warnings/pop/suppress_deprecation_.h and stlsoft/internal/warnings/push/suppress_deprecation_.h - - UNIXSTL: - ======== - - ~ unixstl/dl/dl_call.hpp: - + added STLSOFT_NOEXCEPT_STDOVR, which resolves to noexcept, or throw(), or whatever is prescribed - - ~ unixstl/filesystem/filesystem_traits.hpp: - ~ tidying - - ~ unixstl/filesystem/pipe.hpp: - ~ removing compiler specific deprecation warning suppression, via stlsoft/internal/warnings/pop/suppress_deprecation_.h and stlsoft/internal/warnings/push/suppress_deprecation_.h - - ~ unixstl/system/console_functions.h: - ~ removing compiler specific deprecation warning suppression, via stlsoft/internal/warnings/pop/suppress_deprecation_.h and stlsoft/internal/warnings/push/suppress_deprecation_.h - - ~ unixstl/system/directory_functions.h: - ~ tidying - - ~ unixstl/system/system_traits.hpp: - ~ tidying - - WinSTL: - ======= - - ~ winstl/dl/dl_call.hpp: - + added STLSOFT_NOEXCEPT_STDOVR, which resolves to noexcept, or throw(), or whatever is prescribed - - ~ winstl/error/conversion_error.hpp: - + added STLSOFT_NOEXCEPT_STDOVR, which resolves to noexcept, or throw(), or whatever is prescribed - - ~ winstl/security/token_information.hpp: - ~ MinGW-compatibility - - ~ winstl/synch/tss_index.hpp: - + added STLSOFT_NOEXCEPT_STDOVR, which resolves to noexcept, or throw(), or whatever is prescribed - - ~ winstl/system/system_version.hpp: - ~ sorting of compiler-specific warning deprecation - somewhat kicked down the road until STLSoft 1.11 - - - -============================================================================ - -Changes for 1.10.1 beta 28 (18th January 2021) - -General: -======== - - * added character-array overloads of fast_strftime() - * WinSTL hard link information functions now work for directories as well as files - * various defect fixes - -Changes: -======== - - STLSoft: - ======== - - ~ stlsoft/conversion/sas_to_string.hpp: - ~ casts to invoke shim temporary return values' types' implicit conversions - stlsoft::sas_to_string() : ~ now double-invokes shims in order to work with arbitrary types; compiler will optimise out easily - - ~ stlsoft/shims/access/string/std/chrono.hpp: - ~ fixed wrong include-case - - ~ stlsoft/time/fast_strftime.hpp: - + added character-array overloads of fast_strftime() - + added wide overload of fast_strftime() - ~ preparatory refactoring - - ~ stlsoft/util/resizeable_buffer_helpers.hpp: - ~ backwards-compatibility with VC++ 6 - ~ preparatory changes - - MFCSTL: - ======= - - ~ mfcstl/shims/access/string/CException.hpp: - ~ string access shims for CException now works in case where no string can be elicited, and also elides trailing whitespace and periods - ~ preparatory refactoring - - PlatformSTL: - ============ - - ~ platformstl/filesystem/path_functions.h: - ~ fixed defect introduced in 1.10.1 beta-26 - - UNIXSTL: - ======== - - ~ unixstl/filesystem/path.hpp: - ~ fixed (debug-only) defect in (unix|win)stl::basic_path<> - - WinSTL: - ======= - - ~ winstl/dl/dl_call.hpp: - winstl::dl_call() : ~ now always assumes cdecl on 64-bit architectures - + added noexcept() - ~ preparatory changes - - ~ winstl/filesystem/current_directory_scope.hpp: - ~ refactoring - - ~ winstl/filesystem/file_functions.hpp: - ~ refactoring - - ~ winstl/filesystem/filesystem_traits.hpp: - winstl::filesystem_traits<>::GetFullPathName(A|W) : ~ correction to detection of 1 + longest-possible (regular) path-name - - ~ winstl/filesystem/findfile_sequence.hpp: - ~ fixing defect - ~ refactoring - - ~ winstl/filesystem/link_functions.h: - (|winstl_C_)hard_link_get_link_information(|_a|_w) : + now works for directories via a repeated call, for directories only, specifying the FILE_FLAG_BACKUP_SEMANTICS flag - - ~ winstl/filesystem/path.hpp: - ~ refactoring - ~ fixed (debug-only) defect in (unix|win)stl::basic_path<> - - - -============================================================================ - -Changes for 1.10.1 beta 27 (10th January 2021) - -General: -======== - - * added string access shims for std::chrono type(s) - * some GCC compatibility tweaks - -Changes: -======== - - STLSoft: - ======== - - ~ stlsoft/internal/std/has/auto_ptr_.hpp: - ~ refining std::auto_ptr compatibility detection (for GCC, C++ 11-14) - - ~ stlsoft/shims/access/string.hpp: - + added string access shims for std::chrono type(s) - ~ minor typo fix - - + stlsoft/shims/access/string/std/chrono.hpp: - + added string access shims for std::chrono type(s) - - ~ stlsoft/shims/attribute/get_ptr.hpp: - ~ minor typo fix - - ~ stlsoft/shims/attribute/get_ptr/std/auto_ptr.hpp: - ~ stlsoft/shims/logical/is_null/std/auto_ptr.hpp: - ~ enforcing std::auto_ptr compatibility detection - - WinSTL: - ======= - - ~ winstl/api/external/FileManagement.h: - ~ fix - - -============================================================================ - -Changes for 1.10.1 beta 26 (4th January 2021) - -General: -======== - - * added (UNIXSTL and WinSTL) Path Classification API (from 1.12 work), which work with Windows UNC and long-path root designators and all slash conventions - * added (UNIXSTL and WinSTL) path parsing function - include/???stl/filesystem/path_parse_functions.h, presenting a consistent set of functions centralised from disparate parts of the libraries - * BREAKING CHANGES: (UNIXSTL and WinSTL) basic_path<> methods get_file() and get_ext() now return slices, and get_ext() changed semantics to include '.' - * (UNIXSTL and WinSTL) basic_path<> added move semantics and get_location() method and made swap() method public, as well as numerous defect fixes and consistency improvements implemented in terms of new Path Classification API - * (UNIXSTL and WinSTL) filesystem_traits<> added path classification and path parsing methods, as well as numerous defect fixes - * updated copyright info for all files, from Synesis Software to Synesis Information Systems - * stlsoft::basic_path_buffer<> added resize(), back(), front() methods - * added added stlsoft_C_(str|wcs)nicmp() - * raw (C) string slice types moved out of stlsoft:: namespace in C++ - * C++14 compatibility - * a whole lot of work to reduce dependencies - * many improvements to GCC compatibility - * all uses of memcpy() and memset() now in terms of abstractions (in stlsoft/api/internal/memfns.h) - * BREAKING CHANGES: ~ abstracted out string-handling from *stl::system_traits<> into stlsoft::c_string_traits<>, and removed several unused (and sketchy) functions - -Changes: -======== - - STLSoft: - ======== - - ~ stlsoft/algorithms/pod.hpp: - ~ stlsoft/containers/util/array_policies.hpp: - ~ stlsoft/conversion/byte_format_functions.hpp: - ~ stlsoft/conversion/char_conversions.hpp: - ~ stlsoft/obsolete/first_class_promoter.hpp: - ~ stlsoft/string/char_traits.hpp: - ~ stlsoft/string/copy_functions.h: - ~ stlsoft/string/cstring_maker.hpp: - ~ stlsoft/string/fast_string_concatenator.hpp: - ~ stlsoft/string/simple_string.hpp: - ~ stlsoft/string/special_string_instance.hpp: - ~ all uses of memcpy() and memset() now in terms of abstractions (in stlsoft/api/internal/memfns.h) - - ~ stlsoft/api/external/string.h: - ~ stlsoft/util/std/stdio_overload_detectors.hpp: - ~ GCC compatibility - - + stlsoft/api/internal/memfns.h: - + added abstractions for memcpy() and memset() - - ~ stlsoft/conversion/integer_to_string/integer_to_decimal_string.hpp: - ~ stlsoft/conversion/integer_to_string/integer_to_hexadecimal_string.hpp: - ~ stlsoft/conversion/integer_to_string/integer_to_octal_string.hpp: - ~ all uses of memcpy() and memset() now in terms of abstractions (in stlsoft/api/internal/memfns.h) - ~ reworked pointer calculation to comply with GCC's -Warray-bounds warning - - ~ stlsoft/conversion/number/grouping_functions.hpp: - ~ STRICT compatibility - - ~ stlsoft/filesystem/path_buffer.hpp: - ~ all uses of memcpy() and memset() now in terms of abstractions (in stlsoft/api/internal/memfns.h) - + added stlsoft::(basic_|)path_buffer<>::resize() - + added ctor taking rvalue buffer_type and size - + added stlsoft::basic_path_buffer::(back|front)() - - ~ stlsoft/internal/cccap/gcc.h: - ~ C-compatibility - - ~ stlsoft/internal/std/has/auto_ptr_.hpp: - ~ for GCC 9+ and C++14 or later we do not enable, so as to avoid warnings - - ~ stlsoft/stlsoft.h: - BREAKING CHANGES: ~ abstracted out string-handling from *stl::system_traits<> into stlsoft::c_string_traits<>, and removed several unused (and sketchy) functions - - + stlsoft/string/c_string/strnicmp.h: - + added stlsoft_C_(str|wcs)nicmp() - - ~ stlsoft/string/c_string/strnpbrkn.h: - ~ fixed include-guards - - + stlsoft/string/c_string/strnrchr.h: - ~ defect fix - - ~ stlsoft/string/c_string_traits.hpp: - ~ all uses of memcpy() and memset() now in terms of abstractions (in stlsoft/api/internal/memfns.h) - BREAKING CHANGES: ~ abstracted out string-handling from *stl::system_traits<> into stlsoft::c_string_traits<>, and removed several unused (and sketchy) functions - - ~ stlsoft/string/string_slice.h: - ~ stlsoft_C_string_slice_a_t moved out of stlsoft namespace into global namespace, and renamed stlsoft_C_string_slice_m_t - ~ stlsoft_C_string_slice_w_t moved out of stlsoft namespace into global namespace - - ~ stlsoft/string/string_slice.hpp: - + added operators with lhs as cc* and rhs as slice const& - + added noexcept - - + stlsoft/util/resizeable_buffer_helpers.hpp: - + added stlsoft/util/resizeable_buffer_helpers.hpp - - ACESTL: - ======= - - ~ acestl/collections/message_queue_sequence.hpp: - ~ acestl/memory/message_block_functions.hpp: - ~ all uses of memcpy() and memset() now in terms of abstractions (in stlsoft/api/internal/memfns.h) - - ATLSTL: - ======= - - ~ atlstl/string/CComBSTR_veneer.hpp: - ~ refactored to avoid compiler-specific CRT function - - COMSTL: - ======= - - ~ comstl/collections/enumeration_policies.hpp: - ~ comstl/shims/access/string/VARIANT.hpp: - ~ comstl/util/variant.hpp: - ~ all uses of memcpy() and memset() now in terms of abstractions (in stlsoft/api/internal/memfns.h) - - ~ comstl/conversion/interface_cast.hpp: - ~ GCC compatibility - - InetSTL: - ======== - - ~ inetstl/filesystem/filesystem_traits.hpp: - ~ GCC compatibility - BREAKING CHANGES: ~ abstracted out string-handling from *stl::system_traits<> into stlsoft::c_string_traits<>, and removed several unused (and sketchy) functions - - ~ inetstl/filesystem/findfile_sequence.hpp: - ~ inetstl/filesystem/functionals.hpp: - ~ inetstl/inetstl.h: - ~ GCC compatibility - - MFCSTL: - ======= - - PlatformSTL: - ============ - - ~ platformstl/filesystem/FILE_stream.hpp: - ~ all uses of memcpy() and memset() now in terms of abstractions (in stlsoft/api/internal/memfns.h) - - ~ platformstl/system/environment_variable_traits.hpp: - ~ STRICT compatibility - - UNIXSTL: - ======== - - ~ unixstl/filesystem/current_directory.hpp: - ~ unixstl/filesystem/current_directory_scope.hpp: - ~ canonicalising - - ~ unixstl/filesystem/filesystem_traits.hpp: - + added path_is_absolute() - + added path_classification_results_type type, path_classify(), path_is_rooted() - + added 2-param is_root_designator() - + added missing (wrt winstl::filesystem_traits<>) directory-end and path classification and analysis functions - + added large_size_type - ~ fixed defect in unixstl::filesystem_traits::get_full_path_name() - ~ refactoring, and removal of wide-variants - ~ directory-end return-value fixes - ~ defect fix, and some comment corrections - ~ all uses of memcpy() and memset() now in terms of abstractions (in stlsoft/api/internal/memfns.h) - - ~ unixstl/filesystem/glob_sequence.hpp: - ~ all uses of memcpy() and memset() now in terms of abstractions (in stlsoft/api/internal/memfns.h) - - ~ unixstl/filesystem/path.hpp: - + added move_semantics for unixstl::(basic_|)path - + added get_location() - ~ fixed pop() and pop_ext() - ~ fixed canonicalise() - ~ unixstl::(basic_|)path get_file() and get_ext() now return string slice, and get_ext() includes the leading '.' (if extension present) - ~ unixstl::(basic_|)path::swap() now public - ~ canonicalising - - removal of never-implemented method - - + unixstl/filesystem/path_classify_functions.h: - + added path_is_rooted() - + added unixstl/filesystem/path_classify_functions.h - - ~ unixstl/filesystem/pipe.hpp: - ~ STRICT compatibility - - ~ unixstl/filesystem/squeeze_functions.hpp: - ~ winstl::(basic_|)path get_file() and get_ext() now return string slice, and get_ext() includes the leading '.' (if extension present) - - ~ unixstl/system/directory_functions.h: - ~ fixed defect in unixstl_C_get_home_directory_a() - - ~ unixstl/system/system_traits.hpp: - + added resizeable buffer overload of get_home_directory - + added overload of get_environment_variable() taking resizeable-buffer - BREAKING CHANGES: ~ abstracted out string-handling from *stl::system_traits<> into stlsoft::c_string_traits<>, and removed several unused (and sketchy) functions - - WinSTL: - ======= - - ~ winstl/controls/functionals.hpp: - ~ winstl/conversion/char_conversions.hpp: - ~ winstl/diagnostics/output_debug_line.h: - ~ winstl/diagnostics/output_debug_line.hpp: - ~ winstl/filesystem/file_path_buffer.hpp: - ~ winstl/process/functions.h: - ~ winstl/registry/reg_key.hpp: - ~ winstl/toolhelp/sequence_base.hpp: - ~ all uses of memcpy() and memset() now in terms of abstractions (in stlsoft/api/internal/memfns.h) - - ~ winstl/filesystem/current_directory.hpp: - ~ winstl/filesystem/current_directory_scope.hpp: - ~ canonicalising - - ~ winstl/filesystem/directory_functions.hpp: - winstl::filesystem_traits : + added find_last_path_name_separator() overloads - - ~ winstl/filesystem/filesystem_traits.hpp: - + added 2-param is_root_designator() - + added path_is_absolute() - + added path_classify_root() - + added path_is_rooted() - + added overload of remove_dir_end() - + added find_first_path_name_separator()-family of functions - + added find_last_path_name_separator() overloads - + added path_classification_results_type type and path_classify() - ~ fixed multibyte-wide defect - ~ all uses of memcpy() and memset() now in terms of abstractions (in stlsoft/api/internal/memfns.h) - ~ directory-end return-value fixes - ~ changed overload of ensure_dir_end() - - ~ winstl/filesystem/findfile_sequence.hpp: - ~ all uses of memcpy() and memset() now in terms of abstractions (in stlsoft/api/internal/memfns.h) - ~ GCC compatibility - ~ defect fix - - ~ winstl/filesystem/functionals.hpp: - ~ STRICT compatibility - - ~ winstl/filesystem/path.hpp: - + added move constructor - - removal of unused local typedefs - (unix|win)stl::(basic_|)path<> : + added get_location() - ~ improving winstl::(basic_|)path::canonicalise_path() - ~ fixed push_() semantics to include handing drive-relative paths - ~ winstl::(basic_|)path get_file() and get_ext() now return string slice, and get_ext() includes the leading '.' (if extension present) - ~ refactored pop(), pop_sep(), pop_ext() in terms of new path-classification API - ~ canonicalising - ~ fixed the off-by-one by allowing (internal) move-construction from low-level buffer - - removed winstl::basic_path::push_ext(class_type const&, bool) - - + winstl/filesystem/path_classify_functions.h: - ~ widestring compatibility - + added WINSTL_PATH_CLASSIFY_F_IGNOREINVALIDCHARSINLONGPATH - + added path_is_absolute() - + added path_classify_root() - ~ fix - + added path_is_rooted() - ~ missing include - path classification functions : + added wide implementations - ~ long-prefixed paths may not contain forward slashes - path classify functions : ~ handling home-rooted names (when WINSTL_PATH_CLASSIFY_F_RECOGNISETILDEHOME specified) - path classify functions : ~ handling long-path prefixed drive-rooted names - path classify functions : ~ handling embedded NUL characters; ~ handling very-short UNC paths - path classify functions : ~ handling slash-runs - winstl_C_path_classification_results_m_t : + added numDirectoryParts and numDotsDirectoryParts fields - path classify functions : ~ handling "." and ".." - path classify functions : ~ file => entry - winstl_C_path_classify_m : + now handles UNC paths - + added winstl/filesystem/path_classify_functions.h - - + winstl/filesystem/path_functions/classify_functions_X_.h: - ~ widestring compatibility - + added WINSTL_PATH_CLASSIFY_F_IGNOREINVALIDCHARSINLONGPATH - + added path_classify_root() - ~ MinGW compatibility - path classification functions : + added wide implementations - ~ long-prefixed paths may not contain forward slashes - path classify functions : ~ handling home-rooted names (when WINSTL_PATH_CLASSIFY_F_RECOGNISETILDEHOME specified) - path classify functions : ~ handling long-path prefixed drive-rooted names - path classify functions : ~ handling embedded NUL characters; ~ handling very-short UNC paths - path classify functions : ~ handling slash-runs - winstl_C_path_classification_results_m_t : + added numDirectoryParts and numDotsDirectoryParts fields - path classify functions : ~ handling "." and ".." - path classify functions : ~ file => entry - winstl_C_path_classify_m : + now handles UNC paths - + added winstl/filesystem/path_classify_functions.h - - ~ winstl/filesystem/path_parse_functions.h: - + added find_first_path_name_separator()-family of functions - ~ extracted out path-parsing functions - - ~ winstl/filesystem/squeeze_functions.hpp: - ~ winstl::(basic_|)path get_file() and get_ext() now return string slice, and get_ext() includes the leading '.' (if extension present) - - ~ winstl/shims/access/string/HWND.hpp: - ~ vestigial defect fix - - ~ winstl/shims/conversion/to_DATE/FILETIME.hpp: - ~ winstl/shims/conversion/to_DATE/SYSTEMTIME.hpp: - ~ winstl/shims/conversion/to_DATE/UDATE.hpp: - ~ winstl/shims/conversion/to_FILETIME/UDATE.hpp: - ~ winstl/shims/conversion/to_SYSTEMTIME/UDATE.hpp: - ~ winstl/system/os_version.h: - ~ winstl/system/temporary_file_name.hpp: - ~ winstl/system/version_info.hpp: - ~ winstl/winstl.h: - ~ GCC compatibility - - ~ winstl/system/directory_functions.h: - ~ all uses of memcpy() and memset() now in terms of abstractions (in stlsoft/api/internal/memfns.h) - ~ GCC compatibility - - ~ winstl/system/system_traits.hpp: - ~ GCC compatibility - BREAKING CHANGES: ~ abstracted out string-handling from *stl::system_traits<> into stlsoft::c_string_traits<>, and removed several unused (and sketchy) functions - - -============================================================================ - -Changes for 1.10.1 beta 25 (14th December 2020) - -General: -======== - - * added two more files missing from beta 23 - D'oh! - -Changes: -======== - - STLSoft: - ======== - - + stlsoft/conversion/char2str.hpp - + added stlsoft::char2str() conversion function - - + stlsoft/string/c_string/strnpbrkn.h: - + added stlsoft_C_(str|wcs)npbrkn() - - -============================================================================ - -Changes for 1.10.1 beta 24 (13th December 2020) - -General: -======== - - * added file unixstl/filesystem/path_buffer.hpp missing from beta 23 - -Changes: -======== - - UNIXSTL: - ======== - - + unixstl/filesystem/path_buffer.hpp: - + added unixstl::basic_path_buffer - - -============================================================================ - -Changes for 1.10.1 beta 23 (13th December 2020) - -General: -======== - - * basic_file_path_buffer<> is now deprecated in all projects, and all dependent components are modified to use other facilities - * added platformstl::environment_variable<> class template - * added (in)equality operators for stlsoft::error_desc - * added stlsoft::basic_path_buffer<> component, as an alternative to basic_file_path_buffer<> - * stlsoft::auto_buffer<> class template copy_from() method, and ctor and resize() method that take value for initialisation of (new) elements - * added stlsoft::strnpbrkn()/wcsnpbrkn() (and added stlsoft_C_(str|wcs)npbrkn()) - * added move constructor to unixstl::module and winstl::module - * large number of new methods and defect fixes in (platformstl|unixstl|winstl)::filesystem_traits - * large number of new methods and defect fixes in (platformstl|unixstl|winstl)::system_traits - -Changes: -======== - - InetSTL: - ======== - - ~ inetstl/filesystem/findfile_sequence.hpp: - ~ abstraction of Windows APIs - - PlatformSTL: - ============ - - ~ platformstl/filesystem/file_path_buffer.hpp: - ~ platformstl::basic_file_path_buffer is now deprecated - - + platformstl/system/environment_variable.hpp: - + added platformstl::environment_variable<> class template - - STLSoft: - ======== - - ~ stlsoft/error/error_desc.hpp: - + added stlsoft::error_desc (in)equality operators - - + stlsoft/filesystem/path_buffer.hpp: - + added stlsoft/path_buffer.hpp (stlsoft::basic_path_buffer<>) - + added winstl::(basic_)path_buffer - - ~ stlsoft/memory/auto_buffer.hpp: - + auto_buffer added copy_from() method that - + auto_buffer added ctor and resize() methods that take value for initialisation of (new) elements) - - ~ stlsoft/stlsoft.h: - ~ compatibility with Visual Studio 2019 (16.8.2) - - + stlsoft/string/c_string/strnpbrkn.h: - + added stlsoft_C_(str|wcs)npbrkn() - - UNIXSTL: - ======== - - ~ unixstl/dl/module.hpp: - + added move constructor - - ~ unixstl/filesystem/current_directory_scope.hpp: - - removed dependency on basic_file_path_buffer - - ~ unixstl/filesystem/directory_functions.hpp: - - recursive directory functions no longer dependent on unixstl::(basic_)file_path_buffer - ~ fixed defect - - ~ unixstl/filesystem/file_path_buffer.hpp: - ~ unixstl::basic_file_path_buffer is now deprecated - - ~ unixstl/filesystem/filesystem_traits.hpp: - + function-template overloads of each of ensure_dir_end(), ensure_dir_end(), has_dir_end() that takes a resizeable buffer - ~ fixed get_full_path_name() defect - ~ Windows-only fix for fulfilling full-path with a rooted but non-absolute path - ~ fixed is_path_absolute() on Windows to return false if only rooted - + added resizeable-buffer overloads of get_full_path_name() and get_short_path_name() - + function-template overloads of get_current_directory() that takes a resizeable buffer - ~ correction to get_current_directory() - - ~ unixstl/filesystem/functionals.hpp: - ~ UNIXSTL filesystem/functionals.hpp now independent of basic_file_path_buffer - - ~ unixstl/filesystem/glob_sequence.hpp: - - unixstl::glob_sequence no longer dependent on unixstl::(basic_)file_path_buffer - - ~ unixstl/filesystem/path.hpp: - ~ unixstl::(basic_)path is now independent of basic_file_path_buffer - ~ correcting implementation of c_str_ptr_null(|_a|_w) - ~ applying noexcept - + added data() - ~ minor improvements to implementation - - ~ unixstl/filesystem/readdir_sequence.hpp: - - unixstl::readdir_sequence no longer dependent on unixstl::(basic_)file_path_buffer - - ~ unixstl/system/system_traits.hpp: - system_traits: + added path_str_compare(), path_str_n_compare() - - WinSTL: - ======= - - ~ winstl/api/external/FileManagement.h: - ~ abstraction of Windows APIs - - + winstl/api/internal/DynamicLinkLibrary.h: - ~ correctly handling for Windows long-paths - - ~ winstl/dl/module.hpp: - + added move constructor (for winstl::module) - - removed dependency on file_path_buffer - - ~ winstl/filesystem/current_directory_scope.hpp: - ~ defect fix - - removed dependency on basic_file_path_buffer - - ~ winstl/filesystem/directory_functions.hpp: - - recursive directory functions no longer dependent on winstl::(basic_)file_path_buffer - ~ fixing defect - - ~ winstl/filesystem/file_path_buffer.hpp: - ~ winstl::basic_file_path_buffer is now deprecated - + added resize() - as a no-op - as a tactical measure in evolving dependent components - - ~ winstl/filesystem/filesystem_traits.hpp: - ~ winstl::filesystem_traits::GetFullPathNameW() now implemented in terms of WINSTL_API_INTERNAL_FileManagement_GetFullPathNameW(), which will intercept "\\?\." and "\\?\.\" - + function-template overloads of each of get_current_directory(), get_full_path_name(), get_short_path_name() that takes a resizeable buffer - ~ abstraction of Windows APIs - - ~ winstl/filesystem/findfile_sequence.hpp: - - removed #include dependency on file_path_buffer - + added winstl::(basic_)findfile_sequence::allowLongPathTranslation flag, which causes length-related search failures to be retried using Windows NT long-paths (on wide-character specialisations only) - - winstl::basic_findfile_sequence_const_iterator<> no longer dependent on winstl::(basic_)file_path_buffer - - winstl::basic_findfile_sequence<> no longer dependent on winstl::(basic_)file_path_buffer - - winstl::basic_findfile_sequence_value_type<> no longer dependent on winstl::(basic_)file_path_buffer - ~ abstraction of Windows APIs - - ~ winstl/filesystem/functionals.hpp: - - removed all uses of (basic_)file_path_buffer - ~ renamed path_contains_file => directory_contains_file - - ~ winstl/filesystem/link_functions.h: - ~ winstl/filesystem/memory_map_functions.h: - ~ winstl/filesystem/memory_mapped_file.hpp: - ~ abstraction of Windows APIs - - ~ winstl/filesystem/path.hpp: - ~ winstl::(basic_)path is now independent of basic_file_path_buffer - + added basic_path::data() - ~ simplified implementation of c_str_ptr_null(|_a|_w) - ~ simplified implementation of c_str_len(|_a|_w) - - + winstl/filesystem/path_buffer.hpp: - + added winstl::(basic_)path_buffer - - ~ winstl/system/environment_variable.hpp: - + added system_traits function-template overloads of each of get_environment_variable() and expand_environment_strings() that takes a resizeable buffer - ~ simplified system_traits' get_environment_variable() - - ~ winstl/system/system_traits.hpp: - + added path_str_compare(), path_str_n_compare() - + added system_traits function-template overloads of each of get_environment_variable() and expand_environment_strings() that takes a resizeable buffer - ~ simplified system_traits' get_environment_variable() - + function-template overloads of each of get_module_filename(), get_system_directory(), get_windows_directory(), get_home_directory() that takes a resizeable buffer - - ~ winstl/system/version_info.hpp: - - removed dependency on basic_file_path_buffer - - -============================================================================ - -Changes for 1.10.1 beta 22 (29th November 2020) - -General: -======== - - * added stlsoft::string_to_integer_range() - * added stlsoft::strnchr(), stlsoft::strnistrn(), stlsoft::strnstrn() C-style string search functions - * added move constructor to stlsoft::auto_buffer<> - * added move constructor for stlsoft::scoped_handle<> - * added move constructor for stlsoft::(basic_)simple_string<> - * winstl::output_debug_line() overloads expanded to 16-parameters, and changed to use variadic templates where supported - * stlsoft::split() functions enhanced to: return vector of arbitrary length; allow heterogeneous types for the split elements - * stlsoft::string_switch() split into two overloads to handle property and unambiguously flag enums, regular enums, and enum classes - * significant, BREAKING changes to stlsoft::try_parse_to() overloads to avoid ambiguity - * changed significantly the way in which stlsoft::cstring_maker works, and adjusted all dependent code - * various additions for compatibility with std::string_view (which is very similar to stlsoft::string_view) - * fixed case of a bunch of headers - -Changes: -======== - - ATLSTL: - ======= - - ~ atlstl/shims/access/string.hpp: - ~ fixed case of a bunch of headers - - ~ atlstl/shims/access/string/CComBSTR.hpp: - ~ fixed case of a bunch of headers - ~ removed unnecessary includes - - ~ atlstl/shims/access/string/CWindow.hpp: - ~ fixed case of a bunch of headers - ~ changed significantly the way in which cstring_maker works, and adjusted all dependent code - - ~ atlstl/string/CComBSTR_veneer.hpp: - ~ fixed case of a bunch of headers - - COMSTL: - ======= - - ~ comstl/smartptr/interface_ptr.hpp: - ~ using STLSOFT_PPF_pragma_message_SUPPORT rather than STLSOFT_CF_PRAGMA_MESSAGE_SUPPORT - - MFCSTL: - ======= - - ~ mfcstl/collections/CArray_adaptors.hpp: - ~ mfcstl/collections/CArray_swap.hpp: - ~ mfcstl/collections/CArray_traits.hpp: - ~ mfcstl/collections/CList_adaptors.hpp: - ~ mfcstl/collections/CList_swap.hpp: - ~ mfcstl/collections/CList_traits.hpp: - ~ mfcstl/collections/CString_adaptors.hpp: - ~ mfcstl/shims/access/string.hpp: - ~ mfcstl/shims/access/string/CString.hpp: - ~ fixed case of a bunch of headers - - ~ mfcstl/shims/access/string/cwnd.hpp: - ~ changed significantly the way in which cstring_maker works, and adjusted all dependent code - - ~ mfcstl/shims/logical/is_empty.hpp: - ~ mfcstl/shims/logical/is_empty/CString.hpp: - ~ mfcstl/string/grab_CString_buffer.hpp: - ~ fixed case of a bunch of headers - - STLSoft: - ======== - - ~ stlsoft/conversion/sas_to_string.hpp: - + added overload of sas_to_string_m() taking generic second parameter that is passed to underlying SAS-like functions - - ~ stlsoft/conversion/string_to_integer.hpp: - ~ significantly changed try_parse_to() overloads to avoid ambiguity - ~ string_to_integer() returns NULL endptr when len is 0 - ~ various fixes and handling corner-cases - - + stlsoft/conversion/string_to_integer_range.hpp: - + added string_to_integer_range.hpp - - ~ stlsoft/memory/allocator_base.hpp: - ~ fixing defect in overload of pointer() - - ~ stlsoft/memory/auto_buffer.h: - ~ relaxed precondition that ptr be non-null in free() - - ~ stlsoft/memory/auto_buffer.hpp: - + added move constructor - ~ using STLSOFT_PPF_pragma_message_SUPPORT rather than STLSOFT_CF_PRAGMA_MESSAGE_SUPPORT - - ~ stlsoft/shims/access/string.hpp: - + added string access shims for nullptr (std::nullptr_t) - + added string access shims for std::string_view (depends on __cplusplus being >= 201703L) - - + stlsoft/shims/access/string/std/basic_string_view.hpp: - + added string access shims for std::(|w|basic_)string_view - - + stlsoft/shims/access/string/std/nullptr.hpp: - + added string access shims for nullptr (std::nullptr_t) - - ~ stlsoft/shims/access/string/std/time.hpp: - + added SAS-like conversion functions taking a time format string - - ~ stlsoft/shims/attribute/get_ptr.hpp: - ~ stlsoft/shims/attribute/get_top.hpp: - ~ improved names of internal macros for recording standard library feature detection - - ~ stlsoft/smartptr/scoped_handle.hpp: - + added move constructor for scoped_handle<> (and scoped_handle) - - + stlsoft/string/c_string/strnchr.h: - + stlsoft/string/c_string/strnistrn.h: - + stlsoft/string/c_string/strnstrn.h: - + added stlsoft_C_strnchr(), stlsoft_C_strnistrn(), stlsoft_strnstrn() - - ~ stlsoft/string/cstring_maker.hpp: - ~ changed significantly the way in which cstring_maker works, and adjusted all dependent code - - ~ stlsoft/string/simple_string.hpp: - + added move ctor for (basic_)simple_string - - ~ stlsoft/string/split_functions.hpp: - ~ stlsoft::split<>() now returns vector of arbitrary length - ~ properly sorting split() semantics - ~ stlsoft::split() now accepts heterogeneous string types for the split element - ~ now uses the S(char_t const*, int) or S(char_t const*, size_t) ctor, rather than S(char const* b, char const* e), so as to work with std::string_view - - ~ stlsoft/string/string_traits.hpp: - + added (partial) specialisation of stlsoft::string_traits<> for std::basic_string_view - - ~ stlsoft/string/trim_functions.hpp: - ~ C++17+ compatibility - - ~ stlsoft/util/nulldef.h: - ~ stlsoft/util/zerodef.h: - ~ using STLSOFT_PPF_pragma_message_SUPPORT rather than STLSOFT_CF_PRAGMA_MESSAGE_SUPPORT - - ~ stlsoft/util/string_switch.hpp: - ~ tidying up of semantics between use with regular and flags enums, by splitting implementation into two overloads - - ~ stlsoft/internal/cccap/borland.h: - ~ STLSOFT_PPF_VARIADIC_MACROS_SUPPORT for all compilers (supporting STLSOFT_CF_SUPPORTS_VARIADIC_MACROS) - - ~ stlsoft/internal/cccap/clang.h: - + variadic template support discrimination - - ~ stlsoft/internal/cccap/como.h: - ~ stlsoft/internal/cccap/dmc.h: - ~ STLSOFT_PPF_VARIADIC_MACROS_SUPPORT for all compilers (supporting STLSOFT_CF_SUPPORTS_VARIADIC_MACROS) - - ~ stlsoft/internal/cccap/gcc.h: - + variadic template support discrimination - - ~ stlsoft/internal/cccap/msvc.h: - + variadic template support discrimination - + enabled STLSOFT_CF_MOVE_SEMANTICS_SUPPORT for VC++ 11+ - - ~ stlsoft/internal/cccap/mwerks.h: - ~ stlsoft/internal/cccap/sunpro.h: - ~ stlsoft/internal/cccap/unknown.h: - ~ stlsoft/internal/cccap/vectorc.h: - ~ stlsoft/internal/cccap/watcom.h: - ~ STLSOFT_PPF_VARIADIC_MACROS_SUPPORT for all compilers (supporting STLSOFT_CF_SUPPORTS_VARIADIC_MACROS) - - ~ stlsoft/internal/std/has/auto_ptr_.hpp: - ~ improved names of internal macros for recording standard library feature detection - ~ fix on __cplusplus version for C++98 - ~ reflecting removal of auto_ptr in C++17 - - ~ stlsoft/internal/std/has/deque_.hpp: - ~ stlsoft/internal/std/has/list_.hpp: - ~ stlsoft/internal/std/has/queue_.hpp: - ~ stlsoft/internal/std/has/stack_.hpp: - ~ stlsoft/internal/std/has/strftime_.hpp: - ~ stlsoft/internal/std/has/vector_.hpp: - ~ improved names of internal macros for recording standard library feature detection - ~ fix on __cplusplus version for C++98 - - ~ stlsoft/internal/std/has/priority_queue_.hpp: - ~ stlsoft/internal/std/has/shared_ptr_.hpp: - ~ stlsoft/internal/std/has/unique_ptr_.hpp: - ~ improved names of internal macros for recording standard library feature detection - - UNIXSTL: - ======== - - ~ unixstl/filesystem/path.hpp: - ~ noexcept modifiers applied, and changing return-types of make_absolute() and canonicalise() when compiling without exception support - - WinSTL: - ======= - - ~ winstl/diagnostics/output_debug_line.h: - ~ moved winstl_C_diagnostics_output_debug_line_*_m() out of winstl::diagnostics namespace (in C++ compilation units) - + added winstl_C_diagnostics_output_debug_line_1(3|4|5|6)_m() - - ~ winstl/diagnostics/output_debug_line.hpp: - winstl::diagnostics::output_debug_line() now implemented via variadics, which also expands flexibility by using string access shims - + added 13-, 14-, 15-, and 16-parameter overloads of output_debug_line() - - ~ winstl/filesystem/path.hpp: - ~ noexcept modifiers applied, and changing return-types of make_absolute() and canonicalise() when compiling without exception support - - ~ winstl/shims/access/string/HWND.hpp: - ~ winstl/shims/access/string/LSA_UNICODE_STRING.hpp: - ~ changed significantly the way in which cstring_maker works, and adjusted all dependent code - - -============================================================================ - -Changes for 1.10.1 beta 21 (27th July 2020) - -General: -======== - - * VC++ 15/16 compatibility - * fixed unixstl::readdir_sequence::empty() - -Changes: -======== - - STLSoft: - ======== - - ~ stlsoft/util/std/iterator_helper.hpp: - ~ VC++ 15/16 compatibility - - UNIXSTL: - ======== - - ~ unixstl/filesystem/readdir_sequence.hpp: - ~ fixed readdir_sequence::empty() - - -============================================================================ - -Changes for 1.9.135 (27th July 2020) - -General: -======== - - * VC++ 15/16 compatibility - * fixed unixstl::readdir_sequence::empty() - -Changes: -======== - - STLSoft: - ======== - - ~ stlsoft/util/std/iterator_helper.hpp: - ~ VC++ 15/16 compatibility - - UNIXSTL: - ======== - - ~ unixstl/filesystem/readdir_sequence.hpp: - ~ fixed readdir_sequence::empty() - -============================================================================ - -Changes for 1.10.1 beta 20 (4th July 2020) - -General: -======== - - * fixed detecton of shared_ptr and unique_ptr - -Changes: -======== - - STLSoft: - ======== - - ~ stlsoft/internal/std/has/shared_ptr_.hpp: - ~ stlsoft/internal/std/has/unique_ptr_.hpp: - ~ fixed detecton of shared_ptr and unique_ptr - - -============================================================================ - -Changes for 1.10.1 beta 19 (4th July 2020) - -General: -======== - - * added stlsoft::t2w, stlsoft::w2t, stlsoft::t2a, stlsoft::a2t for upcoming Pantheios release - * added stream insertion operator (generic) for string slice types - * added compatibility with Visual C++ 15.x and 16.x - * added support for the ARM architecture (christopherplawrence) - -Changes: -======== - - COMSTL: - ======= - - ~ comstl/collections/safearray_sequence.hpp: - ~ fixed missing include - - STLSoft: - ======== - - ~ stlsoft/conversion/char_conversions.hpp: - + added t2w, w2t, t2a, a2t - - ~ stlsoft/internal/cccap/gcc.h: - + Add support for the ARM architecture (christopherplawrence) - - ~ stlsoft/stlsoft.h: - + added compatibility with Visual C++ 15.x and 16.x - - ~ stlsoft/string/string_slice.h: - + added stream insertion operator (generic) for string slice types - - ~ stlsoft/string/string_slice.hpp: - ~ fixed defective ctors - - WinSTL: - ======= - - ~ winstl/security/functions.h: - ~ fixed defect in implementation function - - -============================================================================ - -Changes for 1.9.134 (4th July 2020) - -General: -======== - - * added compatibility with Visual C++ 15.x and 16.x - * added stlsoft::t2w, stlsoft::w2t, stlsoft::t2a, stlsoft::a2t for upcoming Pantheios release - -Changes: -======== - - STLSoft - ======= - - ~ stlsoft/stlsoft.h: - + added compatibility with Visual C++ 15.x and 16.x - - ~ stlsoft/conversion/char_conversions.hpp: - + added t2w, w2t, t2a, a2t - -============================================================================ - -Changes for 1.9.133 (13th June 2020) - -General: -======== - - * Add support for the ARM architecture when doing Android NDK GCC compilation - -Changes: -======== - - STLSoft - ======= - - ~ stlsoft/internal/cccap/gcc.h: - + added detection for __arm__ - -============================================================================ - -Changes for 1.10.1 beta 18 (31st October 2019) - -General: -======== - - * added stlsoft/system/environment/functions.hpp to enhances stlsoft::environment_variable_exists() with string access shims to support arbitrary string type - * remove vestigial (and erroneous) winstl/string/spin_policies.hpp - * various documentation fixes - -Changes: -======== - - ATLSTL: - ======= - - ~ atlstl/string/ccombstr_veneer.hpp: - ~ documentation fixes - - COMSTL: - ======= - - ~ comstl/speech/sapi_util.hpp: - ~ comstl/string/bstr.hpp: - ~ documentation fixes - - MFCSTL: - ======= - - ~ mfcstl/collections/cstring_adaptors.hpp: - ~ documentation fixes - - STLSoft: - ======== - - ~ stlsoft/system/environment/functions.h: - ~ fixing documentation - - + stlsoft/system/environment/functions.hpp: - + enhances stlsoft::environment_variable_exists() with string access shims to support arbitrary string type - - WinSTL: - ======= - - ~ winstl/filesystem/memory_map_sparse_region_functions.h: - ~ winstl/registry/util/shared_handles.hpp: - ~ winstl/toolhelp/sequence_value_traits.hpp: - ~ documentation fixes - - - winstl/string/spin_policies.hpp: - - removed vestigial (and erroneous) file - - -============================================================================ - -Changes for 1.10.1 beta 17 (24th October 2019) - -General: -======== - - * GCC 8 compatibility - * GCC 9 compatibility - * implemented WinSTL_C_FileInformation_get_SECURITY_DESCRIPTOR_w() - * improved documentation - -Changes: -======== - - *: - ~ added '#ifndef _STLSOFT_SUPPRESS_WARNING_IN_OBSOLETE_FILES' into obsolete headers - - STLSoft: - ======== - - ~ stlsoft/conversion/char_conversions.hpp: - ~ GCC 8 compatibility - - ~ stlsoft/error/exceptions.hpp: - ~ fixed non-portable include path - - ~ stlsoft/iterator/associative_eraser_iterator.hpp: - ~ improved documentation - - ~ stlsoft/stlsoft.h: - + GCC 9 compatibility - ~ GCC 8 compatibility - - ~ stlsoft/string/string_view.hpp: - ~ stlsoft/time/fast_strftime.hpp: - ~ stlsoft/util/bits/count_functions.h: - ~ whitespace - - COMSTL: - ======= - - ~ comstl/comstl.h: - ~ whitespace - ~ GCC 8 compatibility for nameless unions (see http://blog.stlsoft-musings.net/2019/10/com-variant-nameless-union.html) - - WinSTL: - ======= - - ~ winstl/api/external/Authorization.h: - ~ winstl/filesystem/file_information_functions.h: - ~ implemented WinSTL_C_FileInformation_get_SECURITY_DESCRIPTOR_w() - - ~ winstl/filesystem/findfile_sequence.hpp: - ~ GCC 8 compatibility - - -============================================================================ - -Changes for 1.10.1 beta 16 (13th October 2019) - -General: -======== - - * added stlsoft_C_environment_variable_exists_a() / environment_variable_exists() (from STLSoft 1.10-alpha) - * added stlsoft::count_bits(int) overload - * added cbegin(), cend(), crbegin(), crend() to platformstl::environment_map - * significant additions and removals of WinSTL file creation functions - * added WinSTL security functions (from STLSoft 1.10-alpha) - * recognising Mac OSX architecture as UNIX - * canonicalising '\file' description sections - * suppresses deprecation warning from reporting use of deprecated functions inside other deprecated functions - -Changes: -======== - - *: - ~ canonicalising '\file' description sections - ~ tidying section comments - - STLSoft: - ======== - - + stlsoft/system/environment/functions.h: - ~ merged from STLSoft 1.10-alpha (2016) - + added stlsoft_C_environment_variable_exists_a() / environment_variable_exists() - - ~ stlsoft/util/bits/count_functions.h: - + added count_bits(int) overload - - PlatformSTL: - ============ - - ~ platformstl/platformstl.h: - + recognising Mac OSX architecture as UNIX - - ~ platformstl/system/environment_map.hpp: - platformstl::environment_map : + added cbegin(), cend(), crbegin(), crend() - - WinSTL: - ======= - - + winstl/api/external/Authorization.h: - ~ merged from STLSoft 1.10-alpha (2016) - - + winstl/api/internal/FileManagement.h: - + added - - ~ winstl/error/error_functions.h: - ~ suppresses deprecation warning from reporting use of deprecated functions inside other deprecated functions - - ~ winstl/filesystem/file_creation_functions.h: - + winstl_C_file_create_or_open_m() / winstl_C_file_create_or_open_w() / winstl_C_file_create_or_open() - + winstl_C_file_create_new_m() / winstl_C_file_create_new_w() / winstl_C_file_create_or_open() - + winstl_C_file_create_always_m() / winstl_C_file_create_always_w() / winstl_C_file_create_always() - + winstl_C_file_open_existing_m() / winstl_C_file_open_existing_w() / winstl_C_file_open_existing() - + winstl_C_file_open_always_m() / winstl_C_file_open_always_w() / winstl_C_file_open_always() - + winstl_C_file_truncate_existing_m() / winstl_C_file_truncate_existing_w() / winstl_C_file_truncate_existing() - + winstl::file_create_or_open() - + winstl::file_create_new() - + winstl::file_create_always() - + winstl::file_open_existing() - + winstl::file_open_always() - - winstl__open_file_read_shared_a() / winstl__open_file_read_shared_w() - - winstl__open_file_exclusive_a() / winstl__open_file_exclusive_w() - - winstl::open_file_read_shared() - - winstl::open_file_exclusive() - ~ merged from STLSoft 1.10-alpha (2016) - - ~ winstl/filesystem/filesystem_traits.hpp: - ~ winstl/filesystem/memory_mapped_file.hpp: - ~ refactored in terms of external API - - + winstl/security/functions.h: - ~ merged from STLSoft 1.10-alpha (2016) - + winstl_C_Security_free_string_m() / free_string() - + winstl_C_Security_lookup_account_SID_info_m() / lookup_account_SID_info() - - -============================================================================ - -Changes for 1.9.132 (11th October 2019) - -General: -======== - - * GCC 4.8, 4.9 compatibility - * PlatformSTL now recognises Mac OSX as UNIX implicitly - * fixed up project files (README, NEWS, etc.) - -Changes: -======== - - STLSoft - ======= - - ~ stlsoft/conversion/byte_format_functions.hpp: - ~ stlsoft/conversion/sap_cast.hpp: - ~ stlsoft/conversion/union_cast.hpp: - ~ stlsoft/string/copy_functions.hpp: - ~ hiding/suppressing unused typedefs - - ~ stlsoft/stlsoft.h: - ~ GCC 4.9 compatibility - - PlatformSTL - =========== - - ~ platformstl/platformstl.h: - + recognising Mac OSX architecture as UNIX - - Distribution - ============ - - ~ FAQ.txt: - ~ HOW_YOU_CAN_HELP.txt: - ~ INSTALL.txt: - ~ README.txt: - ~ TODO.txt: - ~ updated thoroughly - -============================================================================ - -Changes for 1.10.1 beta 15 (13th September 2019) - -General: -======== - - * added stlsoft::fast_strftime() and stlsoft::fast_wcsftime() as drop-in replacements for std::strftime() and std::wcsftime() - * added get_ptr() shim overload for std::shared_ptr and std::unique_ptr - * added stlsoft::get_top() attribute shim - * stlsoft::basic_string_view<>::substr() - * added winstl_C_format_message_strerror_w() - * removed stlsoft::literal_cast<> - * various portability improvements to newer compilers - -Changes: -======== - - COMSTL: - ======= - - ~ comstl/util/variant.hpp: - ~ changing parameter names to obviate compiler warnings - - STLSoft: - ======== - - - stlsoft/conversion/literal_cast.hpp: - - removed stlsoft::literal_cast<> - - + stlsoft/exception/special/errno_exception.hpp - - ~ stlsoft/internal/cccap/msvc.h: - ~ fixed default suppression of warnings - - + stlsoft/iterator/associative_eraser_iterator.hpp: - + stlsoft/iterator/associative_select_iterator.hpp: - + stlsoft/iterator/eraser_iterator.hpp: - + stlsoft/iterator/FILE_iterator.hpp: - + stlsoft/iterator/member_selector.hpp: - + stlsoft/iterator/push_insert_iterator.hpp: - + stlsoft/iterator/push_inserter.hpp: - + stlsoft/iterator/string_concatenator.hpp: - + stlsoft/iterator/string_concatenator_iterator.hpp: - + stlsoft/iterator/string_insert_iterator.hpp: - + stlsoft/iterator/transformer.hpp: - ~ ported over (from 1.10-delta) - - ~ stlsoft/iterator/push_inserter.hpp: - ~ moved over from 1.10-delta - - ~ stlsoft/shims/attribute/get_ptr.hpp: - + stlsoft/shims/attribute/get_ptr/std/shared_ptr.hpp: - + stlsoft/shims/attribute/get_ptr/std/unique_ptr.hpp: - + added get_ptr() shim overload for std::shared_ptr - + added get_ptr() shim overload for std::unique_ptr - - ~ stlsoft/string/string_view.hpp: - ~ merging over from 1.10-delta (2010) - + stlsoft::basic_string_view<>::substr() - - + stlsoft/shims/attribute/get_top.hpp: - + stlsoft/shims/attribute/get_top/deque.hpp: - + stlsoft/shims/attribute/get_top/list.hpp: - + stlsoft/shims/attribute/get_top/priority_queue.hpp: - + stlsoft/shims/attribute/get_top/queue.hpp: - + stlsoft/shims/attribute/get_top/stack.hpp: - + stlsoft/shims/attribute/get_top/vector.hpp: - + added stlsoft::get_top() attribute shim - - + stlsoft/time/fast_strftime.hpp: - + added stlsoft::fast_strftime() and stlsoft::fast_wcsftime() as drop-in replacements for std::strftime() and std::wcsftime() - - WinSTL: - ======= - - ~ winstl/error/error_functions.h: - + added winstl_C_format_message_strerror_w() - - ~ winstl/filesystem/file_information_functions.h: - ~ moved into 1.10 - - -============================================================================ - -Changes for 1.10.1 beta 14 (4th August 2019) - -General: -======== - - * added SECURITY_DESCRIPTOR helpers() - * stlsoft::w2m and stlsoft::m2w now more general - -Changes: -======== - - STLSoft: - ======== - - + stlsoft/conversion/char_conversions.hpp: - ~ stlsoft::multibyte2wide and stlsoft::wide2multibyte now not implemented in terms of stlsoft::c_str_data(), stlsoft::c_str_ptr(), or stlsoft::c_str_len(), but their encoding-specific forms - - WinSTL: - ======= - - ~ winstl/api/external/Synchronization.h: - + SRWLock-related macros - - ~ winstl/filesystem/file_functions.hpp: - ~ 64-bit compatibility - - + winstl/filesystem/file_information_functions.h: - + winstl::get_SECURITY_DESCRIPTOR() - + winstl::free_SECURITY_DESCRIPTOR() - - -============================================================================ - -Changes for 1.10.1 beta 13 (16th April 2019) - -General: -======== - - * fixed STLSOFT_ALWAYS_FALSE() / STLSOFT_ALWAYS_TRUE() - * platformstl::FILE_stream : ~ fixing character-encoding function selection defect - * canonicalising source file structure - -Changes: -======== - - STLSoft: - ======== - - + stlsoft/stlsoft.h: - ~ fixed STLSOFT_ALWAYS_FALSE() / STLSOFT_ALWAYS_TRUE() - - PlatformSTL: - ============ - - ~ platformstl/filesystem/FILE_stream.hpp: - ~ platformstl::FILE_stream : ~ fixing character-encoding function selection defect - - *: - == - ~ canonicalising source file structure - - -============================================================================ - -Changes for 1.10.1 beta 12 (26th December 2018) - -General: -======== - - * added sas_to_string() (and related) functions - * added stlsoft::errno_exception (from 1.12 branch) - * added stlsoft::locale_scope - * STLSoft's struct tm String Access Shims now work for arbitrary locale - * UNIXSTL's timeval String Access Shims now work for arbitrary locale - -Changes: -======== - - STLSoft: - ======== - - + stlsoft/conversion/sas_to_string.hpp: - + added sas_to_string() (and related) functions - - ~ stlsoft/exception/special/errno_exception.hpp: - + stlsoft::errno_exception (from 1.12 branch) - - + stlsoft/locale/exception/locale_exception.hpp: - + stlsoft/locale/locale_scope.hpp: - + stlsoft::locale_scope - - ~ stlsoft/shims/access/string/std/time.hpp: - ~ STLSoft's struct tm String Access Shims now work for arbitrary locale - - UNIXSTL: - ======== - - ~ unixstl/shims/access/string/timeval.hpp: - ~ UNIXSTL's timeval String Access Shims now work for arbitrary locale - - -============================================================================ - -Changes for 1.10.1 beta 11 (22nd December 2018) - -General: -======== - - * stlsoft::ref_ptr : + borrow(); + own() - * winstl::environment_variable : + data(); + equal(); + equal_ignore_case(); + exists(); + operators ==() and !=() - -Changes: -======== - - STLSoft: - ======== - - ~ stlsoft/smartptr/ref_ptr.hpp: - stlsoft::ref_ptr : + borrow(); + own() - stlsoft::ref_ptr : ~ (in)equality operators declared noexcept - - WinSTL: - ======= - - ~ winstl/system/environment_variable.hpp: - winstl::environment_variable : - reduced dependencies - winstl::environment_variable : + data(); + equal(); + equal_ignore_case(); + operators ==() and !=() - winstl::environment_variable : + refactored, and added exists() method - - -============================================================================ - -Changes for 1.10.1 beta 10 (20th December 2018) - -General: -======== - - * winstl::process_mutex() now takes an optional EVENT handle which will be signalled if the mutex experiences an abandoned acquire - * special_string_instance now provides generic (SAS) (in)equality operators automatically - * try_parse_to_bool() semantics firmed up - -Changes: -======== - - ATLSTL: - ======= - - ~ atlstl/shims/access/string/cwindow.hpp: - ~ atlstl/shims/attribute/get_HWND.hpp: - ~ atlstl/window/about_dialog.hpp: - ~ atlstl/window/window.hpp: - ~ STRICT compatibility - - COMSTL: - ======= - - ~ comstl/util/GUID_functions.h: - ~ kicking #pragma message exhortation down the road - - STLSoft: - ======== - - ~ stlsoft/api/external/string.h: - ~ dealing with C4996 / _CRT_ secure stuff - - ~ stlsoft/conversion/number/grouping_functions.hpp: - stlsoft::format_thousands() : ~ slight optimisation/simplification; ~ documentation - - ~ stlsoft/conversion/string_to_bool.hpp: - ~ try_parse_to_bool() semantics firmed up - - ~ stlsoft/smartptr/ref_ptr.hpp: - ref_ptr : - removed dead code - ref_ptr : ~ minor tidying - - ~ stlsoft/string/special_string_instance.hpp: - special_string_instance now provides generic (SAS) (in)equality operators automatically - - UNIXSTL: - ======= - - ~ unixstl/filesystem/current_directory.hpp: - ~ unixstl/system/home_directory.hpp: - special_string_instance now provides generic (SAS) (in)equality operators automatically - - WinSTL: - ======= - - ~ winstl/api/external/Synchronization.h: - ~ winstl/registry/util/shared_handles.hpp: - ~ winstl/synch/event.hpp: - ~ winstl/synch/semaphore.hpp: - ~ winstl/synch/wait_functions.hpp: - ~ refactored in terms of external API - - ~ winstl/clipboard/clipboard_scope.hpp: - ~ STRICT compatibility - - ~ winstl/filesystem/absolute_path.hpp: - ~ winstl/filesystem/current_directory.hpp: - ~ winstl/system/home_directory.hpp: - ~ winstl/system/host_name.hpp: - ~ winstl/system/module_directory.hpp: - ~ winstl/system/module_filename.hpp: - ~ winstl/system/system_directory.hpp: - ~ winstl/system/temporary_directory.hpp: - ~ winstl/system/temporary_file_name.hpp: - ~ winstl/system/user_name.hpp: - ~ winstl/system/windows_directory.hpp: - special_string_instance now provides generic (SAS) (in)equality operators automatically - - ~ winstl/synch/process_mutex.hpp: - + winstl::process_mutex() now takes an optional EVENT handle which will be signalled if the mutex experiences an abandoned acquire - ~ refactored in terms of external API - - -============================================================================ - -Changes for 1.10.1 beta 9 (11th June 2018) - -General: -======== - - * Borland compatibility - -Changes: -======== - - ACESTL: - ======= - - ~ acestl/shims/access/string/inet_addr.hpp: - + Borland compatibility - - ATLSTL: - ======= - - ~ atlstl/string/ccombstr_veneer.hpp: - + Borland compatibility - - COMSTL: - ======= - - ~ comstl/error/errorinfo_functions.h: - ~ comstl/shims/access/string/VARIANT.hpp: - ~ comstl/string/BSTR_functions.h: - ~ comstl/string/bstr.hpp: - ~ comstl/string/olestring_functions.h: - + Borland compatibility - - InetSTL: - ======== - - ~ inetstl/filesystem/filesystem_traits.hpp: - + Borland compatibility - - PlatformSTL: - ============ - - ~ platformstl/filesystem/path_functions.h: - ~ platformstl/system/environment_map.hpp: - ~ platformstl/system/environment_variable_traits.hpp: - + Borland compatibility - - RangeLib: - ========= - - ~ rangelib/associative_range.hpp: - ~ rangelib/error/exceptions.hpp: - + Borland compatibility - - STLSoft: - ======== - - ~ stlsoft/api/external/string.h: - ~ stlsoft/conversion/byte_format_functions.hpp: - ~ stlsoft/conversion/integer_to_string/integer_to_decimal_string.hpp: - ~ stlsoft/conversion/integer_to_string/integer_to_hexadecimal_string.hpp: - ~ stlsoft/conversion/integer_to_string/integer_to_octal_string.hpp: - ~ stlsoft/conversion/string_to_bool.hpp: - ~ stlsoft/error/error_desc.hpp: - ~ stlsoft/shims/access/string/std/c_string.h: - ~ stlsoft/shims/access/string/std/exception.hpp: - ~ stlsoft/shims/access/string/std/type_info.hpp: - ~ stlsoft/std/cstring.hpp: - ~ stlsoft/string/char_traits.hpp: - ~ stlsoft/string/copy_functions.h: - ~ stlsoft/string/functionals.hpp: - ~ stlsoft/string/trim_functions.hpp: - ~ stlsoft/synch/util/windows_api_.h: - ~ stlsoft/util/integral_printf_traits.hpp: - ~ stlsoft/util/std/iterator_helper.hpp: - ~ stlsoft/util/string_switch.hpp: - + Borland compatibility - - UNIXSTL: - ======= - - ~ unixstl/exception/throw_policies.hpp: - ~ unixstl/filesystem/filesystem_traits.hpp: - ~ unixstl/filesystem/glob_sequence.hpp: - ~ unixstl/system/directory_functions.h: - ~ unixstl/system/system_traits.hpp: - + Borland compatibility - - WinSTL: - ======= - - ~ winstl/controls/listbox_data_sequence.hpp: - ~ winstl/filesystem/filesystem_traits.hpp: - ~ winstl/security/token_information.hpp: - ~ winstl/shims/access/string/LSA_UNICODE_STRING.hpp: - ~ winstl/system/os_version.h: - ~ winstl/system/system_traits.hpp: - ~ winstl/window/message_functions.h: - + Borland compatibility - - -============================================================================ - -Changes for 1.10.1 beta 8 (11th June 2018) - -General: -======== - - * fixing break to UNIX-compatibility introduced in beta-6/7 - -Changes: -======== - - InetSTL: - ======== - - ~ inetstl/exception/throw_policies.hpp: - ~ inetstl/filesystem/findfile_sequence.hpp: - ~ inetstl/network/connection.hpp: - ~ inetstl/network/session.hpp: - ~ fixing break to UNIX-compatibility introduced in beta-6/7 - - UNIXSTL: - ======== - - ~ unixstl/filesystem/filesystem_traits.hpp: - ~ fixing break to UNIX-compatibility introduced in beta-6/7 - - -============================================================================ - -Changes for 1.10.1 beta 7 (9th June 2018) - -General: -======== - - * auto_buffer<> now supports limited form of pointer arithmethic via operator -() - * added subscript operator for auto_array_destructor<> - * VC++ 14.1x compatibility - * refactoring of copy-proscriptions - -Changes: -======== - - STLSoft: - ======== - - ~ stlsoft/memory/auto_buffer.hpp: - + auto_buffer<> now supports limited form of pointer arithmethic via operator -() - ~ refactoring of copy-proscriptions - - ~ stlsoft/memory/auto_destructor.hpp: - + added subscript operator for auto_array_destructor<> - ~ minor tidying/canonicalisation - ~ whitespace - - ~ stlsoft/stlsoft.h: - + VC++ 14.1x compatibility - - ~ stlsoft/string/split_functions.hpp: - ~ trivial boilerplate changes - - WinSTL: - ======= - - ~ winstl/diagnostics/output_debug_line.h: - ~ winstl/diagnostics/output_debug_line.hpp: - ~ trivial boilerplate changes - - -============================================================================ - -Changes for 1.10.1 beta 6 (9th June 2018) - -General: -======== - - * refactored in terms of external API - * removed empty/meaningless "compatibility" sections - * canonicalising proscribed construction methods - * simplifying, and prospective changes (for getting to 1.12) - -Changes: -======== - - ATLSTL: - ======= - - ~ atlstl/shims/access/string/cwindow.hpp: - ~ canonicalising proscribed construction methods - - COMSTL: - ======= - - ~ comstl/collections/enumeration_policies.hpp: - ~ comstl/collections/enumerator_sequence.hpp: - ~ comstl/collections/safearray_sequence.hpp: - ~ comstl/conversion/interface_cast.hpp: - - removed empty/meaningless "compatibility" sections - - ~ comstl/error/errorinfo_desc.hpp: - ~ comstl/error/errorinfo_functions.h: - ~ comstl/exception/throw_policies.hpp: - ~ refactored in terms of external API - - ~ comstl/memory/functions.h: - ~ fixed application of external API - ~ refactored in terms of external API - - removed empty/meaningless "compatibility" sections - - ~ comstl/memory/task_allocator.hpp: - - removed empty/meaningless "compatibility" sections - - ~ comstl/shims/access/string/VARIANT.hpp: - ~ comstl/string/BSTR_functions.h: - ~ comstl/string/bstr.hpp: - ~ comstl/string/olestring_functions.h: - ~ comstl/util/GUID_functions.h: - ~ comstl/util/guid.hpp: - ~ comstl/util/variant.hpp: - ~ refactored in terms of external API - - InetSTL: - ======= - - ~ inetstl/exception/throw_policies.hpp: - ~ refactored in terms of external API - - ~ inetstl/filesystem/findfile_sequence.hpp: - ~ refactored in terms of external API - - removed empty/meaningless "compatibility" sections - - ~ inetstl/filesystem/ftpdir_sequence.hpp: - - removed empty/meaningless "compatibility" sections - - ~ inetstl/network/connection.hpp: - ~ inetstl/network/session.hpp: - ~ refactored in terms of external API - - MFCSTL: - ======= - - ~ mfcstl/collections/carray_adaptors.hpp: - ~ mfcstl/collections/carray_traits.hpp: - ~ mfcstl/collections/clist_adaptors.hpp: - ~ mfcstl/memory/afx_allocator.hpp: - - removed empty/meaningless "compatibility" sections - - PlatformSTL: - ======= - - ~ platformstl/error/error_desc.hpp: - ~ platformstl/filesystem/directory_functions.hpp: - ~ platformstl/synch/semaphore.hpp: - - removed empty/meaningless "compatibility" sections - - RangeLib: - ======= - - ~ rangelib/operator_adaptors.hpp: - - removed empty/meaningless "compatibility" sections - - STLSoft: - ======== - - ~ stlsoft/algorithms.hpp: - ~ stlsoft/algorithms/bounded.hpp: - ~ stlsoft/algorithms/debug.hpp: - - removed empty/meaningless "compatibility" sections - - ~ stlsoft/api/external/string.h: - ~ stlsoft/api/internal/time.h: - ~ refactored in terms of external API - - ~ stlsoft/collections/array_view.hpp: - ~ stlsoft/collections/associative_adaptor_sequences.hpp: - ~ stlsoft/collections/associative_container_veneer.hpp: - ~ stlsoft/collections/associative_key_sequence.hpp: - ~ stlsoft/collections/associative_value_sequence.hpp: - ~ stlsoft/collections/functions.hpp: - ~ stlsoft/collections/sequence_container_veneer.hpp: - ~ stlsoft/containers/environment_block.hpp: - ~ stlsoft/containers/fixed_array.hpp: - ~ stlsoft/containers/pod_vector.hpp: - ~ stlsoft/containers/static_array.hpp: - ~ stlsoft/containers/util/array_policies.hpp: - ~ stlsoft/conversion/m2w.hpp: - ~ stlsoft/conversion/ptr_cast.hpp: - ~ stlsoft/conversion/w2m.hpp: - ~ stlsoft/error/errno_scope.hpp: - ~ stlsoft/filesystem/searchspec_sequence.hpp: - ~ stlsoft/functional/noop.hpp: - ~ stlsoft/iterators/adapted_iterator_traits.hpp: - ~ stlsoft/iterators/associative_select_iterator.hpp: - ~ stlsoft/iterators/c_str_inserter.hpp: - ~ stlsoft/iterators/contiguous_diluter_iterator.hpp: - ~ stlsoft/iterators/cstring_concatenator_iterator.hpp: - ~ stlsoft/iterators/filter_iterator.hpp: - ~ stlsoft/iterators/filter_transform_iterator.hpp: - ~ stlsoft/iterators/index_iterator.hpp: - ~ stlsoft/iterators/indirect_reverse_iterator.hpp: - ~ stlsoft/iterators/member_selector_iterator.hpp: - ~ stlsoft/iterators/null_output_iterator.hpp: - ~ stlsoft/iterators/string_concatenator_iterator.hpp: - ~ stlsoft/iterators/transform_filter_iterator.hpp: - ~ stlsoft/iterators/transform_iterator.hpp: - ~ stlsoft/memory/allocator_base.hpp: - ~ stlsoft/memory/auto_buffer.hpp: - ~ stlsoft/memory/auto_destructor.hpp: - ~ stlsoft/memory/malloc_allocator.hpp: - ~ stlsoft/memory/new_allocator.hpp: - ~ stlsoft/memory/null_allocator.hpp: - ~ stlsoft/meta/is_same_type.hpp: - ~ stlsoft/meta/select_first_type_if.hpp: - ~ stlsoft/obsolete/functional.hpp: - ~ stlsoft/obsolete/functionals.hpp: - ~ stlsoft/obsolete/meta.hpp: - ~ stlsoft/obsolete/proxy_iterator.hpp: - ~ stlsoft/obsolete/proxy_sequence.hpp: - ~ stlsoft/properties/field_properties.hpp: - ~ stlsoft/properties/method_properties.hpp: - - removed empty/meaningless "compatibility" sections - - ~ stlsoft/stlsoft.h: - ~ refactored in terms of external API - - removed empty/meaningless "compatibility" sections - - ~ stlsoft/string/charset_tokeniser.hpp: - ~ stlsoft/string/container_slice_functions.hpp: - ~ stlsoft/string/cstring_functions.hpp: - ~ stlsoft/string/fast_string_concatenator.hpp: - ~ stlsoft/string/functionals.hpp: - ~ stlsoft/string/simple_string.hpp: - ~ stlsoft/string/slice_functions.hpp: - ~ stlsoft/string/split_functions.hpp: - ~ stlsoft/string/string_tokeniser.hpp: - ~ stlsoft/string/string_traits.hpp: - ~ stlsoft/string/trim_functions.hpp: - ~ stlsoft/string/view_slice_functions.hpp: - ~ stlsoft/system/cmdargs.hpp: - ~ stlsoft/system/commandline_parser.hpp: - ~ stlsoft/util/inert.hpp: - ~ stlsoft/util/options_verifier.hpp: - ~ stlsoft/util/std/dinkumware_iterator_traits.hpp: - ~ stlsoft/util/std/iterator_helper.hpp: - ~ stlsoft/util/std/library_discriminator.hpp: - - removed empty/meaningless "compatibility" sections - - UNIXSTL: - ======== - - ~ unixstl/filesystem/filesystem_traits.hpp: - ~ fixed application of external API - ~ refactored in terms of external API - - ~ unixstl/synch/sleep_functions.h: - ~ unixstl/synch/spin_mutex_policies.hpp: - ~ unixstl/synch/util/windows_api_.h: - ~ unixstl/system/console_functions.h: - ~ refactored in terms of external API - - WinSTL: - ======= - - ~ winstl/api/external/Console.h: - + winstl/api/external/Debugging.h: - + winstl/api/external/DeviceContext.h: - + winstl/api/external/DynamicLinkLibrary.h: - + winstl/api/external/ErrorHandling.h: - + winstl/api/external/FileManagement.h: - + winstl/api/external/HandleAndObject.h: - ~ winstl/api/external/MemoryManagement.h: - + winstl/api/external/ProcessAndThread.h: - ~ winstl/api/external/Registry.h: - ~ winstl/api/external/Synchronization.h: - ~ winstl/api/external/SystemInformation.h: - ~ winstl/api/external/Time.h: - + winstl/api/external/UnicodeAndCharacterSet.h: - ~ winstl/clipboard/clipboard_scope.hpp: - ~ refactored in terms of external API - - ~ winstl/clipboard/error/exceptions.hpp: - - removed empty/meaningless "compatibility" sections - - ~ winstl/control_panel/applet_module.hpp: - ~ refactored in terms of external API - - ~ winstl/control_panel/error/exceptions.hpp: - - removed empty/meaningless "compatibility" sections - - ~ winstl/control_panel/functions.h: - ~ refactored in terms of external API - - ~ winstl/controls/commctrl_functionals.hpp: - ~ winstl/controls/dialog_functionals.hpp: - ~ winstl/controls/listbox_data_sequence.hpp: - - removed empty/meaningless "compatibility" sections - - ~ winstl/conversion/char_conversions.hpp: - ~ refactored in terms of external API - - ~ winstl/conversion/w2m.hpp: - - removed empty/meaningless "compatibility" sections - - ~ winstl/diagnostics/output_debug_line.h: - ~ refactored in terms of external API - - ~ winstl/dl/dl_call.hpp: - ~ winstl/dl/module.hpp: - ~ refactored in terms of external API - - removed empty/meaningless "compatibility" sections - - ~ winstl/error/error_desc.hpp: - ~ refactored in terms of external API - - ~ winstl/error/last_error_scope.hpp: - ~ refactored in terms of external API - - removed empty/meaningless "compatibility" sections - - ~ winstl/exception/throw_policies.hpp: - ~ refactored in terms of external API - - ~ winstl/filesystem/current_directory_scope.hpp: - ~ winstl/filesystem/file_creation_functions.h: - ~ winstl/filesystem/file_functions.hpp: - ~ winstl/filesystem/filesystem_traits.hpp: - ~ winstl/filesystem/findfile_sequence.hpp: - ~ winstl/filesystem/handles/os_file_handle.hpp: - ~ winstl/filesystem/link_functions.h: - ~ winstl/filesystem/memory_map_functions.h: - ~ winstl/filesystem/memory_map_sparse_region_functions.h: - ~ winstl/filesystem/memory_mapped_file.hpp: - ~ winstl/filesystem/path.hpp: - ~ winstl/filesystem/pipe.hpp: - ~ winstl/filesystem/readonly_memory_mapped_file.hpp: - ~ winstl/internal/windows_version_.h: - ~ refactored in terms of external API - - ~ winstl/memory/global_allocator.hpp: - ~ winstl/memory/heapwalk_sequence.hpp: - ~ winstl/memory/netapi_allocator.hpp: - ~ winstl/memory/processheap_allocator.hpp: - - removed empty/meaningless "compatibility" sections - - ~ winstl/process/functions.h: - ~ refactored in terms of external API - - ~ winstl/registry/error/exceptions.hpp: - - removed empty/meaningless "compatibility" sections - - ~ winstl/registry/reg_key.hpp: - ~ fixed application of external API - ~ refactored in terms of external API - - ~ winstl/registry/reg_key_sequence.hpp: - ~ refactored in terms of external API - - ~ winstl/registry/reg_traits.hpp: - ~ refactored in terms of external API - - ~ winstl/registry/reg_value.hpp: - ~ refactored in terms of external API - - ~ winstl/registry/reg_value_sequence.hpp: - ~ refactored in terms of external API - - ~ winstl/security/token_information.hpp: - ~ refactored in terms of external API - - ~ winstl/shell/file_operations.hpp: - ~ fixed application of external API - ~ refactored in terms of external API - - ~ winstl/shell/memory/functions.h: - ~ fixed application of external API - ~ refactored in terms of external API - - removed empty/meaningless "compatibility" sections - - ~ winstl/shims/access/string/HWND.hpp: - ~ tightening up - - ~ winstl/shims/access/string/LSA_UNICODE_STRING.hpp: - - removed empty/meaningless "compatibility" sections - - ~ winstl/shims/access/string/time.hpp: - ~ winstl/shims/conversion/to_FILETIME/SYSTEMTIME.hpp: - ~ winstl/shims/conversion/to_SYSTEMTIME/DATE.hpp: - ~ winstl/shims/conversion/to_SYSTEMTIME/FILETIME.hpp: - ~ refactored in terms of external API - - ~ winstl/shims/conversion/to_uint64/WIN32_FIND_DATA.hpp: - ~ reformatting - - ~ winstl/string/resource_string.hpp: - ~ winstl/synch/diagnostics/failure_handling.h: - ~ refactored in terms of external API - - ~ winstl/synch/event.hpp: - ~ canonicalising proscribed construction methods - ~ refactored in terms of external API - - ~ winstl/synch/process_mutex.hpp: - ~ refactored in terms of external API - - ~ winstl/synch/semaphore.hpp: - ~ canonicalising proscribed construction methods - ~ refactored in terms of external API - - ~ winstl/synch/sleep_functions.h: - ~ winstl/synch/spin_mutex_policies.hpp: - ~ winstl/synch/tss_index.hpp: - ~ refactored in terms of external API - - ~ winstl/system/console_colour_scope.hpp: - ~ canonicalising proscribed construction methods - ~ refactored in terms of external API - - ~ winstl/system/console_ctrl_handler_scope.hpp: - ~ canonicalising proscribed construction methods - ~ refactored in terms of external API - - removed empty/meaningless "compatibility" sections - - ~ winstl/system/console_functions.h: - ~ refactored in terms of external API - - ~ winstl/system/environment_block.hpp: - ~ winstl/system/environment_variable.hpp: - - removed empty/meaningless "compatibility" sections - - ~ winstl/system/memory_functions.h: - ~ refactored in terms of external API - - ~ winstl/system/module_directory.hpp: - ~ winstl/system/module_filename.hpp: - - removed empty/meaningless "compatibility" sections - - ~ winstl/system/os_version.h: - ~ refactored in terms of external API - - ~ winstl/system/pid_sequence.hpp: - ~ refactored in terms of external API - - removed empty/meaningless "compatibility" sections - - ~ winstl/system/process_module_sequence.hpp: - ~ refactored in terms of external API - - removed empty/meaningless "compatibility" sections - - ~ winstl/system/system_information_functions.h: - ~ winstl/system/system_traits.hpp: - ~ refactored in terms of external API - - ~ winstl/system/system_version.hpp: - ~ simplifying, and prospective changes (for getting to 1.12) - - ~ winstl/system/temporary_file_name.hpp: - ~ refactored in terms of external API - - ~ winstl/system/version_info.hpp: - ~ refactored in terms of external API - ~ canonicalising proscribed construction methods - - ~ winstl/time/comparison_functions.h: - ~ winstl/time/localisation_functions.h: - ~ winstl/time/time_cast.hpp: - ~ winstl/toolhelp/sequence_base.hpp: - ~ refactored in terms of external API - - ~ winstl/window/functions.h: - ~ simplifying, and prospective changes (for getting to 1.12) - - ~ winstl/window/gdi_functions.h: - ~ refactored in terms of external API - - ~ winstl/window/window_enable_scope.hpp: - ~ winstl/window/window_icon_scope.hpp: - ~ winstl/window/window_redraw_scope.hpp: - ~ winstl/window/window_text_scope.hpp: - ~ winstl/window/window_update_scope.hpp: - ~ winstl/window/window_visible_scope.hpp: - ~ canonicalising proscribed construction methods - - ~ winstl/window/zorder_iterator.hpp: - ~ refactored in terms of external API - - -============================================================================ - -Changes for 1.10.1 beta 5 (15th May 2017) - -General: -======== - - * enhanced STLSOFT_SUPPRESS_UNUSED() to work with rvalues - -Changes: -======== - - STLSoft: - ======== - - ~ stlsoft/stlsoft.h: - ~ stlsoft/internal/cccap/borland.h: - ~ stlsoft/internal/cccap/clang.h: - ~ stlsoft/internal/cccap/gcc.h: - ~ stlsoft/internal/cccap/msvc.h: - ~ enhanced STLSOFT_SUPPRESS_UNUSED() to work with rvalues - - -============================================================================ - -Changes for 1.10.1 beta 3 (19th February 2017) - -General: -======== - - * a whole bunch of non-functional changes to make the codebase more - consistent and amenable to further automatic instrumentation by script - auto-validation script compatibility, and ensure all files have full - inclusion control - * fixing get_FILE_ptr() shim namespace issues - * winstl::token_information has additional compatibility up to W8/Svr12, - and now defaults to throwing instances of winstl::security_exception - -Changes: -======== - - MFCSTL: - ======= - - ~ mfcstl/shims/attribute/get_FILE_ptr.hpp: - ~ fixing get_FILE_ptr() shim namespace issues - - PlatformSTL: - ============ - - ~ platformstl/filesystem/FILE_stream.hpp: - ~ fixing get_FILE_ptr() shim namespace issues - - WinSTL: - ======= - - ~ winstl/exception/throw_policies.hpp: - ~ ensuring all files have full inclusion control - + added security_exception_policy - - ~ winstl/security/token_information.hpp: - + incremental compatibility for up to W8/Svr12 - ~ now defaults to throwing instances of winstl::security_exception if fails - + added member types - ~ simplified specialisation of token_information_traits<> - - -============================================================================ - -Changes for 1.10.1 beta 2 (28th January 2017) - -General: -======== - - * work on STLSoft integer_to_string functions to loosen non-array forms' - preconditions, reduce dependencies in rest of codebase to - integer_to_decimal_string()-only; - * filesystem_traits - refactored is_dots() and starts_with_dots() to - accomodate GCC 4.9 pedanticism - * exposing unixstl/winstl types spin_mutex_no_yield and spin_mutex_yield to - platformstl namespace - * a large number of changes to improve compatibility with UNIX, Clang, - GCC, and MinGW - * hiding/suppressing unused typedefs - - - -============================================================================ - -Changes for 1.10.1 beta 1 (14th January 2017) - -General: -======== - - * too many changes to list here - it's a new world! (Bit of a shame it - took 10 years to get here :$) - * in summary: - - * major reworking of exceptions hierarchy, including provision of project - and library identifiers, status-code, and message translation - * several new special-string-instance types, including home_directory, - host_name, temporary_directory, temporary_file_name - * new string access shims, for types including timeval, type_info - * new attribute shims, including: get_synch_handle, get_FILE_ptr - * new logical shims, including: is_empty, is_null - * new high-performance conversion functions (based around the extant - technology in stlsoft::integer_to_string()): integer_to_decimal_string(), - integer_to_hexadecimal_string(), integer_to_octal_string(), - integer_to_lc_string(), integer_to_zero_padded_decimal_string() - * new conversion parsing functions: string_to_bool(), string_to_integer() - * new scoped_method class template - * new scoped_lambda class template - * new bit-testing functions - * substantially improved atomic function support - * substantially improved spin_mutex class templates and policies - * new diagnostic stopwatch classes and logging functions - * new platformstl::file_stream_base class template and policies - * new string slice classes that are compatible (but do not depend on) other - Synesis projects (such as FastFormat and Pantheios) - * new time comparison functions and operators, conversion cast and - functions, elicitation functions, modification functions, and validation - functions - * ... and many many other improvements and additions ... - - - -============================================================================ - -Changes for 1.9.131 (2nd November 2016) - -General: -======== - - * added ss_typename_void_k - - -Changes: -======== - - STLSoft - ======= - - ~ stlsoft/stlsoft.h: - ~ stlsoft/internal/cccap/clang.h: - ~ stlsoft/internal/cccap/gcc.h: - ~ stlsoft/internal/cccap/intel.h: - ~ stlsoft/internal/cccap/msvc.h: - + added STLSOFT_CF_TEMPLATE_VOID_TYPE_PARAMETER - + added ss_typename_void_k - -============================================================================ - -Changes for 1.9.130 (1st October 2016) - -General: -======== - - * minor tidyings - - -Changes: -======== - - STLSoft - ======= - - ~ stlsoft/string/special_string_instance.hpp: - ~ ensures consistency in invocation of initialisation functions - - UNIXSTL - ======= - - ~ unixstl/system/environment_variable.hpp: - + added c_str(), empty(), and size() methods to make consistent with WinSTL variant - - ~ unixstl/system/system_traits.hpp: - + added get_home_directory() method to make consistent with WinSTL variant - - WinSTL - ====== - - ~ winstl/security/token_information.hpp: - ~ stlsoft_throw_0() => STLSOFT_NOEXCEPT - - ~ winstl/registry/reg_key.hpp: - + added 0-param (unnamed) overload of get_value() - - -============================================================================ - -Changes for 1.9.129 (17th July 2016) - - -General: -======== - - * minor tidyings - - - STLSoft - ======= - - ~ stlsoft/internal/cccap/borland.h: - + added STLSOFT_CF_FUNC_SYMBOL_SUPPORT - - ~ stlsoft/stlsoft.h: - + added discrimination of STLSOFT_CF_FUNC_SYMBOL_SUPPORT - - WinSTL - ====== - - ~ winstl/filesystem/file_path_buffer.hpp: - + added capacity() - ~ fix to copy-ctor - - -============================================================================ - -Changes for 1.9.126 (4th May 2016) - -General: -======== - - * improvements to Windows Registry library - - -Changes: -======== - - STLSoft - ======= - - ~ stlsoft/error/iteration_interruption.hpp: - ~ improved what() message handling - - WinSTL - ====== - - ~ winstl/registry/reg_key.hpp: - ~ has_sub_key() and has_value() now non-mutating - - ~ winstl/registry/util/shared_handles.hpp: - ~ now throws exception when registry change notification registration fails - - ~ winstl/system/version_info.hpp: - ~ fix for NoX compilation - - - -============================================================================ - -Changes for 1.9.125 (14th February 2016) - -General: -======== - - * various minor warnings / compiler compatibilities - - -Changes: -======== - - STLSoft - ======= - - ~ stlsoft/stlsoft.h: - ~ STLSOFT_STATIC_ASSERT() now compatible with GCC at maximum-warnings - ~ exception specifications macros now changed: stlsoft_throw_0() is now noexcept when supported; all others now resolve to nothing unless STLSOFT_USE_EXCEPTION_SPECIFICATIONS is defined - - ~ stlsoft/conversion/union_cast.hpp: - ~ moved all constant-tests to compile-time to fix compiler-warnings - - -============================================================================ - -Changes for 1.9.124 (15th November 2015) - -General: -======== - - * MSVC++ does not support __func__ - - -Changes: -======== - - STLSoft: - ======== - - ~ stlsoft/internal/cccap/msvc.h: - - MSVC++ does not support __func__ - - -============================================================================ - -Changes for 1.9.123 (15th November 2015) - -General: -======== - - * added STLSOFT_NOEXCEPT - * changed no-throw declaration from stlsoft_throw_0() to STLSOFT_NOEXCEPT - * STLSOFT_CF_EXPLICIT_KEYWORD_SUPPORT => STLSOFT_CF_explicit_KEYWORD_SUPPORT - * STLSOFT_CF_MUTABLE_KEYWORD_SUPPORT => STLSOFT_CF_mutable_KEYWORD_SUPPORT - * STLSOFT_CF_BUILTIN_nullptr_SUPPORT => STLSOFT_CF_nullptr_KEYWORD_SUPPORT - * STLSOFT_CF_OVERRIDE_KEYWORD_SUPPORT => STLSOFT_CF_override_KEYWORD_SUPPORT - * STLSOFT_CF_constexpr_KEYWORD_SUPPORT - * STLSOFT_CF_final_KEYWORD_SUPPORT - * added token_information<>::get(), token_information<>::size() - * correct use of deallocate() - - -Changes: -======== - - STLSoft: - ======== - - ACESTL: - ======= - - ~ acestl/collections/message_queue_sequence.hpp: - ~ acestl/reactor/custom_event_handler.hpp: - ~ changed no-throw declaration from stlsoft_throw_0() to STLSOFT_NOEXCEPT - - ATLSTL: - ======= - - ~ atlstl/automation/enumerators.hpp: - ~ atlstl/shims/access/string/cwindow.hpp: - ~ atlstl/util/module_scope.hpp: - ~ changed no-throw declaration from stlsoft_throw_0() to STLSOFT_NOEXCEPT - - COMSTL: - ======= - - ~ comstl/collections/collection_sequence.hpp: - ~ comstl/collections/enumeration_policies.hpp: - ~ comstl/collections/enumerator_sequence.hpp: - ~ comstl/conversion/interface_cast.hpp: - ~ comstl/error/bad_interface_cast.hpp: - ~ comstl/error/errorinfo_desc.hpp: - ~ comstl/error/exceptions.hpp: - ~ comstl/memory/task_allocator.hpp: - ~ comstl/shims/access/string/variant.hpp: - ~ comstl/smartptr/interface_ptr.hpp: - ~ comstl/string/bstr.hpp: - ~ comstl/util/acyclic_connector.hpp: - ~ comstl/util/guid.hpp: - ~ comstl/util/initialisers.hpp: - ~ comstl/util/value_policies.hpp: - ~ comstl/util/variant.hpp: - ~ changed no-throw declaration from stlsoft_throw_0() to STLSOFT_NOEXCEPT - - .netSTL: - ======== - - ~ dotnetstl/string/string_accessor.hpp: - ~ changed no-throw declaration from stlsoft_throw_0() to STLSOFT_NOEXCEPT - - InetSTL: - ======== - - ~ inetstl/error/exceptions.hpp: - ~ inetstl/filesystem/findfile_sequence.hpp: - ~ inetstl/filesystem/searchspec_sequence.hpp: - ~ inetstl/network/connection.hpp: - ~ inetstl/network/session.hpp: - ~ changed no-throw declaration from stlsoft_throw_0() to STLSOFT_NOEXCEPT - - MFCSTL: - ======= - - ~ mfcstl/collections/carray_adaptors.hpp: - ~ mfcstl/collections/clist_adaptors.hpp: - ~ mfcstl/memory/afx_allocator.hpp: - ~ mfcstl/shims/access/string/cwnd.hpp: - ~ mfcstl/string/grab_cstring_buffer.hpp: - ~ changed no-throw declaration from stlsoft_throw_0() to STLSOFT_NOEXCEPT - - PlatformSTL: - ============ - - ~ platformstl/filesystem/file_lines.hpp: - ~ platformstl/filesystem/readdir_sequence.hpp: - ~ changed no-throw declaration from stlsoft_throw_0() to STLSOFT_NOEXCEPT - - RangeLib: - ========= - - ~ rangelib/cstring_range.hpp: - ~ rangelib/error/exceptions.hpp: - ~ rangelib/integral_range.hpp: - ~ changed no-throw declaration from stlsoft_throw_0() to STLSOFT_NOEXCEPT - - STLSoft: - ======== - - ~ stlsoft/collections/array_view.hpp: - ~ stlsoft/collections/associative_container_veneer.hpp: - ~ stlsoft/collections/sequence_container_veneer.hpp: - ~ stlsoft/containers/fixed_array.hpp: - ~ stlsoft/containers/frequency_map.hpp: - ~ stlsoft/containers/static_array.hpp: - ~ stlsoft/conversion/byte_format_functions.hpp: - ~ stlsoft/conversion/explicit_cast.hpp: - ~ stlsoft/error/contract_violation.hpp: - ~ stlsoft/error/conversion_error.hpp: - ~ stlsoft/error/errno_scope.hpp: - ~ stlsoft/error/error_desc.hpp: - ~ stlsoft/error/os_exception.hpp: - ~ stlsoft/error/project_exception.hpp: - ~ stlsoft/error/throw_policies.hpp: - ~ stlsoft/error/unrecoverable.hpp: - ~ stlsoft/filesystem/searchspec_sequence.hpp: - ~ stlsoft/functional/noop.hpp: - ~ changed no-throw declaration from stlsoft_throw_0() to STLSOFT_NOEXCEPT - - ~ stlsoft/internal/_undefs.h: - ~ stlsoft/stlsoft.h: - + added STLSOFT_NOEXCEPT - ~ STLSOFT_CF_EXPLICIT_KEYWORD_SUPPORT => STLSOFT_CF_explicit_KEYWORD_SUPPORT - ~ STLSOFT_CF_MUTABLE_KEYWORD_SUPPORT => STLSOFT_CF_mutable_KEYWORD_SUPPORT - ~ STLSOFT_CF_BUILTIN_nullptr_SUPPORT => STLSOFT_CF_nullptr_KEYWORD_SUPPORT - ~ STLSOFT_CF_OVERRIDE_KEYWORD_SUPPORT => STLSOFT_CF_override_KEYWORD_SUPPORT - + STLSOFT_CF_constexpr_KEYWORD_SUPPORT - + STLSOFT_CF_final_KEYWORD_SUPPORT - - ~ stlsoft/internal/cccap/borland.h: - ~ stlsoft/internal/cccap/como.h: - ~ stlsoft/internal/cccap/dmc.h: - ~ stlsoft/internal/cccap/intel.h: - ~ stlsoft/internal/cccap/mwerks.h: - ~ stlsoft/internal/cccap/sunpro.h: - ~ stlsoft/internal/cccap/unknown.h: - ~ stlsoft/internal/cccap/vectorc.h: - ~ stlsoft/internal/cccap/watcom.h: - ~ STLSOFT_CF_EXPLICIT_KEYWORD_SUPPORT => STLSOFT_CF_explicit_KEYWORD_SUPPORT - ~ STLSOFT_CF_MUTABLE_KEYWORD_SUPPORT => STLSOFT_CF_mutable_KEYWORD_SUPPORT - - ~ stlsoft/internal/cccap/clang.h: - ~ stlsoft/internal/cccap/gcc.h: - ~ STLSOFT_CF_EXPLICIT_KEYWORD_SUPPORT => STLSOFT_CF_explicit_KEYWORD_SUPPORT - ~ STLSOFT_CF_MUTABLE_KEYWORD_SUPPORT => STLSOFT_CF_mutable_KEYWORD_SUPPORT - ~ STLSOFT_CF_OVERRIDE_KEYWORD_SUPPORT => STLSOFT_CF_override_KEYWORD_SUPPORT - - ~ stlsoft/internal/cccap/msvc.h: - ~ STLSOFT_CF_EXPLICIT_KEYWORD_SUPPORT => STLSOFT_CF_explicit_KEYWORD_SUPPORT - ~ STLSOFT_CF_MUTABLE_KEYWORD_SUPPORT => STLSOFT_CF_mutable_KEYWORD_SUPPORT - ~ STLSOFT_CF_BUILTIN_nullptr_SUPPORT => STLSOFT_CF_nullptr_KEYWORD_SUPPORT - ~ STLSOFT_CF_OVERRIDE_KEYWORD_SUPPORT => STLSOFT_CF_override_KEYWORD_SUPPORT - + STLSOFT_CF_constexpr_KEYWORD_SUPPORT - + STLSOFT_CF_final_KEYWORD_SUPPORT - - ~ stlsoft/internal/cccap/obsolete.h: - ~ STLSOFT_CF_EXPLICIT_KEYWORD_SUPPORT => STLSOFT_CF_explicit_KEYWORD_SUPPORT - ~ STLSOFT_CF_MUTABLE_KEYWORD_SUPPORT => STLSOFT_CF_mutable_KEYWORD_SUPPORT - ~ STLSOFT_CF_BUILTIN_nullptr_SUPPORT => STLSOFT_CF_nullptr_KEYWORD_SUPPORT - ~ STLSOFT_CF_OVERRIDE_KEYWORD_SUPPORT => STLSOFT_CF_override_KEYWORD_SUPPORT - - ~ stlsoft/iterators/member_selector_iterator.hpp: - ~ stlsoft/iterators/ostream_iterator.hpp: - ~ stlsoft/memory/allocator_base.hpp: - ~ stlsoft/memory/auto_buffer.hpp: - ~ stlsoft/memory/auto_destructor.hpp: - ~ stlsoft/memory/malloc_allocator.hpp: - ~ stlsoft/memory/new_allocator.hpp: - ~ stlsoft/memory/null_allocator.hpp: - ~ stlsoft/obsolete/first_class_promoter.hpp: - ~ stlsoft/obsolete/functionals.hpp: - ~ stlsoft/performance/performance_counter_scope.hpp: - ~ stlsoft/smartptr/ref_ptr.hpp: - ~ stlsoft/smartptr/shared_ptr.hpp: - ~ changed no-throw declaration from stlsoft_throw_0() to STLSOFT_NOEXCEPT - - ~ stlsoft/string/shim_string.hpp: - ~ stlsoft/string/shim_string_vc5_.hpp: - ~ stlsoft/string/simple_string.hpp: - ~ stlsoft/string/static_string.hpp: - ~ stlsoft/string/string_view.hpp: - ~ stlsoft/synch/lock_scope.hpp: - ~ stlsoft/synch/null_mutex.hpp: - ~ stlsoft/synch/singlethreaded_tss_index.hpp: - ~ stlsoft/system/cmdargs.hpp: - ~ stlsoft/util/constraints.hpp: - ~ stlsoft/util/inert.hpp: - ~ stlsoft/util/placement_aid.hpp: - ~ stlsoft/util/pod_veneer.hpp: - ~ stlsoft/util/static_initialisers.hpp: - ~ stlsoft/util/std/dinkumware_iterator_traits.hpp: - ~ stlsoft/util/unused_return_value_monitor.hpp: - ~ changed no-throw declaration from stlsoft_throw_0() to STLSOFT_NOEXCEPT - - UNIXSTL: - ======== - - ~ unixstl/dl/dl_call.hpp: - ~ unixstl/dl/module.hpp: - ~ unixstl/error/exceptions.hpp: - ~ unixstl/filesystem/current_directory_scope.hpp: - ~ unixstl/filesystem/file_path_buffer.hpp: - ~ unixstl/filesystem/filesystem_traits.hpp: - ~ unixstl/filesystem/glob_sequence.hpp: - ~ unixstl/filesystem/memory_mapped_file.hpp: - ~ unixstl/filesystem/pipe.hpp: - ~ unixstl/filesystem/readdir_sequence.hpp: - ~ unixstl/synch/process_mutex.hpp: - ~ unixstl/synch/semaphore.hpp: - ~ unixstl/synch/spin_mutex.hpp: - ~ unixstl/synch/thread_mutex.hpp: - ~ unixstl/synch/tss_index.hpp: - ~ changed no-throw declaration from stlsoft_throw_0() to STLSOFT_NOEXCEPT - - WinSTL: - ======= - - ~ winstl/clipboard/clipboard_format_sequence.hpp: - ~ winstl/control_panel/applet_module.hpp: - ~ winstl/conversion/int_to_string.hpp: - ~ winstl/dl/dl_call.hpp: - ~ winstl/dl/module.hpp: - ~ winstl/error/conversion_error.hpp: - ~ winstl/error/error_desc.hpp: - ~ winstl/error/exceptions.hpp: - ~ winstl/error/last_error_scope.hpp: - ~ winstl/filesystem/current_directory_scope.hpp: - ~ winstl/filesystem/file_path_buffer.hpp: - ~ winstl/filesystem/findfile_sequence.hpp: - ~ winstl/filesystem/findvolume_sequence.hpp: - ~ winstl/filesystem/memory_mapped_file.hpp: - ~ winstl/filesystem/path.hpp: - ~ winstl/filesystem/pipe.hpp: - ~ winstl/memory/heapwalk_sequence.hpp: - ~ winstl/memory/processheap_allocator.hpp: - ~ winstl/memory/shell_allocator.hpp: - ~ winstl/registry/reg_key.hpp: - ~ winstl/registry/reg_key_sequence.hpp: - ~ winstl/registry/reg_value_sequence.hpp: - ~ winstl/registry/util/shared_handles.hpp: - ~ winstl/shell/drophandle_sequence.hpp: - ~ winstl/shims/access/string/HWND.hpp: - ~ winstl/shims/access/string/LSA_UNICODE_STRING.hpp: - ~ winstl/shims/conversion/to_DATE/DATE.hpp: - ~ winstl/shims/conversion/to_FILETIME/FILETIME.hpp: - ~ winstl/synch/event.hpp: - ~ winstl/synch/process_mutex.hpp: - ~ winstl/synch/semaphore.hpp: - ~ winstl/synch/spin_mutex.hpp: - ~ winstl/synch/synchfwd.hpp: - ~ winstl/synch/thread_mutex.hpp: - ~ winstl/synch/tss_index.hpp: - ~ winstl/system/console_colour_scope.hpp: - ~ winstl/system/console_ctrl_handler_scope.hpp: - ~ winstl/system/environment_block.hpp: - ~ winstl/system/environment_sequence.hpp: - ~ winstl/system/pid_sequence.hpp: - ~ winstl/system/process_module_sequence.hpp: - ~ winstl/system/searchpath_sequence.hpp: - ~ winstl/system/system_info.hpp: - ~ winstl/system/system_traits.hpp: - ~ winstl/window/hdc_scope.hpp: - ~ winstl/window/setcursor_scope.hpp: - ~ winstl/window/setfocus_scope.hpp: - ~ winstl/window/window_enable_scope.hpp: - ~ winstl/window/window_icon_scope.hpp: - ~ winstl/window/window_redraw_scope.hpp: - ~ winstl/window/window_text_scope.hpp: - ~ winstl/window/window_update_scope.hpp: - ~ winstl/window/window_visible_scope.hpp: - ~ winstl/window/zorder_iterator.hpp: - ~ changed no-throw declaration from stlsoft_throw_0() to STLSOFT_NOEXCEPT - - ~ winstl/clipboard/clipboard_scope.hpp: - ~ winstl/system/version_info.hpp: - ~ changed no-throw declaration from stlsoft_throw_0() to STLSOFT_NOEXCEPT - ~ correct use of deallocate() - - ~ winstl/registry/reg_value.hpp: - ~ changed no-throw declaration from stlsoft_throw_0() to STLSOFT_NOEXCEPT - ~ STLSOFT_CF_MUTABLE_KEYWORD_SUPPORT => STLSOFT_CF_mutable_KEYWORD_SUPPORT - - ~ winstl/security/token_information.hpp: - + added token_information<>::get(), token_information<>::size() - ~ correct use of deallocate() - - -============================================================================ - -Changes for 1.9.122 (1st November 2015) - -General: -======== - - * added STLSOFT_PRETTY_FUNCTION_SYMBOL - * now prefers __func__ over __FUNCTION__ for STLSOFT_FUNCTION_SYMBOL - * added (recognition of) support for nullptr - * added (recognition of) support for static_assert - * added ss_override_k / STLSOFT_CF_OVERRIDE_KEYWORD_SUPPORT - * added STLSOFT_DEBUG - * Clang compatibility - * Windows-emulation compatibility - * replaced dodgy use of memset() - * forward compatibility with 1.10+ - -Changes: -======== - - - STLSoft: - ======== - - ~ stlsoft/algorithms/std/alt.hpp: - + STLSOFT_DEBUG - - ~ stlsoft/conversion/byte_format_functions.hpp: - + STLSOFT_DEBUG - - ~ stlsoft/conversion/char_conversions.hpp: - ~ stlsoft/conversion/explicit_cast.hpp: - ~ stlsoft/conversion/literal_cast.hpp: - ~ stlsoft/conversion/ptr_cast.hpp: - ~ Clang compatibility - - ~ stlsoft/conversion/truncation_test.hpp: - + STLSOFT_DEBUG - - ~ stlsoft/error/error_desc.hpp: - ~ Clang compatibility - - ~ stlsoft/internal/cccap/borland.h: - + STLSOFT_PRETTY_FUNCTION_SYMBOL - - ~ stlsoft/internal/cccap/clang.h: - + STLSOFT_PRETTY_FUNCTION_SYMBOL - + added ss_override_k / STLSOFT_CF_OVERRIDE_KEYWORD_SUPPORT - - ~ stlsoft/internal/cccap/como.h: - + STLSOFT_PRETTY_FUNCTION_SYMBOL - - ~ stlsoft/internal/cccap/dmc.h: - + STLSOFT_PRETTY_FUNCTION_SYMBOL - + added (recognition of) support for nullptr - + added (recognition of) support for static_assert - - ~ stlsoft/internal/cccap/gcc.h: - + STLSOFT_PRETTY_FUNCTION_SYMBOL - + added ss_override_k / STLSOFT_CF_OVERRIDE_KEYWORD_SUPPORT - - ~ stlsoft/internal/cccap/msvc.h: - + STLSOFT_PRETTY_FUNCTION_SYMBOL - + added ss_override_k / STLSOFT_CF_OVERRIDE_KEYWORD_SUPPORT - - ~ stlsoft/internal/cccap/mwerks.h: - ~ stlsoft/internal/cccap/sunpro.h: - ~ stlsoft/internal/cccap/unknown.h: - ~ stlsoft/internal/cccap/vectorc.h: - ~ stlsoft/internal/cccap/watcom.h: - + STLSOFT_PRETTY_FUNCTION_SYMBOL - - ~ stlsoft/shims/access/string/std/basic_string.hpp: - ~ Clang compatibility - - ~ stlsoft/stlsoft.h: - + STLSOFT_PRETTY_FUNCTION_SYMBOL - ~ now prefers __func__ over __FUNCTION__ - + added ss_override_k / STLSOFT_CF_OVERRIDE_KEYWORD_SUPPORT - ~ Clang compatibility - + STLSOFT_DEBUG - - ~ stlsoft/string/char_traits.hpp: - + STLSOFT_DEBUG - - ~ stlsoft/string/ctype_traits.hpp: - ~ stlsoft/string/fast_string_concatenator.hpp: - ~ Clang compatibility - - ~ stlsoft/string/simple_string.hpp: - + STLSOFT_DEBUG - - ~ stlsoft/string/special_string_instance.hpp: - ~ Clang compatibility - - ~ stlsoft/string/static_string.hpp: - + STLSOFT_DEBUG - - ~ stlsoft/string/view_slice_functions.hpp: - ~ stlsoft/util/inert.hpp: - ~ stlsoft/util/null.hpp: - ~ Clang compatibility - - UNIXSTL: - ======== - - ~ unixstl/filesystem/current_directory_scope.hpp: - ~ Clang compatibility - - ~ unixstl/filesystem/file_path_buffer.hpp: - + STLSOFT_DEBUG - ~ replaced dodgy use of memset() - - ~ unixstl/filesystem/glob_sequence.hpp: - ~ Clang compatibility - - ~ unixstl/filesystem/path.hpp: - + STLSOFT_DEBUG - ~ replaced dodgy use of memset() - - ~ unixstl/synch/sleep_functions.h: - ~ Windows-emulation compatibility - - ~ unixstl/synch/spin_mutex.hpp: - + STLSOFT_DEBUG - - WinSTL: - ======= - - ~ winstl/filesystem/file_path_buffer.hpp: - + STLSOFT_DEBUG - ~ replaced dodgy use of memset() - - ~ winstl/filesystem/findfile_sequence.hpp: - + STLSOFT_DEBUG - - ~ winstl/filesystem/path.hpp: -` + STLSOFT_DEBUG - ~ replaced dodgy use of memset() - - ~ winstl/shell/file_operations.hpp: - ~ refactored worker functions into implementation namespace - ~ merging from 1.10 - - ~ winstl/shims/access/string/time.hpp: - ~ forward compatibility with 1.10+ - - ~ winstl/synch/spin_mutex.hpp: - ~ winstl/system/console_functions.h: - ~ winstl/system/version_info.hpp: - + STLSOFT_DEBUG - - ~ winstl/winstl.h: - ~ definition of INVALID_FILE_ATTRIBUTES - - -============================================================================ - -Changes for 1.9.121 (26th September 2015) - - - STLSoft: - ======== - - ~ stlsoft/conversion/char_conversions.hpp: - ~ stlsoft/conversion/truncation_test.hpp: - + stlsoft/internal/cccap/clang.h: - ~ stlsoft/util/integral_printf_traits.hpp: - ~ stlsoft/util/limit_traits.h: - ~ stlsoft/util/std/iterator_helper.hpp: - - + Clang-compatibility - - - WinSTL: - ======= - - ~ winstl/util/struct_initialisers.hpp: - - ~ VC++ 11/12/14 compatibility - - -============================================================================ - -Changes for 1.9.120 (9th September 2015) - - - STLSoft: - ======== - - ~ stlsoft/memory/auto_buffer.hpp: - - ~ optimised swap() method (when swapping between to instances using internal buffer) - - COMSTL: - ======= - - ~ comstl/conversion/interface_cast.hpp: - - ~ VC++ 14 compatibility - - PlatformSTL: - ============ - - + platformstl/system/console_functions.h - - UNIXSTL: - ======== - - + unixstl/system/console_functions.h - - + unixstl_C_get_console_width() / unixstl::get_console_width() - - - WinSTL: - ======= - - ~ winstl/conversion/char_conversions.hpp: - - + added t2m and m2t in multibyte compilations - - ~ winstl/toolhelp/*.hpp: - - ~ widestring-compatible - - -============================================================================ - -Changes for 1.9.119 (26th August 2015) - -General: -======== - - + Visual C++ 14 (Visual Studio 2015) compatibility - - ~ compatibility with GCC 4.x's LLVM library - - ~ 64-bit compatibility fixes - - ~ various fixes for increased compiler pedanticism - - ~ corrections to ensure that all .h files are C-compatible - - ~ forward-compatibility (to STLSoft 1.12) for numerous macros - -Changes: -======== - - STLSoft: - ======== - - ~ stlsoft/meta/is_function_pointer_type.hpp: - - + discrimination of stdcall functions (when compiling in supported context) - - ~ stlsoft/meta/is_fundamental_type.hpp: - ~ stlsoft/meta/is_pointer_type.hpp: - - + added member type 'type' - - WinSTL: - ======= - - + winstl/internal/windows_version.h: - - + separated out all Windows-version assessments - - -============================================================================ - -Changes for 1.9.118 (31st May 2014) - -Summary: -======== - - * added Visual C++ 12 (VS 2013) compatibility - * added struct initialisers for CONSOLE_SCREEN_BUFFER_INFO & CONSOLE_SCREEN_BUFFER_INFOEX - * added second overload of winstl::filesystem_traits::ensure_dir_end() that takes a pointer to a length-added counter variable - * added forward-compatibility with STLSoft 1.10's substantially enhanced and expanded synchronisation exception hierarchy to Synchronisation Library types - * added winstl::system_traits::get_home_directory() (although it's only operative in 1.10+ or when using 1.10 alpha with 1.9) - * various minor fixes - * various minor changes - -Changes: -======== - - STLSoft: - ======== - - ~ stlsoft/internal/cccap/borland.h: - ~ stlsoft/internal/cccap/como.h: - ~ stlsoft/internal/cccap/dmc.h: - ~ stlsoft/internal/cccap/gcc.h: - ~ stlsoft/internal/cccap/intel.h: - ~ stlsoft/internal/cccap/msvc.h: - ~ stlsoft/internal/cccap/mwerks.h: - ~ stlsoft/internal/cccap/sunpro.h: - ~ stlsoft/internal/cccap/unknown.h: - ~ stlsoft/internal/cccap/vectorc.h: - ~ stlsoft/internal/cccap/watcom.h: - ~ tidying up use of non-standard names - - ~ stlsoft/stlsoft.h: - + added Visual C++ 12 (VS 2013) compatibility - ~ tidying up use of non-standard names - - ~ stlsoft/string/split_functions.hpp: - ~ layout changes - - *STL: - ===== - - ~ acestl/acestl.hpp: - ~ tidying up use of non-standard names - - ~ atlstl/atlstl.hpp: - ~ tidying up use of non-standard names - - ~ comstl/comstl.h: - ~ tidying up use of non-standard names - - ~ dotnetstl/dotnetstl.hpp: - ~ tidying up use of non-standard names - - ~ dotnetstl/string/string_accessor.hpp: - ~ fixed missing qualification of IntPtr - - ~ inetstl/inetstl.h: - ~ tidying up use of non-standard names - - ~ mfcstl/mfcstl.hpp: - ~ tidying up use of non-standard names - - - ~ wtlstl/wtlstl.hpp: - ~ tidying up use of non-standard names - - UNIXSTL: - ======== - - ~ unixstl/filesystem/glob_sequence.hpp: - ~ implementation function unused-parameter warning suppressed - - ~ unixstl/filesystem/readdir_sequence.hpp: - ~ unixstl/synch/process_mutex.hpp: - ~ unixstl/synch/semaphore.hpp: - ~ unixstl/synch/thread_mutex.hpp: - ~ changed case in exception message - - ~ unixstl/unixstl.h: - ~ tidying up use of non-standard names - - WinSTL: - ======= - - ~ winstl/error/error_desc.hpp: - ~ changed case in exception message - ~ adjustments for improving compiler compatibility - ~ now more flexibly handles different error constant types (with meta-logic to enforce integral type are not too-large for represenation) - - ~ winstl/error/error_functions.h: - ~ fixed counting defect, whereby some strings end up being oversized - - ~ winstl/filesystem/filesystem_traits.hpp: - + added second overload of ensure_dir_end() that takes a pointer to a length-added counter variable - - ~ winstl/filesystem/findfile_sequence.hpp: - ~ minor correction to documentation markup - - ~ winstl/registry/reg_key.hpp: - ~ tidying up use of non-standard names - - ~ winstl/registry/reg_key_sequence.hpp: - ~ winstl/registry/reg_value_sequence.hpp: - ~ changed case in exception message - - ~ winstl/shims/access/string/time.hpp: - ~ rearrangement - - ~ winstl/synch/event.hpp: - ~ winstl/synch/process_mutex.hpp: - ~ winstl/synch/semaphore.hpp: - ~ winstl/synch/tss_index.hpp: - ~ forward-compatibility with STLSoft 1.10's substantially enhanced and expanded synchronisation exception hierarchy - - ~ winstl/system/system_traits.hpp: - + added get_home_directory() (though only operative in 1.10 or 1.9 + 1.10 alpha) - + added get_home_directory() (although it's only operative in 1.10+ or when using 1.10 alpha with 1.9) - - ~ winstl/time/conversion_functions.h: - ~ corrected pre-conditions - - ~ winstl/util/struct_initialisers.hpp: - + added in CONSOLE_SCREEN_BUFFER_INFO - + added in CONSOLE_SCREEN_BUFFER_INFOEX - - ~ winstl/winstl.h: - ~ tidying up use of non-standard names - - -============================================================================ - -Changes for 1.9.117 (16th February 2013) - -Summary: -======== - - * added Visual C++ 11 compatibility - * various minor changes - -Changes: -======== - - STLSoft: - ======== - - ~ stlsoft/stlsoft.h: - ~ stlsoft/util/std/iterator_helper.hpp: - ~ stlsoft/util/std/library_discriminator.hpp: - + added Visual C++ 11 compatibility - - ~ stlsoft/string/char_traits.hpp: - ~ defect fix - - WinSTL: - ======= - - ~ winstl/error/error_desc.hpp: - ~ trivial correction - - ~ winstl/filesystem/directory_functions.hpp: - ~ propagates failed sub-directory removal up to caller - ~ fixing up of documentation of callback function semantics - - ~ winstl/system/console_functions.h: - ~ fixing doc - - ~ winstl/system/environment_variable.hpp: - ~ trivial tightening of pointer null - - -============================================================================ - -Changes for 1.9.116 (19th August 2012) - -Summary: -======== - - * fixed defect in winstl::pipe::close_write() - * various other minor warning suppression and reformatting - -Changes: -======== - - STLSoft: - ======== - - ~ stlsoft/util/sign_traits.hpp: - ~ VC++ 6 compatibility (with short) - - UNIXSTL: - ======== - - ~ unixstl/filesystem/readdir_sequence.hpp: - ~ semantically-meaningless reformatting (to ease diffs with STLSoft 1.10 version) - - WinSTL: - ======= - - ~ winstl/filesystem/pipe.hpp: - ~ fixed defective close_write() - - ~ winstl/time/format_functions.hpp: - ~ avoid truncation warning - - -============================================================================ - -Changes for 1.9.115 (31st July 2012) - -Summary: -======== - - * stlsoft::integer_to_string() new overloads with out-parameter as pointer; deprecated overloads with out-parameter as reference - * winstl::integral_printf_traits added octal_format_a/w(), hexadecimal_format_a/w(), decimal_format_a/w(); deprecated format_a/w() and hex_format_a/w() methods, and size_min, size_max, and size member constants - * Windows 7-compatibility for winstl::drophandle_sequence - * winstl::spin_mutex now uses SwitchToThread if _WIN32_WINNT >= 0x0400 - * added winstl::added GetTimeFormat_msExA/W() by which custom time markers can be specified - -Changes: -======== - - STLSoft: - ======== - - ~ stlsoft/conversion/integer_to_string.hpp: - + added overloads taking pointer out-parameter (for retrieval of written length) - ~ deprecated overloads taking reference out-parameter (for retrieval of written length) - ~ preparation for fwd-compatible changes - - ~ stlsoft/internal/cccap/msvc.h: - + support for static_assert (VC++ 10+) - + added STLSOFT_MSVC_VER - ~ recognition of 'long long' support for VC++8+ - - + stlsoft/internal/head_version.h: - + stlsoft/internal/lead_version.h: - + added head and lead version for STLSoft 1.9 - - ~ stlsoft/stlsoft.h: - + added remove_const_ptr() - + added apply_const_ptr() - + added inclusions for stlsoft/internal/head_version.h, which defines STLSOFT_HEAD_VER - + added inclusions for stlsoft/internal/lead_version.h, which defines STLSOFT_LEAD_VER - ~ now uses static_assert (in STLSOFT_STATIC_ASSERT()), when supported - - ~ stlsoft/string/split_functions.hpp: - ~ moved worker functions into nested namespace stlsoft::ximpl_split_functions - - ~ stlsoft/string/view_slice_functions.hpp: - ~ GCC compatibility (because of duff shims/template handling) - - ~ stlsoft/util/integral_printf_traits.hpp: - ~ size_min, size_max, and size member constants are now deprecated - ~ moved integral_printf_traits_base into internal namespace ximpl_integral_printf_traits - + added octal_format_a() - + added octal_format_w() - + added hexadecimal_format_a() - + added hexadecimal_format_w() - ~ deprecated hex_format_a() - ~ deprecated hex_format_w() - + added decimal_format_a() - + added decimal_format_w() - ~ deprecated format_a() - ~ deprecated format_w() - - WinSTL: - ======= - - ~ winstl/conversion/char_conversions.hpp: - ~ workaround for compatibility with ATL::CComBSTR (and other types that do not precisely convert to C const*) - - ~ winstl/shell/drophandle_sequence.hpp: - ~ changed to be compatible (and work!) with Windows 7(+) - ~ corrected formerly impotent contract enforcement - - ~ winstl/synch/spin_mutex.hpp: - ~ now yields via SwitchToThread() if _WIN32_WINNT >= 0x0400 - - ~ winstl/time/format_functions.hpp: - + added GetTimeFormat_msExA/W() by which custom time markers can be specified - ~ forward compatibility with STLSoft 1.10+ integer to string conversions - - - -============================================================================ - -Changes for 1.9.114 (4th June 2012) - -Summary: -======== - - * added unixstl::filesystem_traits::is_socket(char_type const*) method - * added unixstl::filesystem_traits::is_link(char_type const*) method - * added unixstl::filesystem_traits::is_socket(stat_data_type const*) method - * added unixstl::filesystem_traits::find_next_path_name_separator() method - * added unixstl::filesystem_traits::find_last_path_name_separator() method - * unixstl::filesystem_traits::get_full_path_name() now canonicalises '.'/'..'-trailing paths - * unixstl::readdir_sequence.hpp now includes directory name in thrown exception - -Changes: -======== - - UNIXSTL: - ======== - - ~ unixstl/filesystem/filesystem_traits.hpp: - ~ canonicalised '.' and '..'-trailing paths - ~ refactored get_full_path defect() logic - ~ fixed defect whereby too much of a source string was being copied over into buffer (leading to a seg-fault on UNIX) - + added is_socket(char_type const*) - + added is_link(char_type const*) - + added is_socket(stat_data_type const*) - + added find_next_path_name_separator() - + added find_last_path_name_separator() - - ~ unixstl/filesystem/glob_sequence.hpp: - ~ refactored way in which patterns and directories are pre-parsed - - ~ unixstl/filesystem/readdir_sequence.hpp: - + readdir_sequence_exception now has a Directory property - + now includes directory name in thrown exception - ~ minor compatibility fixes - - -============================================================================ - -Changes for 1.9.113 (4th June 2012) - -Summary: -======== - - * Intel C/C++ 12 support - * support for STLSOFT_COMPILE_VERBOSE; deprecation of _STLSOFT_COMPILE_VERBOSE - * fixed unixstl::filesystem_traits::broken get_current_directory() - * fixed unixstl::filesystem_traits::broken invalid_file_handle_value() - * fixed unixstl::filesystem_traits::is_file() / is_directory() / is_link() - * numerous improvements to unixstl::filesystem_traits::glob_sequence - * unixstl::readdir_sequence correction to elide sockets from search results - * winstl/time/conversion_functions.h renaming (and deprecation) of non-standard C function names - -Changes: -======== - - - STLSoft: - ======== - - ~ stlsoft/internal/cccap/gcc.h: - + added STLSOFT_GCC_VER - - ~ stlsoft/shims/access/string/std/exception.hpp: - ~ strengthened contract of implementation function - - ~ stlsoft/stlsoft.h: - + Intel C/C++ 12 support - ~ reworking of use of STLSOFT_COMPILE_VERBOSE; deprecation of _STLSOFT_COMPILE_VERBOSE - - ~ stlsoft/string/special_string_instance.hpp: - ~ trivial change - - ~ stlsoft/util/std/library_discriminator.hpp: - ~ reworking of use of STLSOFT_COMPILE_VERBOSE; deprecation of _STLSOFT_COMPILE_VERBOSE - - UNIXSTL: - ======== - - ~ unixstl/filesystem/filesystem_traits.hpp: - ~ fixed broken get_current_directory() - ~ corrected return value of invalid_file_handle_value() : now returns -1, rather than 0 - ~ corrected inappropriate flag testing to identify files/directories/links - - ~ unixstl/filesystem/glob_sequence.hpp: - ~ correct elision (or not) of dots directories, based on whether pattern contains wildcards and on whether matchPeriod is specified - ~ fixed defect - ~ simplified implementation, and now elides non-directory, non-file types (e.g. sockets) - ~ no longer specifies noSort by default - - removed some dead code - ~ clarified user-definable feature selection instructions - ~ correct handling of UNIXSTL_GLOB_SEQUENCE_DONT_TRUST_MARK - ~ changed internal API - ~ corrected rarely encountered defect in eliding dots directories - ~ fixed erroneous 1-param ctor - ~ minor refactoring - ~ corrected inappropriate flag testing to identify files/directories/links - - ~ unixstl/filesystem/readdir_sequence.hpp: - ~ forward compatibility - ~ correction for presence of sockets (non-Windows only) - - WinSTL: - ======= - - ~ winstl/registry/reg_key.hpp: - ~ const-correctness on REG_MULTI_SZ values - - ~ winstl/time/conversion_functions.h: - ~ conversion of deprecated winstl__??? form to winstl_C_??? form - ~ trivial formatting changes - + added documentation markup - - ~ winstl/winstl.h: - ~ Intel C/C++ 12 compatibility - - - -============================================================================ - -Changes for 1.9.112 (7th February 2012) - -Summary: -======== - - * added winstl_C_format_message_strerror_a(), an analogue of strerror() for Windows API "error" codes - * adjusted discrimination of exception-support macros, based on presence of GCC compiler's __EXCEPTIONS symbol - * minor VC++ compatibility fix for stlsoft/shims/access/string/std/exception.hpp - -Changes: -======== - - - STLSoft: - ======== - - ~ stlsoft/internal/cccap/gcc.h: - ~ adjusted discrimination of exception-support macros, based on presence of GCC compiler's __EXCEPTIONS symbol - - ~ stlsoft/shims/access/string/std/exception.hpp: - ~ VC++-compatibility - - WinSTL: - ======= - - ~ winstl/error/error_functions.h: - + added winstl_C_format_message_strerror_a(), an analogue of strerror() for Windows API "error" codes - - - -============================================================================ - -Changes for 1.9.111 (30th November 2011) - -Summary: -======== - - * fix for GCC 4.5+ unixstl::filesystem_traits - -Changes: -======== - - - UNIXSTL: - ======== - - ~ unixstl/filesystem/filesystem_traits.hpp: - ~ filesystem_traits::create_directory() 1-parameter overload now passes mode to 2-parameter overload - - -============================================================================ - -Changes for 1.9.110 (25th November 2011) - -Summary: -======== - - * fix for GCC 4.5+ unixstl::filesystem_traits - * added result_code_type to both unixstl::system_traits and winstl::system_traits - * correction(s)/enhancement(s) to which of MFCSTL's string access shim headers are automatically included - * added discrimination of new pre-processor symbol PLATFORMSTL_NO_PLATFORM_NAMESPACE, to ease dependent library implementation - * avoidance of false memory-leak reports in use of stlsoft::truncation_test - -Changes: -======== - - - STLSoft: - ======== - - ~ stlsoft/conversion/truncation_test.hpp: - ~ workaround to avoid false memory-leak reports in certain circumstances (seen when using platformstl::file_lines) - - MFCSTL: - ======= - - ~ mfcstl/shims/access/string.hpp: - + added inclusion for #include - ~ corrected inclusions to #include - - ~ mfcstl/shims/access/string/cwnd.hpp: - ~ corrected defects in definitions of CWnd-related overloads of c_str_len() shims - - PlatformSTL: - ============ - - ~ platformstl/platformstl.h: - + added discrimination of PLATFORMSTL_NO_PLATFORM_NAMESPACE - - UNIXSTL: - ======== - - ~ unixstl/filesystem/filesystem_traits.hpp: - ~ fix for GCC 4.5+ issue (returning NULL for file-handle type (int)) - - ~ unixstl/system/system_traits.hpp: - + added result_code_type (as we're trying to remove the presence of the misleading word "error" as much as possible) - - WinSTL: - ======= - - ~ winstl/system/system_traits.hpp: - + added result_code_type (as we're trying to remove the presence of the misleading word "error" as much as possible) - - -============================================================================ - -Changes for 1.9.109 (13th August 2011) - -Summary: -======== - - * added rbegin()/rend() to stlsoft::frequency_map<> - * added push_n() to stlsoft::frequency_map<> - * refactored throw statement(s) in terms of STLSOFT_THROW_X() throughout - * added reset() method to stlsoft::shared_ptr<> - * added various STLSoft deprecation macros - * added is_path_rooted(), is_path_absolute(), and is_path_UNC() methods to unixstl::filesystem_traits<> - * added two-parameters overloads of is_path_rooted(), is_path_absolute(), and is_path_UNC() methods to winstl::filesystem_traits<> - * include/winstl/error/error_functions.h: substantial refactoring of format_message()-family of functions (and their C analogues) - -Changes: -======== - - - STLSoft: - ======== - - ~ include/stlsoft/containers/frequency_map.hpp: - + added push_n() (rudimentary implementation) - ~ trivial changes - ~ trivial changes - + added rbegin()/rend() - - ~ include/stlsoft/conversion/truncation_cast.hpp: - ~ include/stlsoft/error/throw_policies.hpp: - ~ refactored throw statement(s) in terms of STLSOFT_THROW_X() - - ~ include/stlsoft/functional/composite_predicates.hpp: - ~ trivial formatting changes - ~ documentation changes - - ~ include/stlsoft/smartptr/shared_ptr.hpp: - + added reset() method - - ~ include/stlsoft/stlsoft.h: - + added STLSOFT_DECLARE_DEPRECATION() - + added STLSOFT_DECLARE_DEPRECATION_MESSAGE() - + added STLSOFT_DECLARE_FUNCTION_DEPRECATION() - + added STLSOFT_DECLARE_FUNCTION_DEPRECATION_IN_FAVOUR_OF() - + added STLSOFT_DECLARE_MACRO_DEPRECATION() - + added STLSOFT_DECLARE_MACRO_DEPRECATION_IN_FAVOUR_OF() - - ~ include/stlsoft/string/string_view.hpp: - ~ trivial formatting changes - - - COMSTL: - ======= - - ~ include/comstl/collections/enumeration_policies.hpp: - ~ include/comstl/error/bad_interface_cast.hpp: - ~ trivial formatting changes - - ~ include/comstl/string/bstr.hpp: - ~ include/comstl/util/value_policies.hpp: - ~ include/comstl/util/variant.hpp: - ~ refactored throw statement(s) in terms of STLSOFT_THROW_X() - - RangeLib: - ========= - - ~ include/rangelib/algorithms.hpp: - ~ include/rangelib/integral_range.hpp: - ~ refactored throw statement(s) in terms of STLSOFT_THROW_X() - - UNIXSTL: - ======== - - ~ include/unixstl/filesystem/directory_functions.hpp: - ~ trivial formatting changes - ~ "safe string" compatibility - - ~ include/unixstl/filesystem/filesystem_traits.hpp: - + added is_path_rooted() method - + added is_path_absolute() method - + added is_path_UNC() method - ~ widestring uses iswalpha() - ~ simplification/separation of Windows-emulation code - ~ corrected maximum-path length calculation(s) - - ~ include/unixstl/system/system_traits.hpp: - ~ "safe string" compatibility - + added implementations of str_n_compare_no_case() when emulating UNIX on Windows - - WinSTL: - ======= - - ~ include/winstl/error/error_desc.hpp: - ~ reimplemented to new overload of format_message(), specifying flags to more precisely control behaviour - ~ use of FORMAT_MESSAGE_IGNORE_INSERTS to resolve strings with inserts - ~ application of new STLSoft deprecation features - ~ trivial formatting changes - - ~ include/winstl/error/error_functions.h: - ~ renamed winstl_C_fmtmsg_find_last_good_a/w__ to winstl_C_fmtmsg_elide_message_a/w_ - + added winstl_C_format_message_from_module_to_allocated_buffer_a() - + added winstl_C_format_message_from_module_to_allocated_buffer() - + added new overload of format_message() - ~ applying new deprecation macros - ~ conditional elision of period - ~ deprecated functions - ~ reimplementing in terms of new functions - + added winstl_C_FormatMessageA_INVOKE_for_alloc_() - + added winstl_C_FormatMessageW_INVOKE_for_alloc_() - + winstl_C_FormatMessageA_INVOKE_in_buffer_() - + winstl_C_FormatMessageW_INVOKE_in_buffer_() - ~ trivial formatting changes - - ~ include/winstl/error/exceptions.hpp: - ~ uses new format_message() function(s) - - ~ include/winstl/filesystem/directory_functions.hpp: - ~ corrected maximum-path length calculation(s) - ~ trivial formatting changes - - ~ include/winstl/filesystem/file_path_buffer.hpp: - ~ trivial change - - ~ include/winstl/filesystem/filesystem_traits.hpp: - + added two-parameter overload of is_path_absolute() - + added two-parameter overload of is_path_rooted() - + added two-parameter overload of is_path_UNC() - ~ refactored internal implementation methods - ~ corrected maximum-path length calculation(s) - - ~ include/winstl/filesystem/memory_mapped_file.hpp: - ~ VC++ 9 compatibility - ~ corrected behaviour (and updated class invariant) for non-exception compilation - ~ now initialises m_lastStatusCode, so can be used in invariant - ~ removed all possible uses of word 'error' and replaced with 'status code' - - ~ include/winstl/shims/access/string/time.hpp: - ~ avoiding warnings (due to compiler not being able to see that STLSOFT_THROW_X() actually throws an exception, so the subsequent return is fatuous) - ~ refactored throw statement(s) in terms of STLSOFT_THROW_X() - - ~ include/winstl/system/system_traits.hpp: - ~ corrected maximum-path length calculation(s) - ~ pedantic change from HINSTANCE to HMODULE - - ~ include/winstl/winstl.h: - ~ now issues #error if compiling with WIN64 defined absent definition of _WIN64 - - -============================================================================ - -Changes for 1.9.108 (31st January 2011) - -Summary: -======== - - * changed erroneously named new unixstl::/winstl::filesystem_traits method's name from invalid_handle_value() to invalid_file_handle_value() - * added third, defaulted, template parameter to stlsoft::frequency_map for specification of predicate - - -Changes: -======== - - STLSoft: - ======== - - ~ include/stlsoft/containers/frequency_map.hpp: - + added third, defaulted, template parameter, allowing specification of predicate - - UNIXSTL: - ======== - - ~ include/unixstl/filesystem/filesystem_traits.hpp: - ~ changed erroneously named new method's name from invalid_handle_value() to invalid_file_handle_value() - - WinSTL: - ======= - - ~ include/winstl/filesystem/filesystem_traits.hpp: - ~ changed erroneously named new method's name from invalid_handle_value() to invalid_file_handle_value() - - -============================================================================ - -Changes for 1.9.107 (30th January 2011) - -Summary: -======== - - * added data() member to stlsoft::multibyte2wide and stlsoft::wide2multibyte - * added data() member to winstl::multibyte2wide and winstl::wide2multibyte - * improved performance of of c_str_len(_a|_w)() shim overloads of stlsoft::multibyte2wide and stlsoft::wide2multibyte - * improved performance of of c_str_len(_a|_w)() shim overloads of winstl::multibyte2wide and winstl::wide2multibyte - * added equal() method and operator ==/!=() non-member functions to unixstl::memory_mapped_file - * added equal() method and operator ==/!=() non-member functions to winstl::memory_mapped_file - * added non-member unixstl::swap() function for unixstl::memory_mapped_file - * added non-member platformstl::swap() function for platformstl::memory_mapped_file - * changed definition of unixstl::memory_mapped_file::size_type to be size_t - * added invalid_handle_value() method to unixstl::filesystem_traits<> - * added invalid_handle_value() method to winstl::filesystem_traits<> - * added added get_file_size(stat_data_type const&) and get_file_size(stat_data_type const*) overloads to unixstl::filesystem_traits<> - * added added get_file_size(stat_data_type const&) and get_file_size(stat_data_type const*) overloads to winstl::filesystem_traits<> - * reduced dependencies on other string access shim overloads in winstl::error_desc - - -Changes: -======== - - STLSoft: - ======== - - ~ stlsoft/collections/associative_mapped_type_detector.hpp: - ~ stlsoft/collections/collections.hpp: - ~ stlsoft/containers/array_policies.hpp: - ~ stlsoft/string/char_traits.hpp: - ~ stlsoft/util/std/algorithm.hpp: - ~ stlsoft/exceptions/active_end_iterator_exhaustion.hpp: - ~ stlsoft/exceptions/contract_violation.hpp: - ~ stlsoft/exceptions/external_iterator_invalidation.hpp: - ~ stlsoft/exceptions/iteration_interruption.hpp: - ~ stlsoft/exceptions/unrecoverable.hpp: - ~ stlsoft/function_adaptors/ref2ptr.hpp: - ~ stlsoft/functional/access_predicates.hpp: - ~ trivial formatting changes - - ~ stlsoft/conversion/char_conversions.hpp: - + added data() member - + added size() member, which returns length of contents, not length of buffer (was off by 1) - ~ improved performance of c_str_len(_a|_w)() shim overloads - - ~ stlsoft/iterators/c_str_inserter.hpp: - ~ documentation improvement - - - COMSTL: - ======= - - ~ comstl/interface/bad_interface_cast.hpp: - ~ comstl/interface/interface_cast.hpp: - ~ comstl/interface/interface_traits.hpp: - ~ trivial formatting changes - - UNIXSTL: - ======== - - ~ unixstl/filesystem/filesystem_traits.hpp: - + added invalid_handle_value() method - + added get_file_size(stat_data_type const&) and get_file_size(stat_data_type const*) overloads - - ~ unixstl/filesystem/memory_mapped_file.hpp: - + adds equal() method - + adds operator ==() non-member function - + adds operator !=() non-member function - + adds swap() non-member function (in unixstl namespace) - ~ size_type is not defined to be size_t, which affects only the case of a 32-bit architecture on which the compiler supports 64-bit integers; the effect is to move runtime failures to compile-time (since it's not possible to map a range of memory whose size exceeds 32-bits on a 32-bit system) - - ~ unixstl/synch/exceptions.hpp: - ~ trivial formatting changes - - WinSTL: - ======= - - ~ winstl/clipboard/exceptions.hpp: - ~ winstl/control_panel/exceptions.hpp: - ~ winstl/registry/defs.hpp: - ~ winstl/registry/exceptions.hpp: - ~ winstl/registry/shared_handles.hpp: - ~ winstl/shell/memory_functions.h: - ~ winstl/synch/exceptions.hpp: - ~ winstl/synch/functions.hpp: - ~ winstl/time/format_functions.h: - ~ winstl/toolhelp/exceptions.hpp: - ~ winstl/toolhelp/sequence_value_traits.hpp: - ~ trivial formatting changes - - ~ winstl/conversion/char_conversions.hpp: - + added data() member - ~ improved performance of c_str_len(_a|_w)() shim overloads - - ~ winstl/error/error_desc.hpp: - - reduced the amount of dependencies on other string access shim overloads - - ~ winstl/filesystem/filesystem_traits.hpp: - + added invalid_handle_value() method - + added get_file_size(stat_data_type const&) and get_file_size(stat_data_type const*) overloads - - ~ winstl/filesystem/memory_mapped_file.hpp: - + added equal() method, and operator ==/!= non-member operators - + added swap() in winstl namespace - - -============================================================================ - -Changes for 1.9.106 (28th December 2010) - -Summary: -======== - - * workaround for Intel compile error - - -Changes: -======== - - STLSoft: - ======== - - ~ include/winstl/error/exceptions.hpp: - ~ workaround for Intel compile error - - -============================================================================ - -Changes for 1.9.105 (27th December 2010) - -Summary: -======== - - * several new minor facilities in stlsoft::frequency_map - * improved compiler-compatibility in stlsoft::multibyte2wide and stlsoft::wide2multibyte - * WinSTL now recognises Win64 architecture when _WIN64 is defined even when WIN64 is not - - -Changes: -======== - - STLSoft: - ======== - - ~ stlsoft/containers/frequency_map.hpp: - + added member function operator +=() - + added non-member function operator +() - + added total() method - + added class invariant and enforcements - - ~ stlsoft/conversion/char_conversions.hpp: - ~ GCC compatibility - - ~ stlsoft/shims/access/string/std/exception.hpp: - ~ suppressed trivial unused warning - - UNIXSTL: - ======== - - ~ unixstl/filesystem/path.hpp: - ~ minor refactoring, to avoid use of str_n_copy() and str_cat() - - ~ unixstl/filesystem/readdir_sequence.hpp: - ~ refactored to remove use of str_n_copy() - - WinSTL: - ======= - - ~ winstl/filesystem/path.hpp: - ~ trivial refactoring - - ~ winstl/window/functions.h: - ~ VC++/-Wp64 warning suppression - - ~ winstl/winstl.h: - ~ now recognises _WIN64 (without WIN64) when defining architecture as WINSTL_OS_IS_WIN64, and emits a pragma message nag (for supporting compilers) - - -============================================================================ - -Changes for 1.9.104 (22nd November 2010) - -Summary: -======== - - * refactored wide string exception string access shim functions, to avoid so-called "deprecated" (standard) functions when using VC++ - * expanded internal buffers of shim strings for exception string access shims, from 10 to 100 - - -Changes: -======== - - STLSoft: - ======== - - ~ include/stlsoft/shims/access/string/std/exception.hpp: - ~ refactored wide-string string access shim functions, to avoid so-called "deprecated" (standard) functions when using VC++ - ~ expanded internal buffers of shim strings for exception string access shims, from 10 to 100 - - -============================================================================ - -Changes for 1.9.103 (21st November 2010) - -Summary: -======== - - * changed mechanism of discriminating Dinkumware standard library versions - * added typedefs for path_a and path_w to introduce them into the platformstl namespace - -Changes: -======== - - STLSoft: - ======== - - ~ include/platformstl/filesystem/path.hpp: - + added typedefs for path_a and path_w to introduce them into the platformstl namespace - - ~ include/stlsoft/util/std/library_discriminator.hpp: - ~ changed mechanism of discriminating Dinkumware standard library versions: for versions with VC++ 7.0+ the library pre-processor symbol _CPPLIB_VER is the trusted authority - - -============================================================================ - -Changes for 1.9.102 (8th November 2010) - -Summary: -======== - - * added wide string string access shims for std::exception - * fixed infinite-recursion defects in ambient shim function definitions - * other compatibility fixes - -Changes: -======== - - STLSoft: - ======== - - ~ include/stlsoft/shims/access/string/std/exception.hpp: - + added wide string string access shims for std::exception - ~ fixed infinite-recursion defects in ambient shim function definitions - - ~ include/stlsoft/util/std/library_discriminator.hpp: - ~ fixed VC9 (in)compatibility (which occurred only when including *before* STLSoft header files) - - ~ include/winstl/error/error_functions.h: - ~ fixed incorrectly specified obsolete symbols - - -============================================================================ - -Changes for 1.9.101 (30th September 2010) - -Summary: -======== - - * stlsoft::transform_iterator can now support transformation to types that do not support default construction - * fixed defect in stlsoft::transform_iterator - * platformstl::basic_file_lines refactored, and exception-safety enhanced - * winstl::memory_mapped_file refactored in preparation for substantial enhancement in 1.10; also no longer supports compilers that do not have native 64-bit integers - -Changes: -======== - - STLSoft: - ======== - - ~ stlsoft/iterators/transform_iterator.hpp: - + can now support transformation to types that do not support default construction - ~ fixed nasty as anything defect in decrement operator - - ~ stlsoft/string/cstring_functions.hpp: - ~ string_dup now responds robustly when out of memory used with a compiler that doesn't throw bad_alloc - - ~ stlsoft/string/simple_string.hpp: - ~ string_traits<> specialisation for basic_simple_string now works with any basic_simple_string specialisation permutation, rather than just basic_simple_string - ~ fix to defect in assign(cc*, size_t) - - PlatformSTL: - ============ - - ~ platformstl/filesystem/file_lines.hpp: - ~ trivial changes, ready for 1.10 changes - ~ simplified refactoring, readying for 1.10 - ~ exception-safety correction - ~ getting ready for major refactoring in 1.10 - - WinSTL: - ======= - - ~ winstl/error/error_functions.h: - + added character-encoding independent symbols - ~ conversion of deprecated winstl__??? form to winstl_C_??? form - - ~ winstl/filesystem/memory_mapped_file.hpp: - - no longer supports compilers that do not have native 64-bit integers - ~ final refactoring, ready for splitting in STLSoft 1.10 - ~ now allows for offset+requestSize for both 32-bit and 64-bit operation - ~ benign change of casting syntax, in order to support forthcoming separation into (C) source files in STLSoft 1.10 - - ~ winstl/system/console_functions.h: - ~ benign changes to winstl_C_get_console_width() to aid debugging - - ~ winstl/winstl.h: - + added INVALID_SET_FILE_POINTER - - -============================================================================ - -Changes for 1.9.100 (12th August 2010) - -Summary: -======== - - * added stlsoft/iterators/common/string_concatenation_flags.hpp - * string_concatenator_iterator now strictly skips separator insertion for empty elements if no flags are specified, and always inserts separator if string_concatenation_flags::AlwaysSeparate is specified - * added performance_counter_init::get_period_and_restart() method - * added STLSOFT_CC_CDECL_VALUE, STLSOFT_CC_FASTCALL_VALUE, STLSOFT_CC_STDCALL_VALUE - * special_string_instance now uses atomic_int_type - * string_tokeniser iterator dereference operator changed to disallow return of mutable instance - * string_view has improved comparison algorithm - * added 3-, 4-, and 5-parameter overloads of stlsoft::minimum() and stlsoft::maximum() - * various fixes and enhancements to platformstl::file_lines - * added size() and empty() methods to winstl::environment_variable - * implemented winstl::system_traits::str_n_compare_no_case() - -Changes: -======== - - STLSoft: - ======== - - ~ stlsoft/algorithms/pod.hpp: - ~ refactored, to remove inappropriate constraints - - + stlsoft/iterators/common/string_concatenation_flags.hpp: - + added stlsoft/iterators/common/string_concatenation_flags.hpp - - ~ stlsoft/iterators/string_concatenator_iterator.hpp: - ~ now strictly skips separator insertion for empty elements if no flags are specified, and always inserts separator if string_concatenation_flags::AlwaysSeparate is specified - - ~ stlsoft/performance/performance_counter_init.hpp: - + added get_period_and_restart() method - - ~ stlsoft/stlsoft.h: - + added STLSOFT_CC_CDECL_VALUE - + added STLSOFT_CC_FASTCALL_VALUE - + added STLSOFT_CC_STDCALL_VALUE - - ~ stlsoft/string/special_string_instance.hpp: - ~ special_string_instance now uses atomic_int_type - ~ minor change to avoid possible undefined-behaviour - - ~ stlsoft/string/string_tokeniser.hpp: - ~ iterator dereference operator changed to disallow return of mutable instance - - ~ stlsoft/string/string_view.hpp: - ~ improved comparison algorithm - ~ performance improvement in equal(class_type const&) method - - ~ stlsoft/util/constraints.hpp: - ~ compiler compatibility - ~ compatibility - ~ workaround for pedantic warnings - - ~ stlsoft/util/minmax.hpp: - + 3-, 4-, and 5-parameter overloads - - COMSTL: - ======= - - ~ comstl/util/rot_functions.h: - ~ trivial commenting changes - - PlatformSTL: - ============ - - ~ platformstl/filesystem/file_lines.hpp: - ~ 64-bit compatibility - ~ corrects the determination of whether to discard the mapping to work on the first non-empty string, since it will fault if the first line in a mapped file is empty but any others are not - + conversion constructor is now explicit - + added private declaration of constructor template to prevents the conversion constructor from being invoked on an instance of a different specialisation - ~ allows wider range of string types to be used, in particular those that are copy-constructible but do not provide assign() methods - - UNIXSTL: - ======== - - ~ unixstl/dl/module.hpp: - ~ includes STLSoft's main shims header, to at least allow GCC to see std::string arguments without hassle - + added typedefs to make compatible with get_module_handle() shim (not yet complete for UNIXSTL) - ~ surrounding template methods with #ifdefs - ~ throw() for unload() method(s) - - ~ unixstl/filesystem/filesystem_traits.hpp: - ~ GCC (on Windows) compatibility - + added missing member constant pathComparisonIsCaseSensitive to specialisations - - ~ unixstl/filesystem/path.hpp: - ~ ensures push_ext() is wide-string compatible - - WinSTL: - ======= - - ~ winstl/dl/module.hpp: - ~ documentation markup - - ~ winstl/filesystem/absolute_path.hpp: - ~ winstl/filesystem/current_directory.hpp: - ~ winstl/system/module_directory.hpp: - ~ winstl/system/module_filename.hpp: - ~ special_string_instance now uses atomic_int_type - - ~ winstl/filesystem/filesystem_traits.hpp: - + added missing member constant pathComparisonIsCaseSensitive to specialisations - - ~ winstl/filesystem/path.hpp: - ~ ensures push_ext() is wide-string compatible - - ~ winstl/system/console_functions.h: - ~ winstl__get_console_width() => winstl_C_get_console_width() - ~ winstl__get_console_window() => winstl_C_get_console_window() - ~ minor improvements to use of casts - - ~ winstl/system/environment_variable.hpp: - + added size() method - + added empty() method - - ~ winstl/system/searchpath_sequence.hpp: - ~ 64-bit compatibility - - ~ winstl/system/system_directory.hpp: - + added atomic_int_type - - ~ winstl/system/system_traits.hpp: - ~ implementation(s) of str_n_compare_no_case() - - ~ winstl/system/windows_directory.hpp: - + added atomic_int_type - - ~ winstl/winstl.h: - + added ws_intptr_t - + added ws_sintptr_t - + added ws_uintptr_t - - - -============================================================================ - -Changes for 1.9.99 (21st June 2010) - -Summary: -======== - - * added filesystem_traits::str_fs_compare() (UNIXSTL & WinSTL) - * added filesystem_traits::str_fs_n_compare() (UNIXSTL & WinSTL) - * added str_n_compare_no_case declaration to system_traits (UNIXSTL & WinSTL) - * added assoc_select_first() and assoc_select_second() creator functions for associative_select_iterator - * incorporated Manfred Ehrhart's fixes for associative_select_iterator - * Borland/GCC-compatibility fixes - * GCC-compatibility fixes - * nullptr support correction for VC++ - * various minor fixes - -Changes: -======== - - STLSoft: - ======== - - ~ stlsoft/error/error_desc.hpp: - ~ stlsoft/string/special_string_instance.hpp: - ~ GCC-compatibility fixes - - ~ stlsoft/filesystem/read_line.hpp: - ~ required disambiguation, via separating readers from implementation - - ~ stlsoft/internal/cccap/msvc.h: - ~ nullptr support correction for VC++ - - ~ stlsoft/iterators/associative_select_iterator.hpp: - ~ Borland/GCC-compatibility fixes - + added assoc_select_first() function - + added assoc_select_second() function - - removed the need to be explicit, to allow for assignment-syntax initialisation - + incorporate (after inexcusable delay) Manfred Ehrhart's fixes, addressing inappropriate member type and defect in select_second() - - UNIXSTL: - ======== - - ~ unixstl/filesystem/directory_functions.hpp: - ~ improved documentation for remove_directory_recurse() - - ~ unixstl/filesystem/filesystem_traits.hpp: - + added filesystem_traits::str_fs_compare() - + added filesystem_traits::str_fs_n_compare() - - ~ unixstl/system/system_traits.hpp: - + added str_n_compare_no_case declaration to system_traits - - WinSTL: - ======= - - ~ winstl/conversion/char_conversions.hpp: - ~ GCC-compatibility fixes - - ~ winstl/filesystem/directory_functions.hpp: - ~ improved documentation for remove_directory_recurse() - - ~ winstl/filesystem/filesystem_traits.hpp: - + added filesystem_traits::str_fs_compare() - + added filesystem_traits::str_fs_n_compare() - - ~ winstl/filesystem/findvolume_sequence.hpp: - ~ adds missing inclusion of shims header file(s) - - ~ winstl/system/system_traits.hpp: - + added str_n_compare_no_case declaration to system_traits - ~ documentation markup - - - -============================================================================ - -Changes for 1.9.98 (7th June 2010) - -Summary: -======== - - * added range overload of stlsoft::read_line(), so can read lines from an iterator range - * added nullptr (C++0x) support for VC++ 10 - * added swap() method to stlsoft::basic_shim_string - * added 3, 4, 5, and 6-split overloads to stlsoft::split() - * added sized-string ctor, data() and size() methods, and string access shims (to simplify xTests-based unit-testing, if nothing else) to stlsoft::exception_string - * added VARIANT_BOOL overload to comstl::method_cast() - * added platformstl::file_lines empty() method - * separated PlatformSTL's atomic types into separate file platformstl/synch/atomic_types.h - * separated UNIXSTL's atomic types into separate file unixstl/synch/atomic_types.h - * separated WinSTL's atomic types into separate file winstl/synch/atomic_types.h - * fixed winstl::memory_mapped_file to handle case where an offset is specified but there are 0 remaining bytes in the file to be mapped at that location: constructs an instance with 0 size - * fixed potential memory leak of format-message-string if windows_exception creation throws an exception - * moved COMSTL_CCH_GUID to comstl/comstl.h from comstl/shims/access/string/guid.hpp - * adjusted winstl::drophandle_sequence for Win64 compatibility - * adjusted winstl::version_info for Win64 compatibility - * various components no longer rely on operator += of exception_string type, in preparation for 1.10 versions - -Changes: -======== - - STLSoft: - ======== - - ~ stlsoft/containers/frequency_map.hpp: - ~ documentation markup - - ~ stlsoft/error/error_desc.hpp: - ~ forwards and backwards compatibility with basic_shim_string - - ~ stlsoft/filesystem/read_line.hpp: - + added range overload of read_line() - - ~ stlsoft/internal/cccap/msvc.h: - + added nullptr (C++0x) support for VC++ 10 - - ~ stlsoft/smartptr/ref_ptr.hpp: - ~ formatting - - ~ stlsoft/string/shim_string.hpp: - ~ stlsoft/string/shim_string_vc5_.hpp: - + added swap() method - - ~ stlsoft/string/split_functions.hpp: - + added 5 and 6 split overloads - + added 3 and 4 split overloads - - ~ stlsoft/util/exception_string.hpp: - - removed all mutating methods and several constructors, to simplify exception_string: all dependent code should now use exception_string_creator - + added sized-string constructor - + string access shims (useful for unit-testing, if nothing else) - + added data() - ~ now all member and non-member functions are defined in terms of char_type - + added size() method - - ~ stlsoft/util/forward_enums.hpp: - ~ changed all double underscores - - COMSTL: - ======= - - ~ comstl/comstl.h: - + added COMSTL_PTR_2_REF() - ~ moved COMSTL_CCH_GUID to comstl/comstl.h from comstl/shims/access/string/guid.hpp - - ~ comstl/conversion/interface_cast.hpp: - ~ documentation markup - - ~ comstl/conversion/method_cast.hpp: - + added VARIANT_BOOL overload - - ~ comstl/error/excepinfo_functions.h: - ~ comstl/shims/access/string/variant.hpp: - ~ comstl/util/variant.hpp: - ~ bstr_functions.h -> BSTR_functions.h - - ~ comstl/shims/access/string/guid.hpp: - ~ moved COMSTL_CCH_GUID to comstl/comstl.h from comstl/shims/access/string/guid.hpp - ~ bstr_functions.h -> BSTR_functions.h - - ~ comstl/string/bstr.hpp: - ~ formatting - ~ bstr_functions.h -> BSTR_functions.h - - ~ comstl/util/guid.hpp: - ~ adds missing include (to stlsoft/util/std_swap.hpp) - - - PlatformSTL: - ============ - - ~ platformstl/filesystem/file_lines.hpp: - + added empty() method - - ~ platformstl/synch/atomic_functions.h: - ~ separated PlatformSTL's atomic types into separate file platformstl/synch/atomic_types.h - ~ corrected include guard symbols - - ~ platformstl/synch/atomic_types.h: - ~ separated PlatformSTL's atomic types into separate file platformstl/synch/atomic_types.h - - UNIXSTL: - ======== - - ~ unixstl/error/exceptions.hpp: - ~ no longer relies on operator += of exception_string type, in preparation for 1.10 versions - - ~ unixstl/synch/atomic_functions.h: - ~ unixstl/synch/atomic_types.h: - ~ separated UNIXSTL's atomic types into separate file unixstl/synch/atomic_types.h - - WinSTL: - ======= - - ~ winstl/dl/dl_call.hpp: - ~ no longer relies on operator += of exception_string type, in preparation for 1.10 versions - - ~ winstl/error/exceptions.hpp: - ~ preparation for STLSoft 1.10 - ~ whitespace - ~ fixed potential memory leak if exception-creation throws an exception - ~ no longer relies on operator += of exception_string type, in preparation for 1.10 versions - - ~ winstl/filesystem/memory_mapped_file.hpp: - ~ now handles case where an offset is specified but there are 0 remaining bytes in the file to be mapped at that location: constructs an instance with 0 size - - ~ winstl/performance/threadtimes_counter.hpp: - ~ winstl/system/system_version.hpp: - ~ documentation markup - - ~ winstl/shell/drophandle_sequence.hpp: - ~ winstl/system/version_info.hpp: - ~ Win64 compatibility - - ~ winstl/synch/atomic_functions.h: - ~ winstl/synch/atomic_types.h: - ~ winstl/synch/spin_mutex.hpp: - ~ separated WinSTL's atomic types into separate file winstl/synch/atomic_types.h - ~ atomic_int_type is now winstl::atomic_int_t, rather than ws_sint32_t - - - -============================================================================ - -Changes for 1.9.97 (4th April 2010) - -Summary: -======== - - * added stlsoft::copy_preinc() and stlsoft::copy_postinc() algorithms - * added str_set() method to unixstl::/winstl::system_traits - * added unixstl/shims/conversion/to_uint64/stat.hpp - * added missing widestring specialisation of inetstl::filesystem_traits::is_path_name_separator() - * stlsoft::basic_error_desc synthesises widestring functionality if wcserror() is not available - * exposes widestring version of platformstl::system_traits from UNIXSTL - * comstl::variant compatibility with exception-support disabled - * removed erroneous definitions of strtol(), strtoul(), strtod() - * added missing 'mode' parameter to unixstl::module::load(), and uses 'mode' parameter passed to constructor template - * typename corrections to platformstl::basic_file_path_buffer and platformstl::basic_path - * improved discrimination of Visual C++ 9 / 10 - * fixed defective arithmetic in unixstl::/winstl::memory_mapped_file - * refactored implementation of winstl::reg_key::create_key() to avoid infinite loop faults - -Changes: -======== - - STLSoft: - ======== - - ~ stlsoft/algorithms/debug.hpp: - + copy_preinc() - + copy_postinc() - - ~ stlsoft/error/error_desc.hpp: - + synthesises widestring functionality - in terms of strerror() - if not available as wcserror (or "safe string" equivalent) - - ~ stlsoft/std/cstdlib.hpp: - - removed erroneous definitions of strtol(), strtoul(), strtod(): they used string access shims to elicit the string form of their arguments, and returned a pointer into the parsed string (which may no longer exist by the time the function returns) - + added strtol(char const*, ...) and strtol(wchar_t const*, ...) - + added strtoul(char const*, ...) and strtoul(wchar_t const*, ...) - + added strtod(char const*, ...) and strtod(wchar_t const*, ...) - - ~ stlsoft/util/std/library_discriminator.hpp: - ~ better discrimination of VC++ 9 & 10 - - COMSTL: - ======= - - ~ comstl/collections/enumerator_sequence.hpp: - ~ minor warning workaround - - ~ comstl/util/variant.hpp: - ~ compatibility with exception-support disabled - - InetSTL: - ======== - - ~ inetstl/filesystem/filesystem_traits.hpp: - + added missing is_path_name_separator for wide specialisation - - PlatformSTL: - ============ - - ~ platformstl/filesystem/file_path_buffer.hpp: - ~ platformstl/filesystem/path.hpp: - ~ correct use of typename to indicate dependent types in default template arguments - - ~ platformstl/system/system_traits.hpp: - ~ exposes wide version from UNIXSTL - - UNIXSTL: - ======== - - ~ unixstl/dl/module.hpp: - + added missing 'mode' parameter to load() - ~ used 'mode' parameter passed to constructor template - - ~ unixstl/filesystem/memory_mapped_file.hpp: - ~ fixed defective arithmetic when validating non-0 request size - - ~ unixstl/filesystem/path_functions.hpp: - ~ refactored implementation - - ~ unixstl/shims/conversion/to_uint64/stat.hpp: - + added unixstl/shims/conversion/to_uint64/stat.hpp - - ~ unixstl/synch/atomic_functions.h: - ~ unixstl/synch/util/features.h: - ~ preparation for future refinement - - ~ unixstl/system/system_traits.hpp: - + str_set() method - ~ other widestring compatibility changes - - WinSTL: - ======= - - ~ winstl/filesystem/memory_mapped_file.hpp: - ~ fixed defective arithmetic when validating non-0 request size - - ~ winstl/filesystem/path_functions.hpp: - ~ minor restructuring - - ~ winstl/registry/reg_key.hpp: - ~ refactored implementation of create_key() to avoid infinite loop fault in case of passing string types of non-matching character encodings - - ~ winstl/system/system_traits.hpp: - + str_set() method - - -============================================================================ - -Changes for 1.9.96 (10th March 2010) - -Summary: -======== - - * Visual C++ 10 compatibility - -Changes: -======== - - STLSoft: - ======== - - ~ include/stlsoft/internal/cccap/msvc.h: - + VC++ 10 compatibility - - ~ include/stlsoft/stlsoft.h: - + Visual C++ 10 support - - ~ include/stlsoft/util/std/iterator_helper.hpp: - + added support for Dinkumware 10 (as well as making explicit support for Dinkumware 8 & 9) - - ~ include/stlsoft/util/std/library_discriminator.hpp: - ~ refactored Dinkumware detection, to discriminate 8, 9 and 10 - - -============================================================================ - -Changes for 1.9.95 (7th March 2010) - -Summary: -======== - - * minor interface modifications to comstl::com_exception - -Changes: -======== - - COMSTL: - ======== - - ~ include/comstl/error/exceptions.hpp: - + added get_hr() - ~ deprecated hr() - - -============================================================================ - -Changes for 1.9.94 (5th March 2010) - -Summary: -======== - - * corrected omission of inline from swap for unixstl::memory_mapped_file - * corrected omission of inline from swap for winstl::memory_mapped_file - -Changes: -======== - - UNIXSTL: - ======== - - ~ include/unixstl/filesystem/memory_mapped_file.hpp: - ~ corrected omission of inline from swap for unixstl::memory_mapped_file - - WinSTL: - ======= - - ~ include/winstl/filesystem/memory_mapped_file.hpp: - ~ corrected omission of inline from swap for winstl::memory_mapped_file - - -============================================================================ - -Changes for 1.9.93 (15th February 2010) - -Summary: -======== - - * STLSOFT_CF_NAMESPACE_SUPPORT is now only defined in C++ compilation units - * added WINSTL_CONST_MAX_PATH, which is now used instead of _MAX_PATH throughout winstl - -Changes: -======== - - STLSoft: - ======== - - ~ include/stlsoft/internal/cccap/borland.h: - ~ include/stlsoft/internal/cccap/como.h: - ~ include/stlsoft/internal/cccap/dmc.h: - ~ include/stlsoft/internal/cccap/gcc.h: - ~ include/stlsoft/internal/cccap/intel.h: - ~ include/stlsoft/internal/cccap/msvc.h: - ~ include/stlsoft/internal/cccap/mwerks.h: - ~ include/stlsoft/internal/cccap/unknown.h: - ~ include/stlsoft/internal/cccap/vectorc.h: - ~ include/stlsoft/internal/cccap/watcom.h: - ~ STLSOFT_CF_NAMESPACE_SUPPORT is now only defined in C++ compilation units - - COMSTL: - ======= - - ~ include/comstl/error/errorinfo_desc.hpp: - ~ cast change - - WinSTL: - ======= - - ~ include/winstl/winstl.h: - + added WINSTL_CONST_MAX_PATH - - ~ include/winstl/filesystem/file_path_buffer.hpp: - ~ include/winstl/filesystem/filesystem_traits.hpp: - ~ include/winstl/filesystem/findvolume_sequence.hpp: - ~ include/winstl/filesystem/path.hpp: - ~ include/winstl/shell/browse_for_folder.hpp: - ~ include/winstl/shell/drophandle_sequence.hpp: - ~ include/winstl/shell/file_operations.hpp: - ~ include/winstl/system/searchpath_sequence.hpp: - ~ include/winstl/system/system_traits.hpp: - ~ include/winstl/system/version_info.hpp: - ~ now uses WINSTL_CONST_MAX_PATH - - -============================================================================ - -Changes for 1.9.92 (11th February 2010) - -Summary: -======== - - * added inetstl::filesystem_traits<>::is_path_name_separator() - -Changes: -======== - - InetSTL: - ======== - - ~ inetstl/filesystem/filesystem_traits.hpp: - + added is_path_name_separator() - - - -============================================================================ - -Changes for 1.9.91 (2nd February 2010) - -Summary: -======== - - * introducing unixstl::/winstl::remove_directory_recurse() into platformstl namespace - * removal of dependency on so-called "unsafe" string functions - * elimination of calls to memcpy() in path classes - * throwing of exception in make_absolute() if failed to get full path - -Changes: -======== - - PlatformSTL: - ============ - - ~ platformstl/filesystem/directory_functions.hpp: - + introducing unixstl::/winstl::remove_directory_recurse() into platformstl namespace - - UNIXSTL: - ======== - - ~ unixstl/filesystem/path.hpp: - ~ elimination of calls to memcpy() - ~ throwing of exception in make_absolute() if failed to get full path - - WinSTL: - ======= - - ~ winstl/filesystem/directory_functions.hpp: - - removal of dependency on so-called "unsafe" string functions - - ~ winstl/filesystem/path.hpp: - ~ elimination of calls to memcpy() - - - -============================================================================ - -Changes for 1.9.90 (21st January 2010) - -Summary: -======== - - * fixed defect in unixstl::filesystem_traits<>::get_full_path_name() when passed "." - * header ordering workaround for GCC 3.4's strange COM headers on Windows - -Changes: -======== - - UNIXSTL: - ======== - - ~ include/unixstl/filesystem/filesystem_traits.hpp: - ~ fixed defect in get_full_path_name() when passed "." - - WinSTL: - ======= - - ~ include/winstl/winstl.h: - ~ header ordering, for GCC 3.4 - - -============================================================================ - -Changes for 1.9.89 (19th January 2010) - -Summary: -======== - - * fixed defective stream inserter for stlsoft::error_desc - * fixed erroneous push-pop in include/acestl/reactor/custom_event_handler.hpp: - * safe-string compatibility for various UNIXSTL system/filesystem components - -Changes: -======== - - general: - ======= - - STLSoft: - ======== - - ~ include/stlsoft/error/error_desc.hpp: - ~ fixed defective stream inserter definition - - ACESTL: - ======= - - ~ include/acestl/reactor/custom_event_handler.hpp: - ~ corrected warning suppression push-pop - - UNIXSTL: - ======== - - ~ include/unixstl/filesystem/filesystem_traits.hpp: - ~ include/unixstl/filesystem/glob_sequence.hpp: - ~ include/unixstl/filesystem/path_functions.hpp: - ~ include/unixstl/filesystem/readdir_sequence.hpp: - ~ include/unixstl/system/system_traits.hpp: - ~ safe string compatibility - - -============================================================================ - -Changes for 1.9.88 (12th January 2010) - -Summary: -======== - - * added throwOnAccessFailure search flag to winstl::basic_findfile_sequence, along with supporting code - * added winstl::access_exception - * full integer handling for comstl::variant - * addition of max_size() static method to basic_file_path_buffer class template - * change of max_size() method to be static in basic_path - * fixed longstanding incompatibility between reverse_iterator and const_reverse_iterator - * C compatibility fixes - * compatibility with GCC 3.4 - * truncation_test is now a function template (rather than a macro to an internal function) - * deprecation/removal of reserved symbols, and replacement with valid symbols - -Changes: -======== - - general: - ======= - - STLSoft: - ======== - - ~ stlsoft/internal/cccap/unknown.h: - ~ changed to "modern" form of feature discrimination mechanisms - - ~ stlsoft/conversion/truncation_test.hpp: - ~ truncation_test is now a function template (rather than a macro to an internal function) - - ~ stlsoft/internal/cccap/msvc.h: - ~ C compatibility fixes - - ~ stlsoft/util/std/iterator_helper.hpp: - ~ compatibility between reverse_iterator and const_reverse_iterator - - COMSTL: - ======= - - ~ comstl/comstl.h: - ~ comstl/error/errorinfo_functions.h: - ~ compatibility with GCC 3.4 - - ~ comstl/util/rot_functions.h: - ~ conversion of deprecated comstl__??? form to comstl_C_??? form - - ~ comstl/util/variant.hpp: - + added ctors for unsigned integral types - ~ full handling of integers - - MFCSTL: - ======= - - ~ mfcstl/shims/access/string/cwnd.hpp: - ~ removing use of reserved symbols - - UNIXSTL: - ======== - - ~ unixstl/filesystem/file_path_buffer.hpp: - + added max_size() static method - - ~ unixstl/filesystem/path.hpp: - ~ changed max_size() method to be static - - WinSTL: - ======= - - ~ winstl/controls/listview_sequence.hpp: - ~ introduction of lvs_string_t from global namespace (where it should not be defined) to the winstl namespace (where it should be) - - ~ winstl/error/exceptions.hpp: - + added winstl::access_exception - - ~ winstl/filesystem/file_path_buffer.hpp: - + added max_size() static method - - ~ winstl/filesystem/findfile_sequence.hpp: - + added throwOnAccessFailure search flag, along with supporting code - - ~ winstl/filesystem/path.hpp: - ~ changed max_size() method to be static - - ~ winstl/performance/threadtimes_counter.hpp: - ~ refactored in preparation of throwing of exceptions when timing information cannot be elicited - - ~ winstl/shims/access/string/HWND.hpp: - ~ removing use of reserved symbols - - ~ winstl/winstl.h: - ~ compatibility with GCC 3.4 - + added MAKEINTRESOURCEA - + added MAKEINTRESOURCEW - - -============================================================================ - -Changes for 1.9.87 (11th August 2009) - -Summary: -======== - - * trivial formatting changes - - -============================================================================ - -Changes for 1.9.86 (24th July 2009) - -Summary: -======== - - * added STLSOFT_CF_THISCALL_SUPPORTED - * added thiscall overloads of mem_fun_ref() and mem_fun_ref_void() - * Borland compatibility for scoped_handle - * fix to unixstl::filesystem_traits::get_full_path_name() (to detect when path contains reserved characters) - -Changes: -======== - - general: - ======= - - ~ include/acestl/acestl.hpp: - ~ include/atlstl/atlstl.hpp: - ~ include/comstl/comstl.h: - ~ include/dotnetstl/dotnetstl.hpp: - ~ include/inetstl/inetstl.h: - ~ include/mfcstl/mfcstl.hpp: - ~ include/unixstl/unixstl.h: - ~ include/winstl/error/error_desc.hpp: - ~ include/winstl/winstl.h: - ~ include/wtlstl/wtlstl.hpp: - ~ minor documentation change - - STLSoft: - ======== - - ~ include/stlsoft/functional/method_adaptors.hpp: - ~ thiscall overloads of mem_fun_ref() and mem_fun_ref_void() - - ~ include/stlsoft/internal/cccap/borland.h: - ~ include/stlsoft/internal/cccap/como.h: - ~ include/stlsoft/internal/cccap/dmc.h: - ~ include/stlsoft/internal/cccap/mwerks.h: - ~ include/stlsoft/internal/cccap/vectorc.h: - ~ include/stlsoft/internal/cccap/watcom.h: - + added compiler feature symbol STLSOFT_CF_THISCALL_SUPPORTED - - ~ include/stlsoft/internal/cccap/gcc.h: - ~ include/stlsoft/internal/cccap/msvc.h: - + added compiler feature symbol STLSOFT_CF_THISCALL_SUPPORTED - ~ trivial formatting changes - - ~ include/stlsoft/internal/cccap/intel.h: - + added compiler feature symbol STLSOFT_CF_THISCALL_SUPPORTED - ~ changed compiler discrimination features to STLSoft 1.10 mode - - ~ include/stlsoft/smartptr/scoped_handle_borland_.hpp: - ~ Borland 5.5(.1) compatibility - - PlatformSTL: - ============ - - ~ include/platformstl/platformstl.h: - + PlatformSTL contract enforcement macros - - UNIXSTL: - ======== - - ~ include/unixstl/error/exceptions.hpp: - ~ suppresses "safe string" library warnings, when compiling with VC++ - - ~ include/unixstl/filesystem/filesystem_traits.hpp: - ~ get_full_path_name() now fails, and sets errno to ENOENT, if path contains a reserved character (one in "<>|*?") - - WinSTL: - ======= - - ~ include/winstl/filesystem/path.hpp: - ~ minor changes to exception-specifications - - -============================================================================ - -Changes for 1.9.85 (16th June 2009) - -Summary: -======== - - * added merge() and swap() to stlsoft::frequence_map class template - * winstl::listview_sequence::value_type::string_type (aka lvs_string_t) is now overrideable via the preprocessor, in preparation for future expansion of flexibility - -Changes: -======== - - ATLSTL: - ======= - - ~ atlstl/window/enhanced_window.hpp: - ~ refactored child dialog handle elicitation to single private method, in preparation of future increased flexibility - - STLSoft: - ======== - - ~ stlsoft/containers/frequency_map.hpp: - + added merge() method, which adds the entries and counts to the map - + added swap() - ~ changed default count type to unsigned int for VC++ pre-7.0, to avoid incompatibilities with other libraries - - ~ stlsoft/error/error_desc.hpp: - ~ nothrow on get_description() and c_str() - - WinSTL: - ======= - - ~ winstl/controls/listview_sequence.hpp: - ~ lvs_string_t may now be overridden via the pre-processor, in preparation for future expansion of flexibility - - -============================================================================ - -Changes for 1.9.84 (23rd May 2009) - -Summary: -======== - - * fixed defect in winstl::basic_reg_key::set_value() for REG_MULTI_SZ values (widestring only) - * "safe string" library and widestring support for stlsoft::basic_error_desc - * various 64-bit LP64 compatibility changes - -Changes: -======== - - COMSTL: - ======= - - ~ include/comstl/comstl.h: - ~ documentation enhancements - - STLSoft: - ======== - - ~ include/stlsoft/error/error_desc.hpp: - ~ "safe string" library support - ~ widestring support - - ~ include/stlsoft/memory/auto_buffer.hpp: - ~ include/stlsoft/string/string_traits.hpp: - ~ include/stlsoft/util/integral_printf_traits.hpp: - ~ include/stlsoft/util/limit_traits.h: - ~ include/stlsoft/util/sign_traits.hpp: - ~ 64-bit (LP64) compatibility - - WinSTL: - ======= - - ~ include/winstl/registry/reg_key.hpp: - ~ fixed defect in set_value_() overload for REG_MULTI_SZ values (widestring only) - - -============================================================================ - -Changes for 1.9.83 (19th May 2009) - -Summary: -======== - - * fixed defects in winstl::basic_reg_value::value_sz()/value_multi_sz() - * fixed defects in exception-safety in winstl::basic_reg_value and winstl::basic_reg_key - * various minor fixes and documentation mods - -Changes: -======== - - WinSTL: - ======= - - ~ include/winstl/registry/reg_key.hpp: - ~ corrected exception-safety defect (by reversing the order of m_name and m_hkey) - ~ added required dependency on - ~ documentation simplification - - ~ include/winstl/registry/reg_traits.hpp: - + added reg_dup_key() - - deprecated key_dup() - ~ linearising behaviour between operating systems - ~ tightening type-conversions - ~ documentation simplification - - ~ include/winstl/registry/reg_value.hpp: - ~ modifications to value_multi_sz() and value_sz() to avoid possible race conditions (with registry changes made by other processes) - ~ corrected exception-safety defect (by reversing the order of m_name and m_hkey) - ~ documentation simplification - - -============================================================================ - -Changes for 1.9.82 (15th May 2009) - -Summary: -======== - - * added winstl::reg_traits<>::reg_delete_tree() - * added IOStreams compatibility for winstl::findfile_sequence::value_type - -Changes: -======== - - WinSTL: - ======= - - ~ include/winstl/filesystem/findfile_sequence.hpp: - + added compatibility with IOStreams - - ~ include/winstl/registry/reg_traits.hpp: - + added reg_delete_tree() - - -============================================================================ - -Changes for 1.9.81 (7th May 2009) - -Summary: -======== - - * now recognises __func__, provided by Sun Pro, via STLSOFT_CF_func_SYMBOL_SUPPORT - * abstracts __FUNCTION__ support to STLSOFT_FUNCTION_SYMBOL - -Changes: -======== - - STLSoft: - ======== - - ~ include/stlsoft/internal/cccap/obsolete.h: - ~ include/stlsoft/internal/cccap/sunpro.h: - + added __func__ support detection - - ~ include/stlsoft/stlsoft.h: - + added __func__ support detection, via STLSOFT_CF_func_SYMBOL_SUPPORT - + added symbol for __FUNCTION__ or equivalent: STLSOFT_FUNCTION_SYMBOL - - -============================================================================ - -Changes for 1.9.80 (6th May 2009) - -Summary: -======== - - * now recognises support for variadic macros and #pragma once for later versions of Borland C/C++ - * SunPro compatibility improvements for UNIXSTL synchronisation components - * fixes to defects in stlsoft::basic_simple_string at() and 5-parameter compare() methods - * basic_path class templates (both UNIXSTL and WinSTL versions) now implement assignment operator differently to avoid possibilities of infinite loops (which can happen when a type with an opposing string encoding is used) - * correction to stlsoft::auto_buffer to ensure allocators are involved in swap() operations - * correction to struct in_addr string access shims for compatibility with big-endian architectures - * various changes for compatibility with "safe string" library - -Changes: -======== - - STLSoft: - ======== - - ~ include/stlsoft/algorithms/std/alt.hpp: - ~ "safe string" library compatibility (via a workaround that just ignores it wrt std::find()) - - ~ include/stlsoft/internal/cccap/borland.h: - ~ STLSOFT_CF_PRAGMA_ONCE_SUPPORT support - ~ STLSOFT_CF_SUPPORTS_VARIADIC_MACROS support - - ~ include/stlsoft/iterators/null_output_iterator.hpp: - ~ suppression of compiler warning - - ~ include/stlsoft/memory/auto_buffer.hpp: - ~ now swaps allocators - - ~ include/stlsoft/string/simple_string.hpp: - ~ more "safe string" compatibility - ~ fixed defective 5-parameter compare() method - ~ fixed defect in non-mutating version of at(), whereby specifying the index == length did not throw, but returned a reference to the terminating nul character (which is what the subscript operator should do (and does do)) - - ~ include/stlsoft/string/split_functions.hpp: - ~ trivial formatting change - - InetSTL: - ======== - - ~ include/inetstl/shims/access/string/std/in_addr.hpp: - ~ use of ntohl(), so compatible with big-endian as well as little - ~ compatibility with "safe string" library - - UNIXSTL: - ======== - - ~ include/unixstl/filesystem/path.hpp: - ~ changed implementation of generic operator =() in order to avoid possibilities of infinite loops (which can happen when a type with an opposing string encoding is used) - ~ trivial documentation markup changes - - ~ include/unixstl/synch/process_mutex.hpp: - ~ SunPro support (partially complete) - - ~ include/unixstl/synch/thread_mutex.hpp: - ~ SunPro support (partially complete) - - WinSTL: - ======= - - ~ include/winstl/filesystem/path.hpp: - ~ changed implementation of generic operator =() in order to avoid possibilities of infinite loops (which can happen when a type with an opposing string encoding is used) - - -============================================================================ - -Changes for 1.9.79 (2nd May 2009) - -Summary: -======== - - * UNIX compatibility for InetSTL - * "safe string" library compatibility for InetSTL - -Changes: -======== - - InetSTL: - ======== - - ~ include/inetstl/inetstl.h: - ~ include/inetstl/error/exceptions.hpp: - ~ include/inetstl/filesystem/filesystem_traits.hpp: - ~ include/inetstl/filesystem/findfile_sequence.hpp: - ~ include/inetstl/filesystem/ftpdir_sequence.hpp: - ~ include/inetstl/filesystem/functionals.hpp: - ~ include/inetstl/filesystem/searchspec_sequence.hpp: - ~ include/inetstl/network/connection.hpp: - ~ include/inetstl/network/session.hpp: - ~ UNIX compatibility - - ~ include/inetstl/shims/access/string/std/in_addr.hpp: - ~ compatibility with "safe string" library - - -============================================================================ - -Changes for 1.9.78 (27th April 2009) - -Summary: -======== - - * fixed serious defect in atlstl::copy_enumerator_impl::Reset() - * stlsoft::shared_ptr now works correctly if fails to allocate counter - variable in conditions where exception handling is not supported - * stlsoft::c_str_data_a(struct fm const*) now correctly handles case where - tm pointer is NULL - * corrected behaviour of get_environment_variable for both UNIXSTL and - WinSTL system_traits traits classes - * various compiler compatibility fixes - * various documentation corrections - -Changes: -======== - - STLSoft: - ======== - - ~ stlsoft/iterators/ostream_iterator.hpp: - ~ documentation corrections - - ~ stlsoft/shims/access/string/std/time.hpp: - ~ c_str_data_a(struct tm const* t) now correctly handles NULL tm pointer - - ~ stlsoft/smartptr/shared_ptr.hpp: - ~ now correctly handles failure to allocate the shared counter, even when compiling absent exceptions - - ATLSTL: - ======= - - ~ atlstl/automation/enumerators.hpp: - ~ fixed defect in Reset() - which did nothing! - that was introduced in STLSoft 1.9.1 beta 5 (!) upon transcription from the original, correct, Synesis Software proprietary source - ~ minor documentation fixes - - UNIXSTL: - ======== - - ~ unixstl/filesystem/filesystem_traits.hpp: - - removal of dependency of str(n)cpy()/wcs(n)cpy(), which causes VC++ 8+ to carp about "safety" - - ~ unixstl/system/system_traits.hpp: - ~ corrected behaviour of get_environment_variable() - - WinSTL: - ======= - - ~ winstl/filesystem/memory_mapped_file.hpp: - ~ CodeWarrior compatibility - - ~ winstl/system/system_traits.hpp: - ~ corrected behaviour of get_environment_variable() - - -============================================================================ - -Changes for 1.9.77 (9th March 2009) - -Summary: -======== - - * corrected invalid invariants in memory_mapped_file classes in UNIXSTL and - WinSTL - -Changes: -======== - - UNIXSTL: - ======== - - ~ include/unixstl/filesystem/memory_mapped_file.hpp: - ~ fixed invalid invariant - - WinSTL: - ======= - - ~ include/winstl/filesystem/memory_mapped_file.hpp: - ~ fixed invalid invariant - - -============================================================================ - -Changes for 1.9.76 (6th March 2009) - -Summary: -======== - - * added swap() methods to memory_mapped_file classes in UNIXSTL and WinSTL - * corrected defect in VC++ detection of bad_alloc support (which only - affects VC++ 6 or earlier) - -Changes: -======== - - STLSoft: - ======== - - ~ include/stlsoft/internal/cccap/msvc.h: - ~ corrected detection of bad_alloc support - - UNIXSTL: - ======== - - ~ include/unixstl/filesystem/memory_mapped_file.hpp: - + added swap() method, and std::swap() overload - - WinSTL: - ======= - - ~ include/winstl/filesystem/memory_mapped_file.hpp: - + added swap() method, and std::swap() overload - - -============================================================================ - -Changes for 1.9.75 (26th February 2009) - -Summary: -======== - - * tidied up COMSTL documentation - * tidied up scoped_handle use in winstl::memory_mapped_file - * added checks to detect at compile time accidental use of &stat_data with winstl::filesystem_traits<>::get_file_size() - * fixed defect in winstl::basic_reg_value::value_sz(), whereby the nul-terminator is included in the resultant string length - * tidied up winstl::basic_path, and added max_size() method - * tidied up winstl::basic_commandline_parser, added substring-constructor, and changed subscript operator to allow indexing (but not use) of the end element - -Changes: -======== - - COMSTL: - ======= - - ~ include/comstl/collections/collection_sequence.hpp: - ~ include/comstl/collections/enumeration_policies.hpp: - ~ include/comstl/collections/enumerator_sequence.hpp: - ~ include/comstl/util/value_policies.hpp: - ~ enhanced documentation markup - - WinSTL: - ======= - - ~ include/winstl/filesystem/filesystem_traits.hpp: - ~ added private method declarations to prevent accidental use of get_file_size(HANDLE) as if it was get_file_size(&stat_data) - - ~ include/winstl/filesystem/memory_mapped_file.hpp: - ~ tidied up use of scoped_handle for compilers that struggle with it - - ~ include/winstl/filesystem/path.hpp: - + added max_size() method - ~ minor documentation markup enhancements - + added precondition enforcement onto push() method - ~ moved implementation of push(char_type*) into push_() worker method, in preparation for using ptr+len in public methods - - ~ include/winstl/registry/reg_value.hpp: - ~ fixed defect in value_sz() method, whereby the resultant string length erroneously included the nul-terminator - - ~ include/winstl/system/commandline_parser.hpp: - - removed \brief documentation markup tags - + added additional ctor, taking length - ~ renamed all internal member types to have trailing underscore - ~ changed subscript operator to be able to index (but not use) the end element - - -============================================================================ - -Changes for 1.9.74 (13th February 2009) - -Summary: -======== - - * further implementation of special Borland version of stlsoft::scoped_handle - * further workarounds to Borland code generation defects in stlsoft::basic_simple_string and platformstl::basic_file_lines - -Changes: -======== - - STLSoft: - ======== - - ~ include/stlsoft/smartptr/scoped_handle_borland_.hpp: - + implementation for scoped_handle - - ~ include/stlsoft/string/simple_string.hpp: - ~ insertion of non-functioning code to cause Borland 6.1.x to generate correct code (in Pantheios, amongst others) - - PlatformSTL: - ============ - - ~ include/platformstl/filesystem/file_lines.hpp: - ~ workaround for Borland code generation defect - - -============================================================================ - -Changes for 1.9.73 (3rd February 2009) - -Summary: -======== - - * added partial support for Borland 5.9.x and 6.1.x; to support use of Borland with Pantheios - * re-applied VC++ 7.1 workaround eroneously removed in 1.9.70 - -Changes: -======== - - STLSoft: - ======== - - ~ include/stlsoft/stlsoft.h: - + support for Borland 5.9.x and 6.1.x - - ~ include/stlsoft/smartptr/scoped_handle.hpp: - + proper support for Borland, via a separate implementation (in stlsoft/smartptr/scoped_handle_borland_.hpp) - - ~ include/stlsoft/smartptr/scoped_handle_borland_.hpp: - + support for Borland 5.9.x and 6.1.x - - WinSTL: - ======= - - ~ include/winstl/filesystem/findfile_sequence.hpp: - ~ workaround for VC++ 7.1 defect (requiring length() to return size_t, not member type size_type) - - -============================================================================ - -Changes for 1.9.72 (1st February 2009) - -Summary: -======== - - * added char_copy() methods to filesystem_traits classes in UNIXSTL, as part of move away from "unsafe" string functions - * fixed defect in winstl::squeeze_path() whereby wrong length is returned if buffer size is < 5 and the file length < buffer size - * removes unwanted trailing slash in application directory from winstl::basic_searchpath_sequence - * further work to remove dependency on "unsafe" string functions - -Changes: -======== - - COMSTL: - ======= - - ~ include/comstl/shims/access/string/guid.hpp: - ~ modified symbols that broke reserved naming rules - - InetSTL: - ======== - - ~ include/inetstl/filesystem/filesystem_traits.hpp: - + added str_n_compare() - ~ tidied up asserts - - removed dependency on "unsafe" string library functions - - ~ include/inetstl/filesystem/findfile_sequence.hpp: - - removed dependency on "unsafe" string library functions - + added optional length parameter to get_directory() - - UNIXSTL: - ======== - - ~ include/unixstl/filesystem/file_path_buffer.hpp: - ~ tidying up - - ~ include/unixstl/filesystem/filesystem_traits.hpp: - ~ tidying up, and removal of declarations of functions (from wide char specialisation) that are not implemented - - ~ include/unixstl/filesystem/path.hpp: - - removal of dependency on so-called "unsafe" string functions - ~ simplification of implementation - - ~ include/unixstl/system/system_traits.hpp: - + added char_copy() - - WinSTL: - ======= - - ~ include/winstl/error/exceptions.hpp: - ~ minor mods - - ~ include/winstl/filesystem/findvolume_sequence.hpp: - - removed dependency on "unsafe" string functions - - ~ include/winstl/filesystem/path.hpp: - ~ simplification - - ~ include/winstl/filesystem/path_functions.hpp: - ~ fixed defect whereby if buffer size is < 5 and the file length < buffer size, the wrong length is returned - ~ now implemented in terms of system_traits<>::char_copy() - - ~ include/winstl/system/searchpath_sequence.hpp: - ~ no longer dependent on "safe" string library - ~ removes unwanted trailing slash on application directory - - ~ include/winstl/system/system_traits.hpp: - ~ tidied up asserts - - -============================================================================ - -Changes for 1.9.71 (28th January 2009) - -Summary: -======== - - * fixed DMC++ incompatibility introduced in 1.9.70 - -Changes: -======== - - WinSTL: - ======= - - ~ include/winstl/filesystem/findfile_sequence.hpp: - ~ added workaround for missing CO_E_PATHTOOLONG on DMC++ - - -============================================================================ - -Changes for 1.9.70 (25th January 2009) - -Summary: -======== - - * improved stlsoft::find_next_token() function templates to ensure that all empty fields are reported to caller - * added char_copy() methods to filesystem_traits classes in InetSTL and WinSTL, as part of move away from "unsafe" string functions - * minor enhancements to platformstl::readdir_sequence, to disambiguate constructor overloads - * removed all "unsafe" string functions from winstl::basic_findfile_sequence class template and supporting components - * improved winstl::basic_path class template to ensure proper behaviour in corner cases of use of push() and pop() methods - -Changes: -======== - - STLSoft: - ======== - - ~ include/stlsoft/string/tokeniser_functions.hpp: - ~ fixed benign defects in find_next_token() overloads, whereby certain empty fields were not reported to caller - ~ documentation enhancements - ~ adding in more pre-condition enforcements - - InetSTL: - ======== - - ~ include/inetstl/filesystem/filesystem_traits.hpp: - + char_copy() operations - - PlatformstSTL: - ============== - - ~ include/platformstl/filesystem/readdir_sequence.hpp: - ~ separation and disambiguation of constructor overloads - - WinSTL: - ======= - - ~ include/winstl/filesystem/findfile_sequence.hpp: - + added defaulted parameter to get_directory() to retrieve the directory length - ~ replaced all instances of so-called "unsafe" string functions with system_traits::char_copy() - - ~ include/winstl/filesystem/path.hpp: - ~ various fixes to push() and push_sep() - ~ corrected defects in pop(), seen in root directory paths, and paths involving UNC - - ~ include/winstl/system/system_traits.hpp: - + added char_copy() to system_traits specialisations - ~ trivial documentation markup modifications - - -============================================================================ - -Changes for 1.9.69 (23rd January 2009) - -Summary: -======== - - * improved robustness of winstl::path_squeeze - * more "Safe String" library compatibility changes - -Changes: -======== - - WinSTL: - ======= - - ~ include/winstl/filesystem/path.hpp: - ~ now implemented in terms of memcpy(), rather than strcpy(), strcat(), etc. - - ~ include/winstl/filesystem/path_functions.hpp: - ~ making robust in light of corner cases - - ~ include/winstl/string/resource_string.hpp: - ~ removal of unnecessary string access shim - - -============================================================================ - -Changes for 1.9.68 (18th January 2009) - -Summary: -======== - - * fix defect, and updated docs, for stlsoft::must_init utility class template - -Changes: -======== - - STLSoft: - ======== - - ~ include/stlsoft/util/must_init.hpp: - ~ fixed ambiguous operator +() bug - ~ documentation fixes - - -============================================================================ - -Changes for 1.9.67 (17th January 2009) - -Summary: -======== - - * compatibility with GCC on Fedora on PPC - * correction of semantics of null_allocator - -Changes: -======== - - STLSoft: - ======== - - ~ include/stlsoft/stlsoft.h: - ~ minor mods to documentation markup - - ~ include/stlsoft/internal/cccap/gcc.h: - ~ PowerPC (Fedora Linux) compatibility fix (thanks to Sergey Nikulov) - - ~ include/stlsoft/memory/null_allocator.hpp: - ~ when exception support is enabled it throws std::bad_alloc; otherwise, requesting memory from it is a contract violation - - -============================================================================ - -Changes for 1.9.66 (4th January 2009) - -Summary: -======== - - * compatibility with GCC 4.3's pedantic precedence warnings - * compatibility with SunPro compiler for limit_traits - -Changes: -======== - - STLSoft: - ======== - - ~ include/stlsoft/internal/cccap/sunpro.h: - ~ correcting Jon's surname - - ~ include/stlsoft/stlsoft.h: - ~ compatibility with GCC 4.3's pedantic precedence warnings - - ~ include/stlsoft/util/limit_traits.h: - ~ compatibility with SunPro compiler - - -============================================================================ - -Changes for 1.9.65 (1st January 2009) - -Summary: -======== - - * "Safe String" library compatibility changes - -Changes: -======== - - WinSTL: - ======= - - ~ include/winstl/filesystem/filesystem_traits.hpp: - - removal of dependency of str(n)cpy()/wcs(n)cpy(), which causes VC++ 8+ to carp about "safety" - - removal of dependency of strcpy()/wcscpy(), which causes VC++ 8+ to carp about "safety" - - ~ include/winstl/synch/process_mutex.hpp: - ~ trivial documentation modification - - -============================================================================ - -Changes for 1.9.64 (28th December 2008) - -Summary: -======== - - * fix to string access shims for VARIANT - -Changes: -======== - - COMSTL: - ======= - - ~ include/comstl/shims/access/string/variant.hpp: - ~ fixed defect seen with Borland, whereby conversion to multibyte string - in c_str_VARIANT_proxy_a's implicit conversion operator was not - carried out - - -============================================================================ - -Changes for 1.9.63 (9th December 2008) - -Summary: -======== - - * optimised stlsoft::basic_string_view::reserve() - * enhanced compatibility for stlsoft::fixed_array_?d class templates - -Changes: -======== - - STLSoft: - ======== - - ~ stlsoft/containers/fixed_arrays.hpp: - ~ compatibility with VC++ /Za option for fixed arrays - - ~ stlsoft/string/simple_string.hpp: - ~ optimised reserve() method so that it now does not alloc new buffer if - requested size is less than current capacity - - -============================================================================ - -Changes for 1.9.62 (1st December 2008) - -Summary: -======== - - * fixed defect in interface_cast<> and try_interface_cast<> - * improved compatibility with Visual C++ 9 - * speculative support for Intel C/C++ 11.0 - * fixed defect in winstl::to_SYSTEMTIME(DATE) overload - -Changes: -======== - - COMSTL: - ------- - - ~ comstl/conversion/interface_cast.hpp: - ~ fixed reference leak in smart pointer forms of interface_cast() and try_interface_cast() - ~ comstl/conversion/method_cast.hpp: - ~ minor tidying - - STLSoft: - -------- - - ~ stlsoft/internal/cccap/msvc.h: - ~ now correctly determines that VC++ 9 requires STLSOFT_CF_FUNCTION_SIGNATURE_FULL_ARG_QUALIFICATION_REQUIRED - ~ stlsoft/stlsoft.h: - ~ speculatively supports Intel C/C++ 11.0 - - WinSTL: - ------- - - ~ winstl/shims/conversion/to_SYSTEMTIME/DATE.hpp: - ~ fixed defect - initialising unknown name - in non-exception mode - - -============================================================================ - -Changes for 1.9.61 (19th November 2008) - -Summary: -======== - - * better compatibility with SAPI.h for COMSTL's sapi_util.hpp - * documentation markup improvements for a number of files - -Changes: -======== - - STLSoft: - -------- - - ~ stlsoft/iterators/filter_iterator.hpp: - ~ fixed up incorrect fwd-include guards - ~ stlsoft/string/shim_string.hpp: - ~ fixed up incorrect fwd-include guards - ~ stlsoft/string/split_functions.hpp: - - removed unnecessary iterator declaration - ~ improved documentation markup - - COMSTL: - ------- - - ~ comstl/speech/sapi_util.hpp: - ~ compatibility with sapi.h - - MFCSTL: - ------- - - ~ mfcstl/shims/attribute/get_synch_handle.hpp: - ~ documentation markup improvements - - -============================================================================ - -Changes for 1.9.60 (27th October 2008) - -Summary: -======== - - * added stlsoft::apply_const() - * added stlsoft/conversion/m2w.hpp - -Changes: -======== - - STLSoft: - -------- - - ~ stlsoft/stlsoft.h: - + added stlsoft::apply_const() - - + stlsoft/conversion/m2w.hpp: - provides access to stlsoft::m2w converter class - - -============================================================================ - -Changes for 1.9.59 (25th October 2008) - -Summary: -======== - - * change in ATLSTL's property method helpers to avoid infinite loop in - Visual C++ 6 problem when implementing property puts to CComBSTR - * fixed compile error with GCC when using VARIANTs in C compilation units - -Changes: -======== - - ATLSTL: - ------- - - ~ atlsoft/automation/property_method_helpers.hpp: - ~ fixed infinite loop defect in put_MemberValue(..., CComVariant const&, ...); - now assigns directly and handles case whereby assignment fail - - COMSTL: - ------- - - ~ comstl/comstl.h: - ~ refactored way in which VARIANT-manipulation macros are defined for C - compilation to fix compile errors with GCC - - -============================================================================ - -Changes for 1.9.58 (16th October 2008) - -Summary: -======== - - * fixed major defect introduced in 1.9.52 to WinSTL's time string access - shims - * fixed minor defects in COMSTL's VARIANT string access shims - * fixed defect in documentation generation whereby examples were omitted - * reduced compilation dependencies in STLSoft's time string access shims - -Changes: -======== - - Documentation: - -------------- - - ~ fixed defect in documentation generation whereby examples were omitted - - STLSoft: - -------- - - ~ stlsoft/shims/access/string/time.hpp: - ~ reduced include dependencies - - COMSTL: - ------- - - ~ comstl/shims/access/string/variant.hpp: - ~ passed VARIANT_ALPHABOOL to all variant conversion routines - ~ fixed defect whereby widestring and multibyte string lengths were - assumed to be equal (by c_str_len_w() and c_str_len_a() being - implemented in terms of c_str_len()) - - WinSTL: - ------- - - ~ winstl/shims/access/string/time.hpp: - ~ fixed defect whereby last character of converted date is truncated - ~ reduced include dependencies - - -============================================================================ - -Changes for 1.9.57 (10th October 2008) - -Summary: -======== - - * addition of missing const_reference member type in various Windows - controls collection classes - * C / C++ compatibility fixes for COMSTL - * fix of minor non-standard name in winstl::int_to_string() supporting - class - * a large number of files were altered in minor ways, to do with whitespace - and the placement of * and & symbols - * several files' documentation markup was cleaned up - -Changes: -======== - - *: - -- - - ~ a large number of files were altered in minor ways, to do with whitespace - and the placement of * and & symbols - ~ several files' documentation markup was cleaned up - - COMSTL: - ------- - - ~ comstl/comstl.h: - + added the macros COMSTL_ACCESS_VARIANT_MEM_BYPTR(), - COMSTL_ACCESS_VARIANT_MEM_BYREF(), COMSTL_ACCESS_VARIANT_vt_BYPTR(), - COMSTL_ACCESS_VARIANT_vt_BYREF(), - COMSTL_ACCESS_VARIANT_decVal_BYPTR(), and - COMSTL_ACCESS_VARIANT_decVal_BYREF(), which abstract the access of - VARIANT members between C (incl. Standard C) and C++ - - ~ comstl/util/DECIMAL_functions.h: - ~ comstl/util/VARIANT_functions.h: - ~ compatibility with Standard-C compilation (where anonymous unions and - structures are not valid) - - WinSTL: - ------- - - ~ winstl/conversion/int_to_string.hpp: - ~ rename of non-standard symbol - - ~ winstl/controls/combobox_sequence.hpp: - ~ winstl/controls/edit_line_sequence.hpp: - ~ winstl/controls/listbox_data_sequence.hpp: - ~ winstl/controls/listbox_sequence.hpp: - + added const_reference member type - - -============================================================================ - -Changes for 1.9.56 (1st October 2008) - -Summary: -======== - - * a large number of minor enhancements to the documentation markup - * fixes to defects to include guards in UNIXSTL - -Changes: -======== - - *: - -- - - ~ a large number of minor enhancements to the documentation markup - - UNIXSTL: - -------- - - ~ unixstl/filesystem/memory_mapped_file.hpp: - ~ unixstl/performance/performance_counter.hpp: - ~ unixstl/performance/performance_counter.hpp: - ~ unixstl/performance/processtimes_counter.hpp: - ~ unixstl/performance/processtimes_counter.hpp: - ~ tidied up includes for UNIX emulation on Win32 - ~ fixed defect in forward-include guards for sys/mman.h, sys/resource.h - and sys/time.h - - ~ unixstl/synch/sleep_functions.h: - ~ tidied up includes for UNIX emulation on Win32 - - -============================================================================ - -Changes for 1.9.55 (27th September 2008) - -Summary: -======== - - * corrected defects in stlsoft::wide2multibyte and stlsoft::multibyte2wide - conversion classes - * fixes to various x64 defects related to use of inappropriate calling - convention specifiers with use of dl_call - * sundry other modifications in internal pre-processor facilities and - small improvements to Watcom compatibility - -Changes: -======== - - STLSoft: - -------- - - ~ stlsoft/stlsoft.h: - + added internal pre-processor facilities - - ~ winstl/conversion/char_conversions.hpp - ~ corrected defective effective size() method (inherited from parent) - of multibyte2wide and wide2multibyte class templates, by hiding parent - and defining in-class version of method - - ~ stlsoft/stlsoft.h: - ~ some Watcom compatibility - - WinSTL: - ------- - - ~ winstl/dl/dl_call.hpp: - ~ winstl/system/pid_sequence.hpp: - ~ winstl/system/process_module_sequence.hpp: - ~ ensuring x64 compatibility with use of dl_call - - ~ winstl/filesystem/memory_mapped_file.hpp: - ~ some Watcom compatibility - - ~ winstl/registry/reg_value.hpp: - ~ winstl/registry/util/shared_handles.hpp: - ~ fixes to x64 defects (contributed by Austin Ziegler) - - -============================================================================ - -Changes for 1.9.54 (15th September 2008) - -Summary: -======== - - * added stlsoft::exception_string::truncate() method - * removed dependency of UDATE for to_FILETIME() and to_SYSTEMTIME() shim - overloads for DATE type - -Changes: -======== - - STLSoft: - -------- - - ~ stlsoft/util/exception_string.hpp: - + added truncate() method - - - WinSTL: - ------- - - ~ winstl/shims/conversion/to_FILETIME.hpp: - ~ winstl/shims/conversion/to_FILETIME/DATE.hpp: - ~ removed dependency of to_FILETIME(DATE const&) on UDATE - - ~ winstl/shims/conversion/to_SYSTEMTIME.hpp: - ~ winstl/shims/conversion/to_SYSTEMTIME/DATE.hpp: - ~ removed dependency of to_SYSTEMTIME(DATE const&) on UDATE - - -============================================================================ - -Changes for 1.9.53 (14th September 2008) - -Summary: -======== - - * changed definition of STLSOFT_STATIC_ASSERT() to work with GCC - * defect defect in pre-condition enforcement of - winstl::system_traits::expand_environment_strings() - -Changes: -======== - - STLSoft: - -------- - - ~ stlsoft/stlsoft.h: - ~ changed definition of STLSOFT_STATIC_CAST() for GCC, since GCC allows - an array dimension of -1 - - WinSTL: - ------- - - ~ winstl/system/system_traits.hpp: - ~ fixed defective pre-condition enforcement of - expand_environment_strings() - - -============================================================================ - -Changes for 1.9.52 (11th September 2008) - -Summary: -======== - - * fix for warnings in 64-bit compilation (VC9) in WinSTL string access - shims for SYSTEMTIME; also added extra safeguard against external race - condition - -Changes: -======== - - WinSTL: - ------- - - ~ winstl/shims/access/string/time.hpp - ~ fixed up 64-bit compiler warnings, by applying suitable - unsigned->signed casts - + added in safeguard for unlikely case of changing date/time pictures - mid call - - -============================================================================ - -Changes for 1.9.51 (7th September 2008) - -Summary: -======== - - * workaround for defective exception-throwing behaviour of - stlsoft::conversion_error with VC6 - * fixed defect in WinSTL string access shims for SYSTEMTIME that faults - when asked to process an invalid time value - -Changes: -======== - - STLSoft: - -------- - - ~ stlsoft/error/conversion_error.hpp - ~ fixed defect whereby the VC++ 6 compiler that causes the throwing of - any derived class to cause an ICE - - WinSTL: - ------- - - ~ winstl/shims/access/string/time.hpp - ~ fixed defect whereby failure to convert, due to invalid date, results - in fault in shim string - - -============================================================================ - -Changes for 1.9.50 (3rd September 2008) - -Summary: -======== - - * added stlsoft character conversion typedefs m2w, w2m, t2m, m2t - * fix for VC++ 6 defect in requiring return code after exception throw - -Changes: -======== - - STLSoft: - ------- - - ~ stlsoft/conversion/char_conversions.hpp: - + added typedefs m2w, w2m, t2m, m2t - - + stlsoft/conversion/w2m.hpp - * includes stlsoft/conversion/char_conversions.hpp - - -============================================================================ - -Changes for 1.9.49 (2nd September 2008) - -Summary: -======== - - * fix for DMC++ defect in winstl::reg_value function template definition - * added winstl character conversion typedefs m2w, w2m, t2m, m2t - -Changes: -======== - - WinSTL: - ------- - - ~ winstl/conversion/char_conversions.hpp: - + added typedefs m2w, w2m, t2m, m2t - - + winstl/conversion/w2m.hpp - * includes winstl/conversion/char_conversions.hpp - - ~ winstl/registry/reg_key.hpp: - ~ fix for DMC++ defect in winstl::reg_value function template - definition - - -============================================================================ - -Changes for 1.9.48 (23rd August 2008) - -Summary: -======== - - * added comstl/util/CY_functions.h - * added comstl/util/DECIMAL_functions.h - * added comstl/util/VARIANT_functions.h - * added comstl::variant conversion constructor for DECIMAL - * fixed bug in stlsoft::trim_all() - * added winstl::basic_error_desc<>::empty() - -Changes: -======== - - STLSoft: - -------- - - ~ stlsoft/containers/frequency_map.hpp - + addition of bool_type member type - - ~ stlsoft/containers/unsorted_map.hpp - + addition of class_type member type - - ~ stlsoft/string/shim_string.hpp - ~ increased internal memory buffer of basic_shim_string by 1, so - that users do not need to specify a number inclusive of the - terminating nul character - - ~ stlsoft/string/trim_functions.hpp - ~ fixed bug in trim_all() whereby the right iterator could be before the - left - - COMSTL: - ------- - - ~ comstl/util/variant.hpp - + added conversion constructor for DECIMAL - + implemented equal() - - + comstl/util/CY_functions.h - + CY_compare() - - + comstl/util/DECIMAL_functions.h - + DECIMAL_compare() - - + comstl/util/VARIANT_functions.h - + VARIANT_equal() - - WinSTL: - ------- - - ~ winstl/error/error_desc.hpp - + added bool_type member type - + added empty() method - - -============================================================================ - -Changes for 1.9.47 (12th August 2008) - -Summary: -======== - - * enhancement of stlsoft::read_line() function template to work with - various line-termination sequences - * enhancement of fixed array classes to allow zero size - * winstl::clipboard_format_sequence enhancements to iterator type profile - * winstl::clipboard_scope defect fix and documentation enhancement - * syntactic modification of contract enforcement statements to a large - number of components to address warnings with GCC 4.3 in pedantic mode - -Changes: -======== - - STLSoft: - -------- - - ~ stlsoft/containers/fixed_array.hpp - - fixed array classes now can be of zero size - - GCC 4.3 pedantic warnings - - ~ stlsoft/containers/static_array.hpp - GCC 4.3 pedantic warnings - - ~ stlsoft/conversion/union_cast.hpp - GCC 4.3 pedantic warnings - - ~ rewrote stlsoft::read_line(), which can now use any combination of the - line termination sequences CR, LF and CR+LF. stlsoft::read_line() is now - found in stlsoft/filesystem/read_line.hpp - - ~ stlsoft/filesystem/io_functions.hpp now includes stlsoft/filesystem/read_line.hpp - - ~ stlsoft/string/char_traits.hpp - GCC 4.3 pedantic warnings - - ACESTL: - ------- - - ~ acestl/collections/message_queue_sequence.hpp - GCC 4.3 pedantic warnings - ~ acestl/reactor/custom_event_handler.hpp - GCC 4.3 pedantic warnings - - COMSTL: - ------- - - ~ comstl/collections/enumerator_sequence.hpp - GCC 4.3 pedantic warnings - ~ comstl/string/bstr.hpp - GCC 4.3 pedantic warnings - - InetSTL: - -------- - - ~ inetstl/filesystem/findfile_sequence.hpp - GCC 4.3 pedantic warnings - - MFCSTL: - ------- - - ~ mfcstl/collections/clist_adaptors.hpp - GCC 4.3 pedantic warnings - - RangeLib: - --------- - - ~ rangelib/integral_range.hpp - GCC 4.3 pedantic warnings - - WinSTL: - ------- - - ~ winstl::clipboard_format_sequence::const_iterator now properly defined - according to rules outlined in Extended STL, vol 1 - (winstl/clipboard/clipboard_format_sequence.hpp) - - ~ winstl::clipboard_scope defect in deallocation function fixed, and - documentation markup improved to make clear the full semantics - - ~ winstl/controls/listbox_const_iterator.hpp - GCC 4.3 pedantic warnings - - ~ winstl/controls/listbox_data_const_iterator.hpp - GCC 4.3 pedantic warnings - - ~ winstl/filesystem/findfile_sequence.hpp - GCC 4.3 pedantic warnings - - ~ winstl/filesystem/findvolume_sequence.hpp - GCC 4.3 pedantic warnings - - ~ winstl/security/acl_sequence.hpp - GCC 4.3 pedantic warnings - - ~ winstl/shell/drophandle_sequence.hpp - GCC 4.3 pedantic warnings - - ~ winstl/toolhelp/sequence_base.hpp - GCC 4.3 pedantic warnings - - ~ winstl/window/zorder_iterator.hpp - GCC 4.3 pedantic warnings - - -============================================================================ - -Changes for 1.9.46 (11th August 2008) - -Summary: -======== - - * defect fixes to stlsoft::pod_vector - * reduced coupling, and increased functionality, of stlsoft::format_bytes() - * sundry compatibility improvements - -Changes: -======== - - STLSoft: - -------- - - ~ stlsoft::file_lines() changed slightly to ensure correct behaviour on - Windows platforms when emulating UNIX - - ~ stlsoft::std_fill_n() now eschews use of std::fill_n() when used with - Microsoft's Safe String library - - ~ stlsoft::pod_vector<> defects fixed: - ~ fix for assert in copy-ctor when copying empty object - ~ fix for failure to write value_type() into 1-parameter resize() - ~ fixed defect in resize() when moving from 0 != size() to 0 == size() - ~ fixed defect in range insert - ~ fixed defect in erase() - ~ renamed internal type buffer_type to buffer_type_ - - ~ stlsoft::format_bytes() rewritten to use custom hex formatting - instead of stdio formatting functions - - WinSTL: - ------- - - + winstl__FormatMessageA/W__buff_inst() altered for 64-bit compatibility - - -============================================================================ - -Changes for 1.9.45 (8th June 2008) - -Summary: -======== - - * enhancement to stlsoft::to_uint64 conversion shim for ULARGE_INTEGER - * more Win-64 compatibility changes - * fixes to winstl::basic_path class template - -Changes: -======== - - InetSTL: - -------- - - ~ inetstl/filesystem/filesystem_traits.hpp - 64-bit compatibility - - WinSTL: - ------- - - + winstl/shims/conversion/to_uint64/ULARGE_INTEGER.hpp - added overloads - for ULARGE_INTEGER to stlsoft::to_uint64 conversion shim - - ~ winstl/filesystem/filesystem_traits.hpp - get_full_path_name() sets last - error to ERROR_FILENAME_EXCED_RANGE when path is too long for - GetFullPathNameA() (since that does not set it) - ~ winstl/filesystem/path.hpp - - ~ fix to push() to ensure that ambient slash flavour is used - ~ make_absolute() now throws an exception if get_full_path_name() does - not succeed - ~ fix to canonicalise() for empty paths - ~ fix to canonicalise() for paths that contain drive and top-slash - only - - -============================================================================ - -Changes for 1.9.44 (1st June 2008) - -Summary: -======== - - * bug fix in winstl/shims/access/string/LSA_UNICODE_STRING.hpp, required - for newly released flecxx library - -Changes: -======== - - WinSTL: - ------- - - ~ winstl/shims/access/string/LSA_UNICODE_STRING.hpp - removed trailing - slash in two of the shim functions - - -============================================================================ - -Changes for 1.9.43 (31st May 2008) - -Summary: -======== - - * more Win64-compatibility modifications - * more Safe String library modifications - * expanded the stlsoft::get_FILE_ptr attribute shim for MFC's CStdioFile - -Changes: -======== - - STLSoft: - -------- - - ~ stlsoft/conversion/char_conversions.hpp - Safe String compatibility - ~ stlsoft/string/trim_functions.hpp - Safe String compatibility, and - removal of dependency on soon-to-be-obselete STLSoft standard emulation - functions (as they'll be handed off to the soon-to-be-released - flecxx library; see http://flecxx.org/) - ~ stlsoft/util/constraints.hpp - elimination of warnings for some highly - pedantic compiler modes - - COMSTL: - ------- - - ~ comstl/collections/enumerator_sequence.hpp - Win64 compatibility - - ~ comstl/string/bstr.hpp - Win64 compatibility - - MFCSTL: - ------- - - + mfcstl/shims/attribute/get_FILE_ptr.hpp - - WinSTL: - ------- - - ~ winstl/clipboard/clipboard_scope.hpp - tightening up of exception - handling code - - -============================================================================ - -Changes for 1.9.42 (13th May 2008) - -Summary: -======== - - * more Win64-compatibility modifications - * more Safe String library modifications - -Changes: -======== - - COMSTL: - ------- - - ~ comstl/string/olestring_functions.h - Safe String library compatibility - modifications, using wcscpy_s() instead of wcscpy() - - InetSTL: - -------- - - ~ inetstl/filesystem/findfile_sequence.hpp - minor warning suppression - - WinSTL: - ------- - - ~ winstl/window/functions.h - rewrote GetWindowLong()/SetWindowLong() use - to common functions winstl__get_window_sptrint_() and - winstl__set_window_sptrint_() - - -============================================================================ - -Changes for 1.9.41 (13th May 2008) - -Summary: -======== - - * bug fix for GCC compilation on PowerPC that was broken with 1.9.40 - - -============================================================================ - -Changes for 1.9.40 (13th May 2008) - -Summary: -======== - - * significant refactoring of compiler-capability discrimination for GCC and - VC++ - * compatibility fixes for SunPro compilers - * bug fix in integral_printf_traits (introduced in 1.9.39) - -Changes: -======== - - STLSoft: - -------- - - ~ include/stlsoft/internal/cccap/gcc.h: significant refactoring - ~ include/stlsoft/internal/cccap/msvc.h: significant refactoring - + include/stlsoft/internal/cccap/obsolete.h: defines old symbols in terms - of new; to be #included by all refactored compiler capability - discrimination files while rest of codebase is not up to date - - ~ stlsoft/string/split_functions.hpp: now defines - STLSOFT_STRING_SPLIT_FUNCTIONS_CANNOT_USE_STATIC_ARRAY when using SunPro - - ~ stlsoft/util/integral_printf_traits.hpp: fixed bug in 64-bit - specialisations that was introduced in 1.9.39 - - -============================================================================ - -Changes for 1.9.39 (11th May 2008) - -Summary: -======== - - * another tranche of changes for Win64 support - -Changes: -======== - - STLSoft: - -------- - - + added STLSOFT_WARN_64, to apply to variables whose sizes will be - different between Win32 and Win64, to elicit warnings from VC++ - (stlsoft/stlsoft.h) - - ~ stlsoft::truncation_test: suppression of 4267 warning in VC++ for the - final conversion, since it's already been determined by the test that - the conversion is valid - (stlsoft/conversion/truncation_test.hpp) - - WinSTL: - ------- - - ~ adjustment of winstl::BOOL2bool() for -Wp64 compilation - (winstl/winstl.h) - - ~ Windows Registry Library: change of result type from ws_long_t to LONG, - to avoid unnecessary conversions and Win32/64 warnings - (winstl/registry/reg_traits.hpp) - - ~ winstl::system_traits<>::get_locale_info(): change of cchData param from - int_type to int to avoid unnecessary conversions and Win32/64 warnings - (winstl/system/system_traits.hpp) - - ~ Windows Window Library: wholesale change from use of ws_long_t to - ws_sptrint_t to ensure that the window style functions are 32 and 64-bit - compatible - (winstl/window/functions.h) - - ~ winstl::set_window_icon(): suppression of 4267 warning in VC++ for what - appears to be a compiler bug in interpretation of the conversion to - LPARAM in this function - (winstl/window/functions.h) - - -============================================================================ - -Changes for 1.9.38 (4th May 2008) - -Summary: -======== - - * another tranche of changes for Win64 support - -Changes: -======== - - STLSoft: - -------- - - PlatformSTL: - ------------ - - + discrimination of PLATFORMSTL_ARCH_IS_**** symbols: - PLATFORMSTL_ARCH_IS_X86 - PLATFORMSTL_ARCH_IS_IA64 - PLATFORMSTL_ARCH_IS_X64 - PLATFORMSTL_ARCH_IS_INTEL - PLATFORMSTL_ARCH_IS_POWERPC - PLATFORMSTL_ARCH_IS_ALPHA - PLATFORMSTL_ARCH_IS_HPPA - PLATFORMSTL_ARCH_IS_SPARC - - -============================================================================ - -Changes for 1.9.37 (3rd May 2008) - -Summary: -======== - - * first tranche of changes for Win64 support - -Changes: -======== - - STLSoft: - -------- - - COMSTL: - ------- - - + cs_sptrint_t and cs_uptrint_t integer types that are the same size as - the pointers of the ambient architecture - - PlatformSTL: - ------------ - - ~ platformstl/synch/atomic_functions.h now discriminates on - PLATFORMSTL_OS_IS_WINDOWS instead of PLATFORMSTL_OS_IS_WINDOWS - - ~ platformstl/synch/atomic_functions.h now discriminates on - WINSTL_ARCH_IS_X86, WINSTL_ARCH_IS_IA64 and WINSTL_ARCH_IS_X64 instead - of _M_IX86, _M_IA64 and _M_X64 - - UNIXSTL: - -------- - - + added UNIXSTL_ARCH_IS_X86, UNIXSTL_ARCH_IS_IA64 and UNIXSTL_ARCH_IS_X64 - architecture discrimination symbols - - WinSTL: - ------- - - + added WINSTL_OS_IS_WIN32 and WINSTL_OS_IS_WIN64 operating system - discrimination symbols - - + added WINSTL_ARCH_IS_X86, WINSTL_ARCH_IS_IA64 and WINSTL_ARCH_IS_X64 - architecture discrimination symbols - - ~ winstl/synch/atomic_functions.h refactored to use new symbols - - ~ winstl/filesystem/filesystem_traits.hpp refactored to use new symbols - - ~ winstl/system/system_traits.hpp refactored to use new symbols - - -============================================================================ - -Changes for 1.9.36 (30th April 2008) - -Summary: -======== - - * added support for FreeBSD operating system - -Changes: -======== - - STLSoft: - -------- - - + added support for FreeBSD operating system - - -============================================================================ - -Changes for 1.9.35 (29th April 2008) - -Summary: -======== - - * added value_multi_sz() to winstl::reg_value - -Changes: -======== - - WinSTL: - ------- - - + added value_multi_sz() to winstl::reg_value - ~ refactored exception handling in basic_reg_key::reg_class() to avoid - spurious compiler warnings about unreachable branches - - -============================================================================ - -Changes for 1.9.34 (25th April 2008) - -Summary: -======== - - * renamed winstl::get_hwnd attribute shim to winstl::get_HWND - * minor adjustments to Sun Pro support - * library feature discrimination symbol cleanup - * refactored error/exception handling in Windows Registry library - -Changes: -======== - - *: - -- - - - STLSOFT_CF_BIDIRECTIONAL_ITERATOR_SUPPORT changed to - STLSOFT_LF_BIDIRECTIONAL_ITERATOR_SUPPORT in all files - - ~ renamed all get_hwnd() attribute shims to get_HWND() - - STLSoft: - -------- - - ~ include/stlsoft/internal/cccap/sunpro.h: adjustments to detect _BOOL - and _WCHAR_T for the bool and wchar_t types support - ~ include/stlsoft/internal/cccap/sunpro.h: adjustment to integral size - detection: now simply searches for _LP64 or __LP64__ for LP64, otherwise - assumes int & long are 4-bytes - ~ include/stlsoft/internal/cccap/sunpro.h: fix to known bug in Sun Pro C++ - library headers - is introduced to ensure it is included before - - - ~ stlsoft::auto_buffer::allocate_() 1-param overload implemented in terms - of the 2-param version - - COMSTL: - ------- - - ~ fix to comstl::co_create_instance(), to directly assign between - ref_ptr instances via set(), rather than copy constructors - - WinSTL: - ------- - - + winstl::key_not_duplicated_exception exception class to Windows Registry - library - ~ error/exception handling for all the following classes in the Windows - Registry library was refactored and ensured to be comprehensive: - * winstl::basic_reg_key - * winstl::basic_reg_key_sequence - * winstl::basic_reg_value - * winstl::basic_reg_value_sequence - - -============================================================================ - -Changes for 1.9.33 (25th April 2008) - -Summary: -======== - - * added support for the SunPro C and C++ compilers - * various mods to ensure headers are self-contained when used with - Windows "lean and mean" suppression symbols - -Changes: -======== - - STLSoft: - -------- - - ~ STLSOFT_STRINGIZE_w_() now defined in terms of STLSOFT_STRINGIZE_a() - for Sun Pro C and Borland - + Sun Pro C and Sun Pro C++ compatibility - ~ stlsoft::fixed_array_?d::swap() methods now implemented in terms of - new private get_allocator_() method - - STLSOFT_CF_BIDIRECTIONAL_ITERATOR_SUPPORT removed from all the compiler - capability files - ~ stlsoft::member_selector_iterator.hpp now compatible with Sun Pro C++ - when used in the -library=libCstd - ~ stlsoft/memory/allocator_features.hpp now compatible with Sun Pro C++ - when used in the -library=libCstd - ~ stlsoft/memory/auto_buffer.hpp now compatible with Sun Pro C++ - when used in the -library=libCstd - ~ stlsoft/shims/access/string/std/c_string.h now compatible with Sun Pro C++ - ~ stlsoft/string/simple_string.hpp now compatible with Sun Pro C++ - ~ stlsoft/util/integral_printf_traits.hpp now compatible with Sun Pro C++ - ~ correction to definition of stlsoft::integral_printf_traits - ~ stlsoft/util/std/iterator_helper.hpp now compatible with Sun Pro C++ - ~ stlsoft/util/std/library_discriminator.hpp now compatible with Sun Pro C++ - - COMSTL: - ------- - - + comstl::enumerator_sequence<>::quanta() - + comstl/error/errorinfo_functions.h includes oaidl.h and oleauto.h - + comstl/internal/interface_traits_std.hpp includes oaidl.h - + comstl/util/initialisers.hpp includes ole2.h - - UNIXSTL: - -------- - - ~ unixstl/unixstl.h now compatible with Sun Pro C++ - - WinSTL: - ------- - - ~ correction to return type of winstl__combobox_getitemdata() - ~ correction to return type of winstl__listbox_getitemdata() - ~ renamed listbox_operation_traits to listbox_data_sequence_traits (in - winstl/controls/listbox_data_sequence.hpp) - ~ renamed listbox_operation_traits to listbox_sequence_traits (in - winstl/controls/listbox_sequence.hpp) - ~ made winstl/error/exceptions.hpp self-contained when used with - Windows "lean and mean" suppression symbols - ~ marked winstl/shims/access/string/lsa_unicode_string.hpp as not for - unit-test (since the unit-test programs do not #include ) - - -============================================================================ - -Changes for 1.9.32 (22nd April 2008) - -Summary: -======== - - * fix for VC++ 8/9 linker error in the allocator_selector - * refactoring of string access shim headers for lightweight compilation - -Changes: -======== - - STLSoft: - -------- - - ~ fix for VC++ 8/9 linker error in the allocator_selector - - WinSTL: - ------- - - ~ refactoring of string access shim headers in light of Windows - "lean and mean" disabling symbols (e.g. NOUSER, NOWINOFFSETS) - - -============================================================================ - -Changes for 1.9.31 (13th April 2008) - -Summary: -======== - - * exception hierarchy refactoring - * bug fix to stlsoft::must_init - -Changes: -======== - - STLSoft: - -------- - - + new STLSoft-root exception: stlsoft::project_exception - - ~ exception hierarchy refactoring - - ~ fixes to stlsoft::must_init for built-in types to support assignment - - COMSTL: - ------- - - ~ exception hierarchy refactoring - - UNIXSTL: - -------- - - ~ exception hierarchy refactoring - - WinSTL: - ------- - - ~ exception hierarchy refactoring - - -============================================================================ - -Changes for 1.9.30 (3rd March 2008) - -Summary: -======== - - * tidying of distribution - - -============================================================================ - -Changes for 1.9.29 (3rd March 2008) - -Summary: -======== - - * more preparation for safe string library compatibility - -Changes: -======== - - UNIXSTL: - -------- - - ~ more preparation for safe string library compatibility - - WinSTL: - ------- - - ~ more preparation for safe string library compatibility - - -============================================================================ - -Changes for 1.9.28 (24th March 2008) - -Summary: -======== - - * enhancement to winstl::reg_key class - * preparation for safe string library compatibility - * bug fix for C-compilation in winstl/controls/functions.h - -Changes: -======== - - STLSoft: - -------- - - + stlsoft/internal/safestr.h - - UNIXSTL: - -------- - - ~ preparation for safe string library compatibility - - WinSTL: - ------- - - ~ preparation for safe string library compatibility - ~ correction to winstl/controls/functions.h - ~ improved error handling in winstl::reg_key - + winstl::reg_key new methods: has_sub_key() and has_value() - ~ winstl::reg_traits now inherits from winstl::system_traits - ~ winstl::window_traits now inherits from winstl::system_traits - - -============================================================================ - -Changes for 1.9.27 (17th March 2008) - -Summary: -======== - - * support for Visual C++ 9 (Visual C++ 2008) - * fixed pre-processor typo that breaks GCC -pedantic - * added item-data functions for list-/combo-boxes - -Changes: -======== - - STLSoft: - -------- - - + added support for Visual C++ 9.0 (Visual C++ 2008) - - UNIXSTL: - -------- - - ~ fix for pre-processor typo in unixstl::filesystem_traits, which is - breaking -pendantic GCC compilation - - WinSTL: - ------- - - + added item-data functions for list-/combo-boxes: listbox_getitemdata() - and combobox_getitemdata() - - -============================================================================ - -Changes for 1.9.26 (15th March 2008) - -Summary: -======== - - * definition, where appropriate, of STLSOFT_CF_FUNCTION_SYMBOL_SUPPORT, - denoting that a particular compiler supports the __FUNCTION__ - pre-processor symbol - -Changes: -======== - - STLSoft: - -------- - - ~ stlsoft/internal/cccap/borland.h - ~ stlsoft/internal/cccap/como.h - ~ stlsoft/internal/cccap/dmc.h - ~ stlsoft/internal/cccap/gcc.h - ~ stlsoft/internal/cccap/intel.h - ~ stlsoft/internal/cccap/msvc.h - ~ stlsoft/internal/cccap/mwerks.h - ~ stlsoft/internal/cccap/unknown.h - ~ stlsoft/internal/cccap/vectorc.h - ~ stlsoft/internal/cccap/watcom.h - - -============================================================================ - -Changes for 1.9.25 (9th March 2008) - -Summary: -======== - - * wholesale increase of use of forward include guards, to reduce - compilation times - -Changes: -======== - - < too many to list > - - -============================================================================ - -Changes for 1.9.24 (8th March 2008) - -Summary: -======== - - * finishing up some missed std::swap refactoring - -Changes: -======== - - STLSoft: - -------- - - ~ stlsoft/collections/array_view.hpp now uses std_swap - ~ stlsoft/string/string_view.hpp now uses std_swap - - UNIXSTL: - -------- - - ~ unixstl/filesystem/glob_sequence.hpp now uses std_swap - - WinSTL: - ------- - - ~ unixstl/filesystem/path.hpp now uses std_swap - - -============================================================================ - -Changes for 1.9.23 (20th February 2008) - -Summary: -======== - - * fix for minor compiler compatibility issue - -Changes: -======== - - STLSoft: - -------- - - ~ STLSOFT_CF_EXCEPTION_SUPPORT was being defined for Metrowerks CodeWarrior - in C compilation units. This is now corrected - - -============================================================================ - -Changes for 1.9.22 (8th February 2008) - -Summary: -======== - - * refactored unixstl/synch/util/features.h - -Changes: -======== - - UNIXSTL: - -------- - - ~ adjusted the PThreads discrimination in unixstl/synch/util/features.h to - not be affected by the inclusion of pthread.h (which seems to be included - by on UNIX with GCC !?) - - WinSTL: - ------- - - ~ minor warning suppression in winstl/filesystem/memory_mapped_file.hpp - - ~ minor warning-avoidance refactoring in - winstl/system/console_colour_scope.hpp - - -============================================================================ - -Changes for 1.9.21 (5th February 2008) - -Summary: -======== - - * fixed a bug in platformstl/synch/util/features.h - -Changes: -======== - - ~ platformstl/synch/util/features.h was erroneously #including - unixstl/synch/sleep_functions.h, - rather than - unixstl/synch/util/features.h - - -============================================================================ - -Changes for 1.9.20 (3rd February 2008) - -Summary: -======== - - * added new stlsoft::singlethreaded_tss_index synchronisation utility class - -Changes: -======== - - STLSoft: - -------- - - + new stlsoft::singlethreaded_tss_index class - (stlsoft/synch/singlethreaded_tss_index.hpp), which is - interface-compatible with unixstl::tss_index and winstl::tss_index, for - single-threaded contexts. - - -============================================================================ - -Changes for 1.9.19 (2nd February 2008) - -Summary: -======== - - * enhancement of SAPI utility header for COMSTL - -Changes: -======== - - COMSTL: - -------- - - ~ comstl/speech/sapi_util.hpp now introduces the SPEAKFLAGS enumerators - into the global namespace, to be compatible with the SAPI headers. - - -============================================================================ - -Changes for 1.9.18 (27th January 2008) - -Summary: -======== - - * enhancement of STLSoft's integral_printf_trait component to support - Pantheios 1.0.1 beta 91 - * release of SAPI utility header for COMSTL - -Additions: -========== - - STLSoft: - -------- - - + added hex_format_a/w() methods to integral_printf_traits - - COMSTL: - -------- - - + comstl/speech/sapi_util.hpp, which abstracts away the definitions of the - SAPI interfaces and constants, for those compilers that do not have the - headers supplied. - - -============================================================================ - -Changes for 1.9.17 (5th January 2008) - -Summary: -======== - - * bug fix for UNIXSTL on Leopard/GCC 4.0.1 - -Fixes: -====== - - UNIXSTL: - -------- - - ~ Fixed new incompatibility in the definition of UNIXSTL_ASSERT for the - Mac OS-X platform, evinced with Leopard and GCC 4.0.1 - - -============================================================================ - -Changes for 1.9.16 (29th December 2007) - -Summary: -======== - - * bug fix in stlsoft::printf_traits - * bug fix in winstl::GetTimeFormat_msA/W - * other minor bug fixes - * minor feature enhancements & refactoring - -Additions: -========== - - STLSoft: - -------- - - + new stlsoft::integral_printf_traits traits class, which fixes the bug - in stlsoft::printf_traits whereby integers used the %ld and %lu - - + now uses new symbols _STLSOFT_SIZEOF_CHAR, _STLSOFT_SIZEOF_SHORT, - _STLSOFT_SIZEOF_INT, _STLSOFT_SIZEOF_LONG and _STLSOFT_SIZEOF_LONG_LONG - - - PlatformSTL: - ------------ - - + added symbol PLATFORMSTL_OS_IS_WIN64 - - + added symbol PLATFORMSTL_OS_IS_WINDOWS - - -Fixes: -====== - - STLSoft: - -------- - - ~ refactoring of stlsoft::auto_destructor::get mutating/non-mutating - overloads - ~ refactoring of stlsoft::auto_array_destructor::get mutating/non-mutating - overloads - ~ refactoring of stlsoft::proxy_ptr::get mutating/non-mutating - overloads - ~ refactoring of stlsoft::ref_ptr::get mutating/non-mutating - overloads - ~ refactoring of stlsoft::shared_ptr::get mutating/non-mutating - overloads - - COMSTL: - ------- - - ~ refactoring of comstl::interface_ptr::get mutating/non-mutating overloads - - PlatformSTL: - ------------ - - ~ platformstl/synch/tss_index.hpp now properly includes the tss_exception - symbol into the platformstl namespace - - WinSTL: - ------- - - ~ bug fix to winstl::GetTimeFormat_msA/W, whereby 24hr format was always - used, regardless of the locale settings - - -============================================================================ - -Changes for 1.9.15 (24th December 2007) - -Summary: -======== - - * minor bug fix for C compilation - -Fixes: -====== - - STLSoft: - -------- - - ~ previous versions of STLSoft defined STLSOFT_CF_EXCEPTION_SUPPORT and - STLSOFT_CF_RTTI_SUPPORT for some compilers in C compilation, notably GCC. - This was causing problems with the (soon-to-be-released) xTests and - flecxx libraries, and is now fixed. - - -============================================================================ - -Changes for 1.9.14 (23rd December 2007) - -Summary: -======== - - * updated stlsoft version (_STLSOFT_VER) missing in 1.9.13 - - -============================================================================ - -Changes for 1.9.13 (20th December 2007) - -Summary: -======== - - * features enhancements to fixed array classes - -Additions: -========== - - STLSoft: - -------- - - + stlsoft::fixed_array_?d::get_allocator() method for all 4 classes - - + stlsoft::fixed_array_?d::fixed_array_?d() overloads taking allocator - - -============================================================================ - -Changes for 1.9.12 (19th December 2007) - -Summary: -======== - - * features enhancements to fixed array classes - -Additions: -========== - - STLSoft: - -------- - - + stlsoft::fixed_array_?d::data() (mutating form) methods for all 4 classes - - + stlsoft::fixed_array_?d::swap() methods for all 4 classes - -Fixes: -====== - - STLSoft: - -------- - - ~ fix to stlsoft::stl_collection_tag, to derive it from - stlsoft::collection_tag - - -============================================================================ - -Changes for 1.9.11 (17th December 2007) - -Summary: -======== - - * minor modifications and bug-fixes - -Changes: -======== - - STLSoft: - -------- - - + discrimination of RTTI support, in the form of the symbol - STLSOFT_CF_RTTI_SUPPORT, which will be defined when support is enabled. - This is required for the new xTests project (which will be released in - January 2008) - - + stlsoft::cmdargs class has significant breaking changes: - + added has_option() method - + added has_value() method - ~ removed m_ from public fields of cmdargs::option class - ~ removed m_ from public fields of cmdargs::value class - ~ renamed m_value member of cmdargs::value to name - - ~ stlsoft::must_init has had numerous fixes - - ~ fixed bug, that manifests in widestring compilation, in - stlsoft/filesystem/searchspec_sequence.hpp - - -============================================================================ - -Changes for 1.9.10 (10th December 2007) - -Summary: -======== - - * bug fix for recls (http://recls.org/) - * minor feature enhancements - -Changes: -======== - - STLSoft: - -------- - - + basic_static_string::pop_back() - - ~ fixed bug, that manifests in widestring compilation, in - stlsoft/filesystem/searchspec_sequence.hpp - - MFCSTL: - ------- - - + mfcstl/mfcstl.hpp now #includes atlstr.h if _MFC_VER >= 0x0700 - - PlatformSTL: - ------------ - - ~ platformstl::environment_variable_traits now works on Win32 when - synthesising UNIX - - -============================================================================ - -Changes for 1.9.9 (19th November 2007) - -Summary: -======== - - * shim fixes in UNIXSTL - -Changes: -======== - - UNIXSTL: - ------- - - ~ added all missing string access shims to - unixstl/filesystem/current_directory_scope.hpp - - ~ added all missing string access shims to - unixstl/filesystem/file_path_buffer.hpp - - -============================================================================ - -Changes for 1.9.8 (18th November 2007) - -Summary: -======== - - * compatibility with Borland C/C++ 5.82 (Turbo C++); now supports VOLE - -Changes: -======== - - COMSTL: - ------- - - ~ comstl/collections/collection_sequence.hpp has a #define hack, to make - retrievalQuanta a pre-processor replacement rather than a member constant, - which avoids the erroneous compiler error with Borland C/C++ 5.82 - - ~ comstl/collections/enumerator_sequence.hpp has a #define hack, to make - retrievalQuanta a pre-processor replacement rather than a member constant, - which avoids the erroneous compiler error with Borland C/C++ 5.82 - - WinSTL: - ------- - - ~ winstl/filesystem/filesystem_traits.hpp - only uses truncation testing in - 64-bit compilations - - ~ winstl/system/system_traits.hpp - only uses truncation testing in 64-bit - compilations - - -============================================================================ - -Changes for 1.9.7 (16th November 2007) - -Additions: -========== - - general: - -------- - - + now supports x64 Windows 64-bit compilation (though it may not be - perfect) - - + now supports Borland Turbo C++ v5.82, though it is known not to be - perfect - - STLSoft: - -------- - - + the POD algorithms - stlsoft/algorithms/pod.hpp - can now be forced to - accept non-POD types. The symbols, and the algorithms they apply to, are: - - _STLSOFT_POD_COPY_ALLOW_NON_POD - stlsoft::pod_copy() - _STLSOFT_POD_COPY_N_ALLOW_NON_POD - stlsoft::pod_copy_n() - _STLSOFT_POD_MOVE_ALLOW_NON_POD - stlsoft::pod_move() - _STLSOFT_POD_MOVE_N_ALLOW_NON_POD - stlsoft::pod_move_n() - _STLSOFT_POD_FILL_N_ALLOW_NON_POD - stlsoft::pod_fill_n() - - This can be appropriate when, say, dealing with a struct that has - some simple constructors. - - + stlsoft::get_FILE_ptr shim - - UNIXSTL: - -------- - - + unixstl::memory_mapped_file now allows for specifying offset and - request size. - - WinSTL: - ------- - - + winstl::to_DATE conversion shim, with overloads for DATE, UDATE, - FILETIME, and SYSTEMTIME - - PlatformSTL: - ------------ - - + platformstl::file_lines class - provides efficient representation of all - the files in a text file; defaults to using string views for all the - lines, so there's at most one copy operation from the memory-mapped file - used to perform the initial load. - -Fixes: -====== - - general: - -------- - - ~ introduction of ss_typename_type_ret_k pseudo-keyword, to cope with - different compilers' behaviour in the qualification of return types that - are member types in function templates - - STLSoft - ------- - - ~ fix to stlsoft::unsorted_map for Borland - - ~ stlsoft/conversion/truncation_cast.hpp now includes rather than - , which was wrong. - - ~ stlsoft/string/trim_functions.hpp was fixed to work correctly with both - string views and bona fide string types - - COMSTL - ------ - - + comstl/error/error_info.hpp includes not for bad_alloc - - ~ fixed inclusion bug in comstl/error/excepinfo_functions.h - - WinSTL - ------ - - ~ changes to winstl::filesystem_traits to be compatible with 64-bit - compilation - - ~ changes to winstl::system_traits to be compatible with 64-bit - compilation - - ~ winstl::basic_path has minor fix to suppress compilation warning - - ~ winstl::basic_reg_value_sequence has minor fix to suppress compilation - warning for exceptions/unused-variables/missing-return-values - - ~ preparation of change from get_hwnd() to get_HWND() shim, by changing - file names and documentation comments - - ~ winstl/synch/atomic_functions.h adjusted for 64-bit compilation; further - work will be required - -Diffs: -====== - - root-dir-1: H:\3Pty\STLSoft\stlsoft-1.9.6 - root-dir-2: H:\3Pty\STLSoft\stlsoft-1.9.7 -Items unchanged from H:\3Pty\STLSoft\stlsoft-1.9.6 to H:\3Pty\STLSoft\stlsoft-1.9.7: 821 -Items changed from H:\3Pty\STLSoft\stlsoft-1.9.6 to H:\3Pty\STLSoft\stlsoft-1.9.7: 117 -Items changed (major) from H:\3Pty\STLSoft\stlsoft-1.9.6 to H:\3Pty\STLSoft\stlsoft-1.9.7: 0 -Items changed (minor) from H:\3Pty\STLSoft\stlsoft-1.9.6 to H:\3Pty\STLSoft\stlsoft-1.9.7: 20 - include\stlsoft\algorithms\pod.hpp 3.4.4.86 => 3.5.1.87 ; 12th March 2007 => 6th November 2007 - include\stlsoft\internal\_undefs.h 2.5.1.23 => 2.6.1.24 ; 2nd August 2007 => 6th November 2007 - include\stlsoft\internal\cccap\borland.h 3.12.2.70 => 3.13.1.71 ; 17th August 2007 => 6th November 2007 - include\stlsoft\internal\cccap\como.h 3.11.1.58 => 3.12.1.59 ; 4th August 2007 => 6th November 2007 - include\stlsoft\internal\cccap\dmc.h 3.13.2.83 => 3.14.1.84 ; 17th August 2007 => 6th November 2007 - include\stlsoft\internal\cccap\gcc.h 3.12.2.66 => 3.13.1.67 ; 17th August 2007 => 6th November 2007 - include\stlsoft\internal\cccap\intel.h 3.13.2.69 => 3.14.1.70 ; 17th August 2007 => 6th November 2007 - include\stlsoft\internal\cccap\mwerks.h 3.12.2.62 => 3.13.1.63 ; 17th August 2007 => 6th November 2007 - include\stlsoft\internal\cccap\unknown.h 3.11.1.56 => 3.12.1.57 ; 4th August 2007 => 6th November 2007 - include\stlsoft\internal\cccap\vectorc.h 3.12.2.50 => 3.13.1.51 ; 17th August 2007 => 6th November 2007 - include\stlsoft\internal\cccap\watcom.h 3.12.2.67 => 3.13.1.68 ; 17th August 2007 => 6th November 2007 - include\stlsoft\memory\allocator_features.hpp 5.0.2.37 => 5.1.1.38 ; 10th January 2007 => 6th November 2007 - include\stlsoft\stlsoft.h 3.10.2.312 => 3.11.1.314 ; 5th August 2007 => 6th November 2007 - include\stlsoft\util\std\iterator_helper.hpp 5.0.2.101 => 5.1.1.102 ; 12th March 2007 => 6th November 2007 - include\stlsoft\util\std\library_discriminator.hpp 4.2.3.95 => 4.4.1.97 ; 13th January 2007 => 6th November 2007 - include\unixstl\filesystem\memory_mapped_file.hpp 4.1.7.79 => 4.3.1.81 ; 22nd March 2007 => 25th September 2007 - include\winstl\filesystem\filesystem_traits.hpp 4.4.2.104 => 4.5.1.105 ; 12th March 2007 => 9th November 2007 - include\winstl\filesystem\memory_mapped_file.hpp 4.4.1.78 => 4.5.1.79 ; 17th August 2007 => 25th October 2007 - include\winstl\synch\atomic_functions.h 4.2.2.196 => 4.3.1.198 ; 12th March 2007 => 6th November 2007 - include\winstl\system\system_traits.hpp 5.1.3.102 => 5.2.1.104 ; 4th August 2007 => 9th November 2007 -Items changed (revision) from H:\3Pty\STLSoft\stlsoft-1.9.6 to H:\3Pty\STLSoft\stlsoft-1.9.7: 69 - include\atlstl\automation\enumerators.hpp 4.0.2.58 => 4.0.3.59 ; 2nd June 2007 => 6th November 2007 - include\comstl\collections\safearray_sequence.hpp 4.1.7.56 => 4.1.8.57 ; 22nd March 2007 => 6th November 2007 - include\comstl\error\errorinfo_desc.hpp 0.5.6.29 => 0.5.7.30 ; 8th May 2007 => 14th October 2007 - include\comstl\error\excepinfo_functions.h 1.0.0.1 => 1.0.2.2 ; 11th August 2007 => 6th November 2007 - include\comstl\smartptr\interface_ptr.hpp 7.1.1.491 => 7.1.2.492 ; 22nd March 2007 => 6th November 2007 - include\comstl\util\acyclic_connector.hpp 1.2.5.17 => 1.2.6.18 ; 22nd March 2007 => 6th November 2007 - include\inetstl\filesystem\findfile_sequence.hpp 3.0.6.129 => 3.0.7.130 ; 22nd March 2007 => 6th November 2007 - include\inetstl\network\connection.hpp 5.1.1.64 => 5.1.2.65 ; 7th April 2007 => 6th November 2007 - include\inetstl\network\session.hpp 5.1.1.58 => 5.1.2.59 ; 7th April 2007 => 6th November 2007 - include\mfcstl\collections\cstring_adaptors.hpp 4.0.10.83 => 4.0.11.84 ; 19th August 2007 => 6th November 2007 - include\platformstl\filesystem\cwd_stack.hpp 2.1.2.21 => 2.1.3.22 ; 12th March 2007 => 6th November 2007 - include\platformstl\synch\atomic_functions.h 2.2.1.22 => 2.2.3.23 ; 12th April 2007 => 6th November 2007 - include\rangelib\algorithms.hpp 2.3.2.41 => 2.3.3.42 ; 12th April 2007 => 6th November 2007 - include\rangelib\salgorithms.hpp 1.1.2.15 => 1.1.3.16 ; 12th March 2007 => 6th November 2007 - include\stlsoft\collections\associative_key_sequence.hpp 2.0.2.20 => 2.0.3.21 ; 12th March 2007 => 6th November 2007 - include\stlsoft\collections\associative_value_sequence.hpp 2.0.2.21 => 2.0.3.22 ; 12th March 2007 => 6th November 2007 - include\stlsoft\collections\functions.hpp 2.0.1.31 => 2.0.2.32 ; 12th March 2007 => 6th November 2007 - include\stlsoft\containers\fixed_array.hpp 4.5.2.179 => 4.5.3.180 ; 14th April 2007 => 6th November 2007 - include\stlsoft\containers\pod_vector.hpp 4.1.7.69 => 4.1.8.70 ; 22nd March 2007 => 6th November 2007 - include\stlsoft\containers\static_array.hpp 4.3.5.181 => 4.3.6.182 ; 8th May 2007 => 6th November 2007 - include\stlsoft\containers\unsorted_map.hpp 1.1.5.12 => 1.1.6.13 ; 12th March 2007 => 6th November 2007 - include\stlsoft\conversion\truncation_cast.hpp 1.0.1.38 => 1.0.2.39 ; 10th January 2007 => 7th November 2007 - include\stlsoft\error\error_desc.hpp 1.0.3.12 => 1.0.4.13 ; 22nd March 2007 => 6th November 2007 - include\stlsoft\internal\cccap\msvc.h 3.14.1.95 => 3.14.2.96 ; 4th August 2007 => 6th November 2007 - include\stlsoft\iterators\index_iterator.hpp 1.3.4.22 => 1.3.5.23 ; 22nd March 2007 => 6th November 2007 - include\stlsoft\iterators\member_selector_iterator.hpp 2.4.4.50 => 2.4.5.51 ; 22nd March 2007 => 6th November 2007 - include\stlsoft\iterators\transform_iterator.hpp 2.0.15.114 => 2.0.16.115 ; 22nd March 2007 => 6th November 2007 - include\stlsoft\smartptr\scoped_handle.hpp 5.4.1.662 => 5.4.2.664 ; 4th August 2007 => 6th November 2007 - include\stlsoft\std\cstring.hpp 1.5.2.28 => 1.5.3.29 ; 12th March 2007 => 6th November 2007 - include\stlsoft\string\cstring_maker.hpp 4.0.1.43 => 4.0.2.44 ; 12th March 2007 => 6th November 2007 - include\stlsoft\string\simple_string.hpp 4.0.10.236 => 4.0.11.237 ; 22nd March 2007 => 6th November 2007 - include\stlsoft\string\special_string_instance.hpp 1.2.3.15 => 1.2.4.16 ; 22nd March 2007 => 6th November 2007 - include\stlsoft\string\static_string.hpp 4.1.6.188 => 4.1.8.190 ; 22nd March 2007 => 6th November 2007 - include\stlsoft\string\string_view.hpp 3.2.1.84 => 3.2.2.85 ; 19th August 2007 => 6th November 2007 - include\stlsoft\string\trim_functions.hpp 2.1.4.32 => 2.1.5.33 ; 19th August 2007 => 6th November 2007 - include\stlsoft\string\view_slice_functions.hpp 2.1.2.21 => 2.1.3.22 ; 12th March 2007 => 6th November 2007 - include\stlsoft\util\limit_traits.h 4.2.3.55 => 4.2.4.56 ; 20th January 2007 => 20th January 2007 - include\unixstl\filesystem\current_directory_scope.hpp 5.1.2.112 => 5.1.3.113 ; 22nd March 2007 => 6th November 2007 - include\unixstl\filesystem\path.hpp 6.5.2.224 => 6.5.3.225 ; 22nd March 2007 => 6th November 2007 - include\unixstl\unixstl.h 3.3.6.76 => 3.3.7.77 ; 12th March 2007 => 8th November 2007 - include\winstl\controls\dialog_functionals.hpp 1.0.1.5 => 1.0.2.6 ; 22nd March 2007 => 6th November 2007 - include\winstl\controls\edit_line_sequence.hpp 1.0.4.10 => 1.0.5.11 ; 12th March 2007 => 6th November 2007 - include\winstl\controls\functionals.hpp 4.1.3.72 => 4.1.4.74 ; 22nd March 2007 => 6th November 2007 - include\winstl\controls\treeview_sequence.hpp 4.0.4.67 => 4.0.5.68 ; 22nd March 2007 => 6th November 2007 - include\winstl\error\error_desc.hpp 4.4.1.72 => 4.4.2.73 ; 22nd March 2007 => 6th November 2007 - include\winstl\filesystem\current_directory_scope.hpp 5.2.3.119 => 5.2.4.120 ; 22nd March 2007 => 6th November 2007 - include\winstl\filesystem\findfile_sequence.hpp 4.6.2.207 => 4.6.3.208 ; 22nd March 2007 => 6th November 2007 - include\winstl\filesystem\findvolume_sequence.hpp 4.3.3.107 => 4.3.4.108 ; 22nd March 2007 => 6th November 2007 - include\winstl\filesystem\path.hpp 6.6.1.235 => 6.6.3.237 ; 12th August 2007 => 6th November 2007 - include\winstl\functional\message.hpp 4.0.1.35 => 4.0.2.36 ; 22nd March 2007 => 6th November 2007 - include\winstl\functional\window.hpp 4.0.1.37 => 4.0.2.38 ; 22nd March 2007 => 6th November 2007 - include\winstl\registry\reg_key.hpp 3.7.2.119 => 3.7.4.121 ; 4th August 2007 => 6th November 2007 - include\winstl\registry\reg_key_sequence.hpp 3.7.1.125 => 3.7.2.126 ; 7th April 2007 => 6th November 2007 - include\winstl\registry\reg_traits.hpp 3.2.5.66 => 3.2.6.67 ; 12th March 2007 => 6th November 2007 - include\winstl\registry\reg_value.hpp 3.1.1.90 => 3.1.2.92 ; 22nd March 2007 => 6th November 2007 - include\winstl\registry\reg_value_sequence.hpp 3.5.1.117 => 3.5.5.121 ; 7th April 2007 => 10th November 2007 - include\winstl\shell\drophandle_sequence.hpp 4.0.5.87 => 4.0.6.88 ; 22nd March 2007 => 6th November 2007 - include\winstl\system\environment_sequence.hpp 4.0.3.75 => 4.0.4.76 ; 12th March 2007 => 6th November 2007 - include\winstl\system\searchpath_sequence.hpp 4.1.3.88 => 4.1.4.89 ; 12th March 2007 => 6th November 2007 - include\winstl\window\functions.h 4.0.4.59 => 4.0.7.62 ; 29th July 2007 => 6th November 2007 - include\winstl\window\window_enable_scope.hpp 4.0.1.86 => 4.0.2.87 ; 12th March 2007 => 6th November 2007 - include\winstl\window\window_icon_scope.hpp 4.0.1.46 => 4.0.2.47 ; 12th March 2007 => 6th November 2007 - include\winstl\window\window_redraw_scope.hpp 5.0.1.72 => 5.0.2.73 ; 12th March 2007 => 6th November 2007 - include\winstl\window\window_text_scope.hpp 4.0.1.36 => 4.0.2.37 ; 12th March 2007 => 6th November 2007 - include\winstl\window\window_update_scope.hpp 5.0.1.72 => 5.0.2.73 ; 12th March 2007 => 6th November 2007 - include\winstl\window\window_visible_scope.hpp 4.0.1.35 => 4.0.2.36 ; 12th March 2007 => 6th November 2007 - include\winstl\window\zorder_iterator.hpp 2.0.2.36 => 2.0.3.37 ; 8th April 2007 => 6th November 2007 - include\winstl\window\zorder_sequences.hpp 2.0.2.13 => 2.0.3.14 ; 22nd March 2007 => 6th November 2007 - include\winstl\winstl.h 3.6.3.162 => 3.6.4.163 ; 12th March 2007 => 8th November 2007 -Items changed (edit) from H:\3Pty\STLSoft\stlsoft-1.9.6 to H:\3Pty\STLSoft\stlsoft-1.9.7: 20 - include\acestl\shims\logical\is_empty\message_queue.hpp 3.0.4.25 => 3.0.4.27 ; 12th March 2007 => 6th November 2007 - include\acestl\shims\logical\is_empty\string_base.hpp 2.0.2.8 => 2.0.2.10 ; 12th March 2007 => 6th November 2007 - include\comstl\util\variant.hpp 2.2.2.146 => 2.2.2.148 ; 29th March 2007 => 6th November 2007 - include\mfcstl\collections\carray_swap.hpp 2.0.1.9 => 2.0.1.10 ; 12th March 2007 => 8th November 2007 - include\mfcstl\collections\clist_swap.hpp 1.0.1.5 => 1.0.1.6 ; 12th March 2007 => 8th November 2007 - include\stlsoft\iterators\c_str_inserter.hpp 2.0.1.26 => 2.0.1.27 ; 22nd March 2007 => 8th November 2007 - include\stlsoft\properties\field_properties.hpp 4.0.2.27 => 4.0.2.28 ; 22nd March 2007 => 6th November 2007 - include\stlsoft\shims\conversion\to_uint64\std\fundamental.hpp 1.0.1.1 => 1.0.1.2 ; 4th July 2007 => 6th November 2007 - include\stlsoft\string\string_traits.hpp 4.0.3.74 => 4.0.3.75 ; 19th August 2007 => 17th October 2007 - include\unittest\unittest.hpp 4.2.1.35 => 4.2.1.36 ; 22nd March 2007 => 6th November 2007 - include\unixstl\synch\process_mutex.hpp 4.6.1.68 => 4.6.1.69 ; 8th April 2007 => 6th November 2007 - include\unixstl\synch\semaphore.hpp 1.2.1.17 => 1.2.1.18 ; 8th April 2007 => 6th November 2007 - include\unixstl\synch\thread_mutex.hpp 4.3.1.51 => 4.3.1.52 ; 8th April 2007 => 6th November 2007 - include\winstl\controls\commctrl_functionals.hpp 4.1.3.70 => 4.1.3.71 ; 12th March 2007 => 6th November 2007 - include\winstl\shims\conversion\to_FILETIME\DATE.hpp 1.0.1.2 => 1.0.1.3 ; 12th March 2007 => 6th November 2007 - include\winstl\shims\conversion\to_FILETIME\UDATE.hpp 1.0.3.4 => 1.0.3.5 ; 12th March 2007 => 6th November 2007 - include\winstl\shims\conversion\to_SYSTEMTIME\DATE.hpp 1.0.3.4 => 1.0.3.5 ; 12th March 2007 => 6th November 2007 - include\winstl\shims\conversion\to_uint64\WIN32_FIND_DATA.hpp 1.0.1.1 => 1.0.1.2 ; 4th July 2007 => 6th November 2007 - include\winstl\system\console_functions.h 2.1.2.15 => 2.1.2.16 ; 14th January 2007 => 26th September 2007 - include\winstl\system\version_info.hpp 5.2.5.117 => 5.2.5.118 ; 22nd March 2007 => 10th October 2007 -Items changed (unversioned) from H:\3Pty\STLSoft\stlsoft-1.9.6 to H:\3Pty\STLSoft\stlsoft-1.9.7: 8 - include\stlsoft\containers\unittest\fixed_array_unittest_.h ... => ... ; => - include\stlsoft\conversion\unittest\truncation_test_unittest_.h ... => ... ; 14th January 2007 => 14th January 2007 - include\stlsoft\properties\unittest\field_properties_unittest_.h ... => ... ; => - include\stlsoft\shims\logical\is_empty\std\unittest\container_unittest_.h ... => ... ; 31st March 2007 => 31st March 2007 - include\stlsoft\smartptr\unittest\scoped_handle_unittest_.h ... => ... ; 4th August 2007 => 4th August 2007 - include\stlsoft\string\unittest\trim_functions_unittest_.h ... => ... ; => - include\winstl\filesystem\unittest\path_unittest_.h ... => ... ; 12th August 2007 => 12th August 2007 - include\winstl\shell\unittest\browse_for_folder_unittest_.h ... => ... ; 14th January 2007 => 14th January 2007 -Items deleted from H:\3Pty\STLSoft\stlsoft-1.9.6: 7 - H:\3Pty\STLSoft\stlsoft-1.9.6\include\atlstl\shims\attribute\get_hwnd.hpp - H:\3Pty\STLSoft\stlsoft-1.9.6\include\atlstl\shims\attribute\unittest\get_hwnd_unittest_.h - H:\3Pty\STLSoft\stlsoft-1.9.6\include\mfcstl\shims\attribute\get_hwnd.hpp - H:\3Pty\STLSoft\stlsoft-1.9.6\include\mfcstl\shims\attribute\unittest\get_hwnd_unittest_.h - H:\3Pty\STLSoft\stlsoft-1.9.6\include\stlsoft\string\string_view_trim_functions.hpp- - H:\3Pty\STLSoft\stlsoft-1.9.6\include\winstl\shims\attribute\get_hwnd.hpp - H:\3Pty\STLSoft\stlsoft-1.9.6\include\winstl\shims\attribute\unittest\get_hwnd_unittest_.h -Items added to H:\3Pty\STLSoft\stlsoft-1.9.7: 20 - H:\3Pty\STLSoft\stlsoft-1.9.7\include\atlstl\shims\attribute\get_HWND.hpp - H:\3Pty\STLSoft\stlsoft-1.9.7\include\atlstl\shims\attribute\unittest\get_HWND_unittest_.h - H:\3Pty\STLSoft\stlsoft-1.9.7\include\mfcstl\shims\attribute\get_HWND.hpp - H:\3Pty\STLSoft\stlsoft-1.9.7\include\mfcstl\shims\attribute\unittest\get_HWND_unittest_.h - H:\3Pty\STLSoft\stlsoft-1.9.7\include\platformstl\filesystem\file_lines.hpp - H:\3Pty\STLSoft\stlsoft-1.9.7\include\stlsoft\shims\attribute\get_FILE_ptr.hpp - H:\3Pty\STLSoft\stlsoft-1.9.7\include\stlsoft\shims\attribute\get_FILE_ptr\std\fundamental.h - H:\3Pty\STLSoft\stlsoft-1.9.7\include\stlsoft\shims\attribute\get_FILE_ptr\std\unittest\fundamental_unittest_.h - H:\3Pty\STLSoft\stlsoft-1.9.7\include\stlsoft\shims\conversion\to_uint64\std\unittest\fundamental_unittest_.h - H:\3Pty\STLSoft\stlsoft-1.9.7\include\winstl\shims\attribute\get_HWND.hpp - H:\3Pty\STLSoft\stlsoft-1.9.7\include\winstl\shims\attribute\unittest\get_HWND_unittest_.h - H:\3Pty\STLSoft\stlsoft-1.9.7\include\winstl\shims\conversion\to_DATE.hpp - H:\3Pty\STLSoft\stlsoft-1.9.7\include\winstl\shims\conversion\to_DATE\DATE.hpp - H:\3Pty\STLSoft\stlsoft-1.9.7\include\winstl\shims\conversion\to_DATE\FILETIME.hpp - H:\3Pty\STLSoft\stlsoft-1.9.7\include\winstl\shims\conversion\to_DATE\SYSTEMTIME.hpp - H:\3Pty\STLSoft\stlsoft-1.9.7\include\winstl\shims\conversion\to_DATE\UDATE.hpp - H:\3Pty\STLSoft\stlsoft-1.9.7\include\winstl\shims\conversion\to_DATE\unittest\DATE_unittest_.h - H:\3Pty\STLSoft\stlsoft-1.9.7\include\winstl\shims\conversion\to_DATE\unittest\FILETIME_unittest_.h - H:\3Pty\STLSoft\stlsoft-1.9.7\include\winstl\shims\conversion\to_DATE\unittest\SYSTEMTIME_unittest_.h - H:\3Pty\STLSoft\stlsoft-1.9.7\include\winstl\shims\conversion\to_DATE\unittest\UDATE_unittest_.h - - -============================================================================ - -Changes for 1.9.6 (25th September 2007) - -Additions: -========== - - COMSTL - ------ - - + rbegin() and rend() for comstl::ccombstr_veneer - - + comstl::EXCEPINFO_free() - - + rbegin() and rend() for comstl::bstr - - STLSoft - ------- - - + front() and back() for stlsoft::auto_buffer (but note: it's still *NOT* - a container!) - - + find() and count() for stlsoft::frequency_map - - WinSTL - ------ - - + winstl::memory_mapped_file now takes offset+range - -Fixes: -====== - - UNIXSTL - ------- - - ~ unixstl::glob_sequence fix in is_valid() (fixes bug seen in Ubuntu 64-bit) - - -============================================================================ - -Changes for 1.9.5 (4th August 2007) - -Additions: -========== - - + STLSOFT_CF_CDECL_SUPPORTED, in anticipation of changes to support 64-bit - (x64) compilation. - - + comstl::bstr::attach() method - -Fixes: -====== - - COMSTL: - ------- - - ~ comstl::bstr::bstr(C const* s, int len) - fixed bug whereby if len is - less than the actual length of s, actual length is used. - - WinSTL: - ------- - - ~ correction to signature of - winstl::basic_reg_key:: template<...> create_key: H& param is now - H const&. - - ~ corrected pre-condition enforcements of - winstl::system_traits::get_environment_variable - winstl::system_traits::get_module_directory - winstl::system_traits::get_module_filename - winstl::system_traits::get_system_directory - winstl::system_traits::get_windows_directory - - -============================================================================ - -Changes for 1.9.4 (2nd August 2007) - -Additions: -========== - - + detection of compiler support for __VA_ARGS__, via the - STLSOFT_CF_SUPPORTS_VARIADIC_MACROS - - -============================================================================ - -Changes for 1.9.3 (29th July 2007) - -Additions: -========== - - + 3 and 4 parameter versions of stlsoft::all_of composite predicate creator - functions - - + 3 and 4 parameter versions of stlsoft::any_of composite predicate creator - functions - - + new shim: stlsoft::to_uint64 conversion shim - * degenerate overload (uint64_t) - * WIN32_FIND_DATA overload - - -============================================================================ - -Changes for 1.9.2 (2nd June 2007) - -Fixes: -====== - - + HICON2LRESULT type converter - + LRESULT2HICON type converter - - + winstl::basic_reg_key::create_key() static method, to create a key - - + new shim: winstl::get_HKEY - - ~ bug fix to operator /=() for winstl::basic_path and unixstl::basic_path - - -============================================================================ - -Changes for 1.9.1, version released with Extended STL, volume 1 (30th April 2007): - -Fixes: -====== - - ~ stlsoft/fixed_array.hpp: function call operator now implemented in terms - of at_unchecked() - - ~ comstl::bstr: bug fix in constructors taking C-string range, where - range is larger than the string. - - ~ rangelib/algorithms.hpp: bug fix in r_equal(), r_exists_if(), r_find_if() - - -============================================================================ - -Changes for 1.9.1 beta 48 (12th April 2007): - - -Additions: -========== - - + resource_type (and const_resource_type, for some) member type for: - stlsoft::ptr_proxy - stlsoft::ref_ptr - stlsoft::shared_ptr - comstl::bstr - comstl::guid - inetstl::connection - inetstl::session - unixstl::process_mutex - unixstl::semaphore - unixstl::thread_mutex - winstl::module - winstl::reg_key - winstl::reg_key_sequence - winstl::reg_value_sequence - winstl::event - winstl::process_mutex - winstl::semaphore - - + added operator () to fixed arrays (stlsoft/container/fixed_array.hpp) - (as requested/persuaded by Neal Becker) - - -Fixes: -====== - - ~ fixed bug in rangelib::r_exists() (Thanks to Yakov Markovitch) - - -============================================================================ - -Changes for 1.9.1 beta 47 (6th April 2007): - -Additions: -========== - - + stlsoft::any_of() and stlsoft::all_of() composite predicate creator - functions - - + binary forms of stlsoft::ptr_fun and stlsoft::ptr_fun_void - - + element_type and resource_type member types for stlsoft::ref_ptr - - + atlstl::generic_automation_collection now supports Count property - - + comstl::com_SUCCEEDED and comstl::com_S_OK predicate function adaptors - (comstl/functional/com_predicate_adaptors.hpp) - - + comstl::bstr now has additional members: - + ctor: bstr(bstr const& rhs, size_type pos, size_type len); - + assign(const_iterator from, const_iterator to); - + detach() - + append() overloads, and operator +=() overloads - + subscript operator - + begin()/end() methods. - -Changes: -======== - - ~ acestl::custom_event_handler::has_custom_event(long) renamed to - acestl::custom_event_handler::has_custom_events(long). The old name is - retained for backwards compatibility, but is deprecated. - - ~ comstl::variant::QueryInterfaceValue() fixed - - ~ inetstl::basic_findfile_sequence bug with VC++ 8 now fixed - - ~ winstl::basic_findfile_sequence bug with VC++ 8 now fixed - - ~ winstl::basic_findvolume_sequence bug with VC++ 8 now fixed - - -============================================================================ - -Changes for 1.9.1 beta 46 (13th March 2007): - -Changes: -======== - - ~ wholesale lexical changes (e.g. "char const *x" => "char const* x") - - -============================================================================ - -Changes for 1.9.1 beta 45 (12th March 2007): - -Additions: -========== - - + comstl::collection_sequence: - + const_iterator and const_pointer member types - - + comstl::enumerator_sequence: - + const_iterator and const_pointer member types - - + comstl::variant: - + constructor taking a variant and a VARTYPE to which to change on copy - - + unixstl::basic_path: - + empty() - + has_sep() - - + winstl::basic_path: - + empty() - + has_sep() - - + winstl::basic_findfile_sequence: - + relativePath flag, which causes entries to have a relative path - -Changes: -======== - - ~ platformstl::readdir_sequence: - ~ fixed element reference category (is By-Value Temporary) - ~ correctly returns entry full path only if fullPath flag is specified, - rather than (absolutePath | fullPath) - - ~ winstl::reg_key: - ~ can now copy an empty instance (previously threw an exception) - - ~ winstl::reg_value: - ~ can now copy an empty instance (previously threw an exception) - - -============================================================================ - -Changes for 1.9.1 beta 44 (22nd February 2007): - -General: -======== - - ~ distribution is now rooted under stlsoft-X.Y, e.g. stlsoft-1.9.1-beta44 - -Additions: -========== - - + stlsoft::scoped_handle thief-constructor, allowing for re-assignment - of resource and implicit transfer of release function, as in: - - { - stlsoft::scoped_handle sh1(::malloc(10), ::free); - - if(some-condition) - { - stlsoft::scoped_handle sh2(&sh1); - - } // if "some-condition", memory is freed here - - } // if "!some-condition", memory is freed here - - + comstl::bstr::swap() - - + inetstl::basic_ftpdir_sequence now allows copy construction and copy - assignment - - + mfcstl::CList_adaptor_base::push_back() - -Changes: -======== - - ~ stlsoft::scoped_handle now requires the *address of* the resource - when used with an indirect release function. For example, given the - following resource API: - - int alloc_resource(); - void release_resource_indirect(int *); - - the following code used to be valid: - - stlsoft::scoped_handle sh(alloc_resource(), release_resource_indirect); - - This is now not allowed. It must now be: - - int h = alloc_resource(); - stlsoft::scoped_handle sh(&h, release_resource_indirect); - -Fixes: -====== - - ~ workaround for GCC 3.x, to ensure that stlsoft::fixed_array_?d templates - now correctly copy-construct - - ~ mfcstl::CList_adaptor_base iterator copying corrected - - ~ platformstl::readdir_sequence bug fix for Borland/DMC++ - - ~ rangelib::invalid_integral_range_policy - some general tidying up - - ~ unixstl::glob_sequence now uses stlsoft::scoped_handle, to - simplify implementation - - ~ winstl::basic_findfile_sequence now uses stlsoft::scoped_handle, to - simplify implementation - -Removals: -========= - - -============================================================================ - -Changes for 1.9.1 beta 43 (22nd January 2007): - -Additions: -========== - - + comstl::co_create_instance() overloads now have a third, defaulted, - member, for creation context. This is required for the new VOLE project, - which will be released tomorrow. - - + mfcstl::CArray_cadaptor and mfcstl::CArray_iadaptor now support <, <=, >, - and >= comparison, in addition to ==, != - - + string access shims for UDATE - - + winstl::to_FILETIME support for DATE and UDATE - - + winstl::to_SYSTEMTIME support for DATE and UDATE - -Changes: -======== - - ~ stlsoft::get_ptr overload for std::auto_ptr slightly modified - - ~ winstl/shims/access/string.hpp now includes winstl/shims/access/string/time.hpp - - -============================================================================ - -Changes for 1.9.1 beta 42 (15th January 2007): - -Changes: -======== - - ~ refactored atomic integer support on UNIX: - - Now only supports if for Mac OS-X, Win32 (when emulated, of course), - and if UNIXSTL_FORCE_ATOMIC_INTEGER_OPERATIONS is defined, allowing - the user to decide for themselves whether or not to use (non-portable) - facilities such as asm/atomic.h - + unixstl/synch/util/features.h - - -============================================================================ - -Changes for 1.9.1 beta 41 (14th January 2007): - -Changes: -======== - - ~ refactored sized-integer detection: - - The symbols - STLSOFT_CF_8BIT_INT_EXTENDED_TYPE_IS_DISTINCT - STLSOFT_CF_16BIT_INT_EXTENDED_TYPE_IS_DISTINCT - STLSOFT_CF_32BIT_INT_EXTENDED_TYPE_IS_DISTINCT - are removed. Instead use - STLSOFT_CF_CHAR_DISTINCT_INT_TYPE - STLSOFT_CF_SHORT_DISTINCT_INT_TYPE - STLSOFT_CF_INT_DISTINCT_INT_TYPE - ~ The symbols - STLSOFT_CF_INT_DISTINCT_TYPE - STLSOFT_CF_LONG_DISTINCT_TYPE - are deprecated. Instead use - STLSOFT_CF_INT_DISTINCT_INT_TYPE - STLSOFT_CF_LONG_DISTINCT_INT_TYPE - + The following symbols are added (and propagated through the codebase): - STLSOFT_CF_CHAR_DISTINCT_INT_TYPE - STLSOFT_CF_SHORT_DISTINCT_INT_TYPE - STLSOFT_CF_INT_DISTINCT_INT_TYPE - STLSOFT_CF_LONG_DISTINCT_INT_TYPE - STLSOFT_CF_LONG_LONG_DISTINCT_INT_TYPE - - ~ A few last workarounds to ensure complete build/run of the - unit-tests with DMC++ - -Additions: -========== - - + C compilation included in Unit-test builds - - ~ ensuring that all .h files are C-compilation compatible - - + stlsoft::limit_traits specialisation - - + stlsoft::sign_traits and specialisations - - + winstl::get_kernel_handle attribute shim overloads for - winstl::event, winstl::process_mutex and winstl::semaphore - - + winstl::get_kernel_handle attribute shim overload for - MFC types (in mfcstl/shims/attribute/get_kernel_handle.hpp) - - ~ winstl/time/format_functions.h => winstl/time/format_functions.hpp - -Removals: -========= - - - removed (almost) all of the previously deprecated __STLSOFT* symbols, - including the following: - __STLSOFT_COMPILER_IS_BORLAND - __STLSOFT_COMPILER_IS_COMO - __STLSOFT_COMPILER_IS_DMC - __STLSOFT_COMPILER_IS_INTEL - __STLSOFT_COMPILER_IS_GCC - __STLSOFT_COMPILER_IS_MSVC - __STLSOFT_COMPILER_IS_MWERKS - __STLSOFT_COMPILER_IS_VECTORC - __STLSOFT_COMPILER_IS_WATCOM - __STLSOFT_COMPILER_IS_UNKNOWN - __STLSOFT_COMPILER_LABEL_STRING - __STLSOFT_COMPILER_VERSION_STRING - __STLSOFT_DOCUMENTATION_SKIP_SECTION - __STLSOFT_CF_STATIC_ASSERT_SUPPORT - __STLSOFT_CF_EXCEPTION_SUPPORT - __STLSOFT_CF_FUNCTION_SIGNATURE_FULL_ARG_QUALIFICATION_REQUIRED - __STLSOFT_CF_NAMESPACE_SUPPORT - __STLSOFT_CF_TEMPLATE_SUPPORT - __STLSOFT_CF_EXCEPTION_SIGNATURE_SUPPORT - __STLSOFT_CF_THROW_BAD_ALLOC - __STLSOFT_CF_NOTHROW_BAD_ALLOC - __STLSOFT_CF_TEMPLATE_CLASS_DEFAULT_FUNDAMENTAL_ARGUMENT_SUPPORT - __STLSOFT_CF_TEMPLATE_CLASS_DEFAULT_CLASS_ARGUMENT_SUPPORT - __STLSOFT_CF_MEMBER_TEMPLATE_FUNCTION_SUPPORT - __STLSOFT_CF_MEMBER_TEMPLATE_CTOR_SUPPORT - __STLSOFT_CF_MEMBER_TEMPLATE_RANGE_METHOD_SUPPORT - __STLSOFT_CF_MEMBER_TEMPLATE_CLASS_SUPPORT - __STLSOFT_CF_TEMPLATE_SPECIALISATION_SYNTAX - __STLSOFT_CF_TEMPLATE_PARTIAL_SPECIALISATION_SUPPORT - __STLSOFT_CF_TEMPLATE_OUTOFCLASSFN_QUALIFIED_TYPE_SUPPORT - __STLSOFT_CF_std_NAMESPACE - __STLSOFT_CF_std_char_traits_AVAILABLE - __STLSOFT_CF_ALLOCATOR_ALLOCATE_HAS_HINT - __STLSOFT_CF_ALLOCATOR_DEALLOCATE_HAS_OBJECTCOUNT - __STLSOFT_CF_BIDIRECTIONAL_ITERATOR_SUPPORT - __STLSOFT_CF_EXPLICIT_KEYWORD_SUPPORT - __STLSOFT_CF_MUTABLE_KEYWORD_SUPPORT - __STLSOFT_CF_TYPENAME_PARAM_KEYWORD_SUPPORT - __STLSOFT_CF_TYPENAME_TYPE_KEYWORD_SUPPORT - __STLSOFT_CF_TYPENAME_TYPE_DEF_KEYWORD_SUPPORT - __STLSOFT_CF_TYPENAME_TYPE_MIL_KEYWORD_SUPPORT - __STLSOFT_CF_MOVE_CONSTRUCTOR_SUPPORT - __STLSOFT_CF_KOENIG_LOOKUP_SUPPORT - __STLSOFT_CF_TEMPLATE_TEMPLATE_SUPPORT - __STLSOFT_CF_STATIC_ARRAY_SIZE_DETERMINATION_SUPPORT - __STLSOFT_CF_VENEER_SUPPORT - __STLSOFT_CF_TEMPLATE_SHIMS_NOT_SUPPORTED - __STLSOFT_CF_NEGATIVE_MODULUS_POSITIVE_GIVES_NEGATIVE_RESULT - +## 1.11.1-alpha8 - 9th July 2024 +* Added `platformstl::get_home_directory()` and related functions; +* GCC compatibility improvements; +* CMake improvements; +* Boilerplate file improvements; +* More examples and test programs; -============================================================================ -Changes for 1.9.1 beta 40 (6th January 2007): +## 1.11.1-alpha7 - 5th May 2024 +* Visual C++ (17) compatibility; +* Windows compatibility for CMake; +* Miscellaneous changes; -Additions: -========== - + stlsoft::format_thousands() grouping function template, e.g. +## 1.11.1-alpha6 - 29th March 2024 - char result[101]; +* added unit-test projects **test.unit.stlsoft.conversion.number.group_functions** and **test.unit.stlsoft.conversion.integer_to_lc_string**; +* partial merge of forthcoming branch 'ss/simple_string-null_object'; - stlsoft::format_thousands(result, STLSOFT_NUM_ELEMENTS(result), "2;3", 987654321); - assert(0 == ::strcmp(result, "9876,54,321")); +## 1.11.1-alpha5 - 29th March 2024 - + stlsoft::truncation_test() function suite; this is necessary to support - the new VOLE library (see http://vole.sourceforge.net/) +* various GCC-11 compatibility fixes; - + stlsoft::truncation_cast() cast function template (implemented in terms - of stlsoft::truncation_test()) -Removals: -========= +## 1.11.1-alpha4 - 18th March 2024 - - all sub-project namespace-specific size_t and ptrdiff_t references are - removed. This fixes conflicts when using using directives (though that's - never recommended for application code). +* `stlsoft::basic_simple_string<>` now has `#equal()`; +* added 'stlsoft::std_chrono_hrc_stopwatch' stopwatch type; +* various performance improvements; -Changes: -======== - ~ stlsoft::must_init now has all built-in operators overloaded, e.g. you - can now write something like the following: +## 1.11.1-alpha3 - 16th March 2024 - stlsoft::must_init i(10); +* `stlsoft::basic_simple_string<>` now has `#contains()`; +* `stlsoft::basic_static_string<>` now has `#contains()`; +* wholesale automated layout canonicalisation; - i = i + 10; - ~ all remaining in-header unit-test blocks are removed into separate - headers. +## 1.11.1-alpha2 - 1st March 2024 +* True-Typedef supports stream-insertion (`operator <<()`):; +* added `stlsoft::write_string<>()`; +* miscellaneous fixes (including C++14/17/20 compatibility); -============================================================================ -Changes for 1.9.1 beta 39 (5th January 2007): +## 1.11.1-alpha1 - 20th February 2024 -Additions: -========== +* added `stlsoft::integer_to_base32_string<>()` integer to Base-32-string conversion; +* added `stlsoft::integer_to_base36_string<>()` integer to Base-36-string conversion; +* `stlsoft::basic_simple_string<>` now has `#starts_with()` and `#ends_with()`; +* `stlsoft::basic_static_string<>` now has `#starts_with()` and `#ends_with()`; +* `stlsoft::basic_static_string<>` now has `#substr()`; +* `stlsoft::basic_static_string<>` now has `#front()` and `#back()`; +* `stlsoft::basic_static_string<>` consistently and correctly throws exceptions on any operations that would cause exceeding of internal storage; +* improvement to string insertion helper `string_insert()` to work with stream types that do and do not provide `sentry`; +* added **test.unit.unixstl.filesystem.path** unit-test project; - + oaidl interfaces to comstl/internal/interface_traits_std.hpp - + stream inserter for comstl::bstr +## 1.10.11 - 16th February 2024 -Changes / Fixes: -================ +* project boilerplate; +* corrected inappropriate use of `ss_typename_param_k`; - ~ fix to winstl/system/console_functions.h to ensure C compatibility - ~ fix to winstl/time/format_functions.h to fix bug with 24-hr time picture - elements (HH) +## 1.10.10 - 16th February 2024 +* further tranche of stream insertion operator implementations; +* fixes and enhancements to `stlsoft::util::string_insert`; +* added `stlsoft::meta::hash_sentry` meta-type; +* added test.unit.unixstl.filesystem.path test project; -============================================================================ -Changes for 1.9.1 beta 38 (3rd January 2007): +## 1.10.9 - 12th February 2024 -Additions: -========== +* stlsoft::frequency_map uses traits to select between ordered and unordered representation; +* added test.unit.stlsoft.containers.frequency_map project; +* C++98 compatibility; - + stlsoft/filesystem/io_functions.hpp, which defines the function template - read_line, used to read a line of text from a FILE* stream, e.g. - FILE *stm = . . .; - std::string str; +## 1.10.8 - 6th February 2024 - while (stlsoft::read_line(stm, str)) - { - ::fprintf(stdout, "line: %.*s\n", int(str.size()), str.data()); - } +* added dev/bin/batch_compile_check; +* language compatibility fix; +* iterator definition fixes (related to C++17 deprecation of std::iterator); - ~ stlsoft::ptr_ifun() indirection function pointer adaptor creator - functions - used with std::for_each if you are storing a sequence - of X but your function acts on X*, e.g. - class X; +## 1.10.7 - 30th January 2024 - void modX(X *); +* enhanced stream insertion operators, when used with types descended from `std::basic_ios<>`, to observe width and alignment for `stlsoft::basic_shim_string<>`, `stlsoft::basic_simple_string<>`, `stlsoft::basic_static_string`, `stlsoft::basic_string_view`, `stlsoft::stlsoft_C_string_slice_m_t`/`stlsoft::stlsoft_C_string_slice_w_t`; +* refactored (almost) all direct calls to disparate parts of the `printf()`-family to use the STLSoft abstractions; +* wholesale refinement of whitespace around conditional control statements; +* large number of minor and trivial tidyings; - std::vector vecx; - std::for_each(vecx.begin(), vecx.end(), stlsoft::ptr_ifun(modX)); +## 1.10.6 - 28th January 2024 - + reinstatement of the "remove from scope" technique, in the guise of the - STLSOFT_REMOVE_FROM_SCOPE(name) macro, which removes a name from the - current scope (and any enclosed scopes). Defined in - stlsoft/util/remove_from_scope.hpp +* simplification and improvement of CMake handling; +* dependency on xTests is now optional (in prepare_cmake.sh); +* now depends on xTests 0.21.2; +* CMake C language now C11; +* fixed defect in `stlsoft::pod_vector`; - + added winstl::listview_sequence_item::state() -Changes: -======== +## 1.10.5 - 18th January 2024 - ~ stlsoft/function_adaptors/ref2ptr.hpp => stlsoft/functional/indirect_function_adaptors.hpp +* C++20 and C17 compatibility changes, including `std::allocator_traits`, allocator hints, tightening rules on anonymous enums; +* brought over (from internal repository) more unit tests, for: `pod_vector`, `auto_buffer`, `shim_string`, `simple_string`, `static_string`; +* stlsoft::pod_vector now default-initialses elements in size-constructor; - ~ winstl/clipboard/exceptions.hpp => winstl/clipboard/error/exceptions.hpp - ~ 360+ other files are modified in comments only - for auto-documentation - purposes only +## 1.10.4 - 16th January 2024 +* C++17 compatibility, including: allocators, binders, auto_ptr; +* unixstl::semaphore now fully implemented on Mac OSX; +* unixstl::synchronisation_exception modern C++ compatibility; +* added supporting test (for unixstl::semaphore); +* marked relevant files with 'STLSOFT:DEPRECATED' and 'STLSOFT:FILE_NOT_SELF_SUFFICIENT' to simplify automated compatibility checks; - ~ stlsoft::error_desc now works with stream inserters with all compilers +## 1.10.3 - 12th January 2024 - ~ stlsoft::ref2ptr() indirection function pointer adaptor creator functions - are deprecated, in favour of stlsoft::ptr_ifun() creator functions. +* include/unixstl/filesystem/path_functions/classify_functions_X_.h - GCC / Clang warning; +* include/winstl/filesystem/path_functions/classify_functions_X_.h - GCC / Clang warning; +* include/comstl/comstl.h - ~ fixed sub-project version; +* include/inetstl/inetstl.h - ~ fixed sub-project version; +* include/unixstl/unixstl.h - ~ fixed sub-project version; +* include/winstl/winstl.h - ~ fixed sub-project version; +* include/stlsoft/conversion/sas_to_string.hpp - typo; +* include/stlsoft/util/std/iterator_helper.hpp - typo; +* include/winstl/filesystem/path.hpp - typo; +* minor fixes to project boilerplate; - ~ comstl::errorinfo_desc now works with stream inserters with all compilers - ~ fixed compilation problem with unixstl/dl/dl_call.hpp with GCC 4.x +## 1.10.2 - 3rd January 2024 +* include/comstl/collections/safearray_sequence.hpp - defect fix in `safearray_sequence.empty()`; +* include/unixstl/filesystem/filesystem_traits.hpp - removing unused / repetitive code; +* include/unixstl/filesystem/readdir_sequence.hpp - various fixes, including significant defect whereby path would not be updated correctly (leading to FH exhaustion with recls); +* include/winstl/filesystem/filesystem_traits.hpp - removing unused / repetitive code; +* MinGW 64-bit compatibility improvements; +* large number of trivial / whitespace consistency fixes; -============================================================================ -Changes for 1.9.1 beta 37 (30th December 2006): +## 1.9.136 - 15th December 2023 -Summary: - This includes the final removal of all code from files in the root - directory and from the immediate project-specific directories. In other - words, this is the final 1.9 structure. (That's not to say it's perfect, - but any subsequent changes can wait until 1.10) +* lots of changes to standardise the library boilerplate; +* porting back significant and necessary fixes from STLSoft-1.10; +## 1.10.1 - December 13th 2023 -Removals: -========= +* CMake support; - - stlsoft::equal_handle function class - this is dead and gone - - stlsoft/container_veneers.hpp - this is obsolete; it points to correct #include +## 1.10.1 beta 33 - April 26th 2021 - - stlsoft/handle_access.hpp - this is dead and gone +* Clang compatibility; - - stlsoft/skip_iterator.hpp - this is going into research section; maybe 1.10 - - mfcstl/cstring_veneer.hpp - this is obsolete; it points to correct #include +## 1.10.1 beta 32 - April 26th 2021 - - winstl/handle_access.hpp - this is dead and gone +* GCC/Clang compatibility; - - winstl/windows.hpp - this is going into a research section; maybe 1.10 -Additions: -========== +## 1.10.1 beta 31 - April 2nd 2021 +* Clang compatibility; +* provision for customising inline (in C compilation); +* warnings; -Changes: -======== - ~ fixed bug in stlsoft::scoped_handle::detach() +## 1.10.1 beta 30 - March 29th 2021 - ~ stlsoft/container_access.hpp => stlsoft/collections/functions.hpp +* Clang compatibility; +* warnings; - ~ stlsoft/c_str_ptr_inserter.hpp => stlsoft/iterators/c_str_inserter.hpp - ~ stlsoft/iterator.hpp => stlsoft/util/std/iterator_helper.hpp +## 1.10.1 beta 29 - 16th February 2021 - ~ stlsoft/ptr_proxy.hpp => stlsoft/smartptr/ptr_proxy.hpp +* a whole lot of Clang- and GCC-compatibility; - ~ stlsoft/unary_function_output_iterator_adaptor.hpp => stlsoft/iterators/unary_function_output_iterator_adaptor.hpp - ~ stlsoft/unittest.hpp => unittest/unittest.hpp +## 1.10.1 beta 28 - 18th January 2021 - ~ stlsoft/collections/collections.hpp renamed to stlsoft/collections/util/collections.hpp +* added character-array overloads of fast_strftime(); +* WinSTL hard link information functions now work for directories as well as files; +* various defect fixes; - ~ stlsoft/functional/access_predicates.hpp renamed to stlsoft/functional/equal_ptr.hpp - ~ winstl/functions.h => winstl/obsolete/functions.h +## 1.10.1 beta 27 - 10th January 2021 - ~ winstl/winstl_int_to_string.h => winstl/conversion/int_to_string.hpp +* added string access shims for std::chrono type(s); +* some GCC compatibility tweaks; - ~ winstl::get_console_window() moved from winstl/functions.h => - winstl/system/console_functions.h - ~ winstl/registry/defs.hpp => winstl/registry/util/defs.hpp - ~ winstl/registry/exceptions.hpp => winstl/registry/error/exceptions.hpp - ~ winstl/registry/shared_handles.hpp => winstl/registry/util/shared_handles.hpp +## 1.10.1 beta 26 - 4th January 2021 +* added (UNIXSTL and WinSTL) Path Classification API (from 1.12 work), which work with Windows UNC and long-path root designators and all slash conventions; +* added (UNIXSTL and WinSTL) path parsing function - include/???stl/filesystem/path_parse_functions.h, presenting a consistent set of functions centralised from disparate parts of the libraries; +* BREAKING CHANGES: (UNIXSTL and WinSTL) basic_path<> methods get_file() and get_ext() now return slices, and get_ext() changed semantics to include '.'; +* (UNIXSTL and WinSTL) basic_path<> added move semantics and get_location() method and made swap() method public, as well as numerous defect fixes and consistency improvements implemented in terms of new Path Classification API; +* (UNIXSTL and WinSTL) filesystem_traits<> added path classification and path parsing methods, as well as numerous defect fixes; +* updated copyright info for all files, from Synesis Software to Synesis Information Systems; +* stlsoft::basic_path_buffer<> added resize(), back(), front() methods; +* added added stlsoft_C_(str|wcs)nicmp(); +* raw (C) string slice types moved out of stlsoft:: namespace in C++; +* C++14 compatibility; +* a whole lot of work to reduce dependencies; +* many improvements to GCC compatibility; +* all uses of memcpy() and memset() now in terms of abstractions (in stlsoft/api/internal/memfns.h); +* BREAKING CHANGES: ~ abstracted out string-handling from *stl::system_traits<> into stlsoft::c_string_traits<>, and removed several unused (and sketchy) functions; -============================================================================ -Changes for 1.9.1 beta 36 (28th December 2006): +## 1.10.1 beta 25 - 14th December 2020 -Additions: -========== +* added two more files missing from beta 23 - D'oh!; - UNIXSTL - ------- - + unittest cases for unixstl::memory_mapped_file +## 1.10.1 beta 24 - 13th December 2020 +* added file unixstl/filesystem/path_buffer.hpp missing from beta 23; - WinSTL - ------ - + winstl::memory_mapped_file can now be constructed from a wide string, in - addition to a multibyte string. It can also be constructed from any type - for which the stlsoft::c_str_ptr string access shim returns a wide - string, in addition to any type for which the stlsoft::c_str_ptr string - access shim returns a multibyte string - + unittest cases for winstl::memory_mapped_file +## 1.10.1 beta 23 - 13th December 2020 +* basic_file_path_buffer<> is now deprecated in all projects, and all dependent components are modified to use other facilities; +* added platformstl::environment_variable<> class template; +* added (in)equality operators for stlsoft::error_desc; +* added stlsoft::basic_path_buffer<> component, as an alternative to basic_file_path_buffer<>; +* stlsoft::auto_buffer<> class template copy_from() method, and ctor and resize() method that take value for initialisation of (new) elements; +* added stlsoft::strnpbrkn()/wcsnpbrkn() (and added stlsoft_C_(str|wcs)npbrkn()); +* added move constructor to unixstl::module and winstl::module; +* large number of new methods and defect fixes in (platformstl|unixstl|winstl)::filesystem_traits; +* large number of new methods and defect fixes in (platformstl|unixstl|winstl)::system_traits; -============================================================================ +## 1.10.1 beta 22 - 29th November 2020 -Changes for 1.9.1 beta 35 (27th December 2006): +* added stlsoft::string_to_integer_range(); +* added stlsoft::strnchr(), stlsoft::strnistrn(), stlsoft::strnstrn() C-style string search functions; +* added move constructor to stlsoft::auto_buffer<>; +* added move constructor for stlsoft::scoped_handle<>; +* added move constructor for stlsoft::(basic_)simple_string<>; +* winstl::output_debug_line() overloads expanded to 16-parameters, and changed to use variadic templates where supported; +* stlsoft::split() functions enhanced to: return vector of arbitrary length; allow heterogeneous types for the split elements; +* stlsoft::string_switch() split into two overloads to handle property and unambiguously flag enums, regular enums, and enum classes; +* significant, BREAKING changes to stlsoft::try_parse_to() overloads to avoid ambiguity; +* changed significantly the way in which stlsoft::cstring_maker works, and adjusted all dependent code; +* various additions for compatibility with std::string_view (which is very similar to stlsoft::string_view); +* fixed case of a bunch of headers; -Additions: -========== - STLSoft - ------- +## 1.10.1 beta 21 - 27th July 2020 - + stlsoft::do_initialisation_never array initialisation policy, which - stipulates that no initialisation whatsoever be performed on array - elements +* VC++ 15/16 compatibility; +* fixed unixstl::readdir_sequence::empty(); - + stlsoft::scoped_handle now supports indirect cleanup functions. In other - words, if you have a handle type handle_t, you can pass either a cleanup - function taking handle_t - e.g. handle_close(handle_t ); - or a cleanup - function taking a pointer to handle_t - e.g. handle_close_set_null(handle_t *) -Changes: -======== +## 1.9.135 - 27th July 2020 - general - ------- +* VC++ 15/16 compatibility; +* fixed unixstl::readdir_sequence::empty(); - ~ replacement of all stlsoft::throw_x() with STLSOFT_THROW_X() - STLSoft - ------- +## 1.10.1 beta 20 - 4th July 2020 - ~ stlsoft::fixed_array_1d/2d/3d/4d classes now capable of doing *no* - initialisation of their elements, by specifying the new policy - stlsoft::do_initialisation_never +* fixed detecton of shared_ptr and unique_ptr; - ~ stlsoft::static_array_1d/2d/3d/4d classes now capable of doing *no* - initialisation of their elements, by specifying the new policy - stlsoft::do_initialisation_never - UNIXSTL - ------- +## 1.10.1 beta 19 - 4th July 2020 - ~ refactoring of #includes in unixstl/synch/thread_mutex.hpp +* added stlsoft::t2w, stlsoft::w2t, stlsoft::t2a, stlsoft::a2t for upcoming Pantheios release; +* added stream insertion operator (generic) for string slice types; +* added compatibility with Visual C++ 15.x and 16.x; +* added support for the ARM architecture (christopherplawrence); +## 1.9.134 - 4th July 2020 -============================================================================ +* added compatibility with Visual C++ 15.x and 16.x; +* added stlsoft::t2w, stlsoft::w2t, stlsoft::t2a, stlsoft::a2t for upcoming Pantheios release; -Changes for 1.9.1 beta 34 (24th December 2006): -Changes: -======== +## 1.9.133 - 13th June 2020 - general - ------- +* Add support for the ARM architecture when doing Android NDK GCC compilation; - - replacement of all per-component exception throwing mechanisms with - stlsoft::throw_x() utility function - STLSoft - ------- +## 1.10.1 beta 18 - 31st October 2019 - - deprecation of stlsoft::cwd_stack::is_empty() method - - removal of stlsoft::is_empty logical shim for stlsoft::searchspec_sequence +* added stlsoft/system/environment/functions.hpp to enhances stlsoft::environment_variable_exists() with string access shims to support arbitrary string type; +* remove vestigial (and erroneous) winstl/string/spin_policies.hpp; +* various documentation fixes; - ACESTL - ------ - ~ corrected bug in acestl::message_queue_sequence::empty() - ~ corrections to stlsoft::is_empty logical shim for ACE_Message_Queue +## 1.10.1 beta 17 - 24th October 2019 - ATLSTL - ------ +* GCC 8 compatibility; +* GCC 9 compatibility; +* implemented WinSTL_C_FileInformation_get_SECURITY_DESCRIPTOR_w(); +* improved documentation; - ~ corrections to #includes in atlstl/window/window.hpp -Removals: -========= +## 1.10.1 beta 16 - 13th October 2019 - COMSTL - ------ +* added stlsoft_C_environment_variable_exists_a() / environment_variable_exists() (from STLSoft 1.10-alpha); +* added stlsoft::count_bits(int) overload; +* added cbegin(), cend(), crbegin(), crend() to platformstl::environment_map; +* significant additions and removals of WinSTL file creation functions; +* added WinSTL security functions (from STLSoft 1.10-alpha); +* recognising Mac OSX architecture as UNIX; +* canonicalising '\file' description sections; +* suppresses deprecation warning from reporting use of deprecated functions inside other deprecated functions; - - deprecation of stlsoft::is_empty logical shim for interface casts - - deprecation of stlsoft::is_empty logical shim for comstl::interface_ptr - InetSTL - ------- +## 1.9.132 - 11th October 2019 - - removal of stlsoft::is_empty logical shim for inetstl::basic_findfile_sequence - - removal of stlsoft::is_empty logical shim for inetstl::searchspec_sequence - - WinSTL - ------ - - - deprecation of stlsoft::is_empty logical shim for winstl::basic_findfile_sequence - - deprecation of stlsoft::is_empty logical shim for winstl::basic_findvolume_sequence - - -Additions: -========== - - ACESTL - ------ - - + stlsoft::is_empty logical shim overloads for ACE_String_Base - - MFCSTL - ------ - - + stlsoft::is_empty logical shim overloads for MFC array containers - + stlsoft::is_empty logical shim overloads for MFC list containers - + stlsoft::is_empty logical shim overloads for MFC CString - - STLSoft - ------- - - + stlsoft::cwd_stack::empty() method - + stlsoft::get_ptr attribute shim overloads for stlsoft::ptr_proxy - + stlsoft::conversion_error exception class - + stlsoft::wide2multibyte and stlsoft::multibyte2wide now throw an instance - of stlsoft::conversion_error exception if the conversion fails (when - exception handling support is on). - + stlsoft::is_empty logical shim overload for standard containers - - WinSTL - ------ - - + winstl::conversion_error exception class - + winstl::wide2multibyte and winstl::multibyte2wide now throw an instance - of winstl::conversion_error exception if the conversion fails (when - exception handling support is on). - + winstl::to_FILETIME conversion shim - + winstl::to_SYSTEMTIME conversion shim +* GCC 4.8, 4.9 compatibility; +* PlatformSTL now recognises Mac OSX as UNIX implicitly; +* fixed up project files (README, NEWS, etc.); -Diffs: -====== - root-dir-1: H:\3Pty\STLSoft\1.9.1-beta33 - root-dir-2: H:\3Pty\STLSoft\1.9.1-beta34 -Items unchanged from H:\3Pty\STLSoft\1.9.1-beta33 to H:\3Pty\STLSoft\1.9.1-beta34: 1415 -Items changed from H:\3Pty\STLSoft\1.9.1-beta33 to H:\3Pty\STLSoft\1.9.1-beta34: 73 -Items changed (major) from H:\3Pty\STLSoft\1.9.1-beta33 to H:\3Pty\STLSoft\1.9.1-beta34: 0 -Items changed (minor) from H:\3Pty\STLSoft\1.9.1-beta33 to H:\3Pty\STLSoft\1.9.1-beta34: 13 - include\acestl\shims\attribute\is_empty.hpp 1.0.1.3 => 1.1.1.4 ; 12th December 2006 => 18th December 2006 - include\comstl\conversion\interface_cast.hpp 5.1.3.103 => 5.2.1.105 ; 13th December 2006 => 19th December 2006 - include\comstl\smartptr\interface_ptr.hpp 7.0.1.485 => 7.1.1.487 ; 12th December 2006 => 19th December 2006 - include\inetstl\error\exceptions.hpp 4.0.1.31 => 4.1.1.33 ; 15th September 2006 => 18th December 2006 - include\inetstl\filesystem\searchspec_sequence.hpp 5.0.1.42 => 5.1.1.43 ; 16th July 2006 => 19th December 2006 - include\platformstl\filesystem\cwd_stack.hpp 2.0.1.14 => 2.1.1.16 ; 16th July 2006 => 18th December 2006 - include\stlsoft\filesystem\searchspec_sequence.hpp 4.0.2.42 => 4.1.1.44 ; 7th July 2006 => 19th December 2006 - include\stlsoft\ptr_proxy.hpp 3.0.2.58 => 3.1.1.60 ; 7th July 2006 => 18th December 2006 - include\unixstl\error\exceptions.hpp 4.1.1.39 => 4.2.1.42 ; 16th September 2006 => 18th December 2006 - include\winstl\conversion\char_conversions.hpp 5.0.2.76 => 5.1.1.78 ; 12th December 2006 => 18th December 2006 - include\winstl\error\exceptions.hpp 4.2.1.43 => 4.3.1.46 ; 15th September 2006 => 18th December 2006 - include\winstl\filesystem\findfile_sequence.hpp 4.4.3.189 => 4.5.1.190 ; 13th December 2006 => 19th December 2006 - include\winstl\filesystem\findvolume_sequence.hpp 4.2.1.96 => 4.3.1.97 ; 13th December 2006 => 19th December 2006 -Items changed (revision) from H:\3Pty\STLSoft\1.9.1-beta33 to H:\3Pty\STLSoft\1.9.1-beta34: 21 - include\acestl\collections\message_queue_sequence.hpp 2.1.3.41 => 2.1.4.43 ; 27th November 2006 => 18th December 2006 - include\acestl\shims\attribute\is_empty\message_queue.hpp 2.0.1.16 => 2.0.3.19 ; 12th December 2006 => 20th December 2006 - include\atlstl\window\window.hpp 1.0.1.1 => 1.0.2.2 ; 25th November 2006 => 16th December 2006 - include\comstl\error\exceptions.hpp 2.0.2.33 => 2.0.3.34 ; 9th December 2006 => 15th December 2006 - include\comstl\string\bstr_functions.h 4.2.1.70 => 4.2.2.71 ; 9th December 2006 => 23rd December 2006 - include\inetstl\filesystem\findfile_sequence.hpp 3.0.2.118 => 3.0.3.120 ; 13th December 2006 => 18th December 2006 - include\mfcstl\collections\cstring_adaptors.hpp 4.0.3.72 => 4.0.4.73 ; 18th October 2006 => 15th December 2006 - include\stlsoft\container_access.hpp 1.3.3.24 => 1.3.4.25 ; 18th October 2006 => 15th December 2006 - include\stlsoft\containers\frequency_map.hpp 2.0.3.9 => 2.0.4.10 ; 18th October 2006 => 15th December 2006 - include\stlsoft\conversion\char_conversions.hpp 5.0.2.76 => 5.0.3.77 ; 12th December 2006 => 18th December 2006 - include\stlsoft\conversion\ptr_cast.hpp 4.0.3.26 => 4.0.4.27 ; 11th December 2006 => 15th December 2006 - include\stlsoft\error\exceptions.hpp 4.0.1.41 => 4.0.2.42 ; 15th September 2006 => 15th December 2006 - include\stlsoft\error\iteration_interruption.hpp 2.0.1.9 => 2.0.2.10 ; 16th July 2006 => 18th December 2006 - include\unixstl\dl\dl_call.hpp 2.3.2.28 => 2.3.3.29 ; 18th October 2006 => 15th December 2006 - include\unixstl\filesystem\path.hpp 6.4.2.213 => 6.4.3.214 ; 13th December 2006 => 15th December 2006 - include\unixstl\synch\process_mutex.hpp 4.4.3.58 => 4.4.4.59 ; 12th December 2006 => 17th December 2006 - include\unixstl\synch\thread_mutex.hpp 4.1.2.40 => 4.1.3.41 ; 12th December 2006 => 17th December 2006 - include\winstl\dl\dl_call.hpp 2.3.2.29 => 2.3.3.30 ; 17th October 2006 => 15th December 2006 - include\winstl\filesystem\file_functions.hpp 2.3.2.38 => 2.3.3.39 ; 18th October 2006 => 15th December 2006 - include\winstl\filesystem\path.hpp 6.4.2.222 => 6.4.3.223 ; 13th December 2006 => 15th December 2006 - include\winstl\synch\tss_index.hpp 4.0.1.28 => 4.0.2.29 ; 16th September 2006 => 15th December 2006 -Items changed (edit) from H:\3Pty\STLSoft\1.9.1-beta33 to H:\3Pty\STLSoft\1.9.1-beta34: 39 -Items changed (unversioned) from H:\3Pty\STLSoft\1.9.1-beta33 to H:\3Pty\STLSoft\1.9.1-beta34: 0 -Items deleted from H:\3Pty\STLSoft\1.9.1-beta33: 0 -Items added to H:\3Pty\STLSoft\1.9.1-beta34: 16 - H:\3Pty\STLSoft\1.9.1-beta34\include\acestl\shims\attribute\is_empty\string_base.hpp - H:\3Pty\STLSoft\1.9.1-beta34\include\mfcstl\shims\attribute\is_empty.hpp - H:\3Pty\STLSoft\1.9.1-beta34\include\mfcstl\shims\attribute\is_empty\arrays.hpp - H:\3Pty\STLSoft\1.9.1-beta34\include\mfcstl\shims\attribute\is_empty\cstring.hpp - H:\3Pty\STLSoft\1.9.1-beta34\include\mfcstl\shims\attribute\is_empty\lists.hpp - H:\3Pty\STLSoft\1.9.1-beta34\include\stlsoft\error\conversion_error.hpp - H:\3Pty\STLSoft\1.9.1-beta34\include\stlsoft\shims\attribute\is_empty.hpp - H:\3Pty\STLSoft\1.9.1-beta34\include\stlsoft\shims\attribute\is_empty\std\container.hpp - H:\3Pty\STLSoft\1.9.1-beta34\include\stlsoft\shims\attribute\is_empty\util\features.hpp - H:\3Pty\STLSoft\1.9.1-beta34\include\winstl\error\conversion_error.hpp - H:\3Pty\STLSoft\1.9.1-beta34\include\winstl\shims\conversion\to_FILETIME.hpp - H:\3Pty\STLSoft\1.9.1-beta34\include\winstl\shims\conversion\to_FILETIME\FILETIME.hpp - H:\3Pty\STLSoft\1.9.1-beta34\include\winstl\shims\conversion\to_FILETIME\SYSTEMTIME.hpp - H:\3Pty\STLSoft\1.9.1-beta34\include\winstl\shims\conversion\to_SYSTEMTIME.hpp - H:\3Pty\STLSoft\1.9.1-beta34\include\winstl\shims\conversion\to_SYSTEMTIME\FILETIME.hpp - H:\3Pty\STLSoft\1.9.1-beta34\include\winstl\shims\conversion\to_SYSTEMTIME\SYSTEMTIME.hpp +## 1.10.1 beta 15 - 13th September 2019 +* added stlsoft::fast_strftime() and stlsoft::fast_wcsftime() as drop-in replacements for std::strftime() and std::wcsftime(); +* added get_ptr() shim overload for std::shared_ptr and std::unique_ptr; +* added stlsoft::get_top() attribute shim; +* stlsoft::basic_string_view<>::substr(); +* added winstl_C_format_message_strerror_w(); +* removed stlsoft::literal_cast<>; +* various portability improvements to newer compilers; -============================================================================ -Changes for 1.9.1 beta 33 (13th December 2006): +## 1.10.1 beta 14 - 4th August 2019 -Changes: -======== +* added SECURITY_DESCRIPTOR helpers(); +* stlsoft::w2m and stlsoft::m2w now more general; - ~ all comstl__??? functions are no longer in the comstl namespace (when in - C++ compilation); their non comstl__-prefixed equivalents remain in the - comstl namespace. For example, the full name of the - comstl::comstl__set_error_info_description_w() function is now - comstl__set_error_info_description_w() whether in C or C++; the name of - comstl::set_error_info_description_w() remains as it was. -Additions: -========== +## 1.10.1 beta 13 - 16th April 2019 - + comstl::IDispatchImpl4 +* fixed STLSOFT_ALWAYS_FALSE() / STLSOFT_ALWAYS_TRUE(); +* platformstl::FILE_stream : ~ fixing character-encoding function selection defect; +* canonicalising source file structure; - + comstl::try_interface_cast +## 1.10.1 beta 12 - 26th December 2018 -============================================================================ +* added sas_to_string() (and related) functions; +* added stlsoft::errno_exception (from 1.12 branch); +* added stlsoft::locale_scope; +* STLSoft's struct tm String Access Shims now work for arbitrary locale; +* UNIXSTL's timeval String Access Shims now work for arbitrary locale; -Changes for 1.9.1 beta 32 (6th December 2006): -Changes: -======== +## 1.10.1 beta 11 - 22nd December 2018 -~ fixed unixstl/unixstl.h (in)compatibility with C compilation +* stlsoft::ref_ptr : + borrow(); + own(); +* winstl::environment_variable : + data(); + equal(); + equal_ignore_case(); + exists(); + operators ==() and !=(); -~ fixed platformstl/platformstl.h (in)compatibility with C compilation +## 1.10.1 beta 10 - 20th December 2018 -============================================================================ +* winstl::process_mutex() now takes an optional EVENT handle which will be signalled if the mutex experiences an abandoned acquire; +* special_string_instance now provides generic (SAS) (in)equality operators automatically; +* try_parse_to_bool() semantics firmed up; -Changes for 1.9.1 beta 31 (6th December 2006): -Changes: -======== +## 1.10.1 beta 9 - 11th June 2018 -~ comstl/interface/bad_interface_cast.hpp -> comstl/error/bad_interface_cast.hpp +* Borland compatibility; -~ comstl/interface/interface_cast.hpp -> comstl/conversion/interface_cast.hpp -~ comstl/interface/interface_traits.hpp -> comstl/util/interface_traits.hpp +## 1.10.1 beta 8 - 11th June 2018 -- comstl::interface_ptr is now deprecated, in favour of stlsoft::ref_ptr +* fixing break to UNIX-compatibility introduced in beta-6/7; -+ comstl::co_create_instance() overloads now also take (a reference to) an - instance of stlsof::ref_ptr -+ comstl::interface_cast<>() function templates that cast between instances - of the stlsoft::ref_ptr<> "smart pointer" wrappers. +## 1.10.1 beta 7 - 9th June 2018 +* auto_buffer<> now supports limited form of pointer arithmethic via operator -(); +* added subscript operator for auto_array_destructor<>; +* VC++ 14.1x compatibility; +* refactoring of copy-proscriptions; -+ stlsoft::ref_ptr now takes a third (defaulted) template parameter, which - defines the (intermediate) up-cast type when converting from concrete - type to interface type -+ stlsoft::ref_ptr::set() method, to facilitate modification of an already - constructed instance. (Previously the user was obliged to assign from a - temporary instance.) +## 1.10.1 beta 6 - 9th June 2018 +* refactored in terms of external API; +* removed empty/meaningless "compatibility" sections; +* canonicalising proscribed construction methods; +* simplifying, and prospective changes (for getting to 1.12); -+ winstl::get_kernel_handle shim - (winstl/shims/attribute/get_kernel_handle.hpp) -+ winstl::get_synch_handle shim - (winstl/shims/attribute/get_synch_handle.hpp) +## 1.10.1 beta 5 - 15th May 2017 -~ winstl::event's member type handle_type renamed to synch_handle_type +* enhanced STLSOFT_SUPPRESS_UNUSED() to work with rvalues; -~ winstl::process_mutex's member type handle_type renamed to synch_handle_type -~ winstl::semaphore's member type handle_type renamed to synch_handle_type +## 1.10.1 beta 3 - 19th February 2017 -~ winstl/synch/functions.hpp -> winstl/synch/wait_functions.hpp +* a whole bunch of non-functional changes to make the codebase more consistent and amenable to further automatic instrumentation by script auto-validation script compatibility, and ensure all files have full inclusion control; +* fixing get_FILE_ptr() shim namespace issues; +* winstl::token_information has additional compatibility up to W8/Svr12, and now defaults to throwing instances of winstl::security_exception; -~ winstl::WaitForMultipleObjects() function suite renamed - winstl::wait_for_multiple_objects(), and now implemented in terms of new - winstl::get_synch_handle shim +## 1.10.1 beta 2 - 28th January 2017 -============================================================================ +* work on STLSoft integer_to_string functions to loosen non-array forms' preconditions, reduce dependencies in rest of codebase to integer_to_decimal_string()-only; +* filesystem_traits - refactored is_dots() and starts_with_dots() to accomodate GCC 4.9 pedanticism; +* exposing unixstl/winstl types spin_mutex_no_yield and spin_mutex_yield to platformstl namespace; +* a large number of changes to improve compatibility with UNIX, Clang, GCC, and MinGW; +* hiding/suppressing unused typedefs; -Changes for 1.9.1 beta 30 (2nd December 2006): -Changes: -======== +## 1.10.1 beta 1 - 14th January 2017 -~ UNIXSTL components spin_mutex and the atomic_???() function suite are now - compatible with both architectures (PPC + Intel) on MAC OSX. +* too many changes to list here - it's a new world! (Bit of a shame it took 10 years to get here :$); +* in summary:; +* major reworking of exceptions hierarchy, including provision of project and library identifiers, status-code, and message translation; +* several new special-string-instance types, including home_directory, host_name, temporary_directory, temporary_file_name; +* new string access shims, for types including timeval, type_info; +* new attribute shims, including: get_synch_handle, get_FILE_ptr; +* new logical shims, including: is_empty, is_null; +* new high-performance conversion functions (based around the extant technology in stlsoft::integer_to_string()): integer_to_decimal_string(), integer_to_hexadecimal_string(), integer_to_octal_string(), integer_to_lc_string(), integer_to_zero_padded_decimal_string(); +* new conversion parsing functions: string_to_bool(), string_to_integer(); +* new scoped_method class template; +* new scoped_lambda class template; +* new bit-testing functions; +* substantially improved atomic function support; +* substantially improved spin_mutex class templates and policies; +* new diagnostic stopwatch classes and logging functions; +* new platformstl::file_stream_base class template and policies; +* new string slice classes that are compatible (but do not depend on) other Synesis projects (such as FastFormat and Pantheios); +* new time comparison functions and operators, conversion cast and functions, elicitation functions, modification functions, and validation functions; +* ... and many many other improvements and additions ..; +## 1.9.131 - 2nd November 2016 -============================================================================ +* added ss_typename_void_k; -Changes for 1.9.1 beta 29 (27th November 2006): -Additions: -========== +## 1.9.130 - 1st October 2016 -+ atlstl::Window class - a string access shim-aware enhancement to ATLs' - Window class +* minor tidyings; -Changes: -======== -~ COMSTL value policies throw exceptions if fail to copy +## 1.9.129 - 17th July 2016 -~ UNIXSTL and WinSTL spin_mutex is made into a template, and takes a policy - that determines whether it yields on the spin. Use spin_mutex_yield for - yielding, spin_mutex_no_yield for no yielding. spin_mutex is now a typedef - for spin_mutex_no_yield. The old behaviour can be obtained by #define-ing - the symbol STLSOFT_OLD_SPIN_MUTEX_BEHAVIOUR, in which case spin_mutex is - a typedef for spin_mutex_yield. +* minor tidyings STLSoft; +* stlsoft/internal/cccap/borland.h:; +* added STLSOFT_CF_FUNC_SYMBOL_SUPPORT; +* stlsoft/stlsoft.h:; +* added discrimination of STLSOFT_CF_FUNC_SYMBOL_SUPPORT WinSTL; +* winstl/filesystem/file_path_buffer.hpp:; +* added capacity(); +* fix to copy-ctor; -~ WinSTL's pid_sequence and process_module_sequence classes have been - rendered slightly more efficient. +## 1.9.126 - 4th May 2016 -============================================================================ +* improvements to Windows Registry library; -Changes for 1.9.1 beta 28 (29th October 2006): -Additions: -========== +## 1.9.125 - 14th February 2016 -+ stlsoft::a2w() and stlsoft::w2a() char conversion functions (functionally - the same as the WinSTL ones) +* various minor warnings / compiler compatibilities; -Changes: -======== -~ fixed bug in winstl/shims/access/string/time.hpp that breaks Pantheios - in UNICODE builds. +## 1.9.124 - 15th November 2015 +* MSVC++ does not support __func__; -============================================================================ -Changes for 1.9.1 beta 27 (22nd October 2006): +## 1.9.123 - 15th November 2015 -Additions: -========== +* added STLSOFT_NOEXCEPT; +* changed no-throw declaration from stlsoft_throw_0() to STLSOFT_NOEXCEPT; +* STLSOFT_CF_EXPLICIT_KEYWORD_SUPPORT => STLSOFT_CF_explicit_KEYWORD_SUPPORT; +* STLSOFT_CF_MUTABLE_KEYWORD_SUPPORT => STLSOFT_CF_mutable_KEYWORD_SUPPORT; +* STLSOFT_CF_BUILTIN_nullptr_SUPPORT => STLSOFT_CF_nullptr_KEYWORD_SUPPORT; +* STLSOFT_CF_OVERRIDE_KEYWORD_SUPPORT => STLSOFT_CF_override_KEYWORD_SUPPORT; +* STLSOFT_CF_constexpr_KEYWORD_SUPPORT; +* STLSOFT_CF_final_KEYWORD_SUPPORT; +* added token_information<>::get(), token_information<>::size(); +* correct use of deallocate(); + + +## 1.9.122 - 1st November 2015 + +* added STLSOFT_PRETTY_FUNCTION_SYMBOL; +* now prefers __func__ over __FUNCTION__ for STLSOFT_FUNCTION_SYMBOL; +* added (recognition of) support for nullptr; +* added (recognition of) support for static_assert; +* added ss_override_k / STLSOFT_CF_OVERRIDE_KEYWORD_SUPPORT; +* added STLSOFT_DEBUG; +* Clang compatibility; +* Windows-emulation compatibility; +* replaced dodgy use of memset(); +* forward compatibility with 1.10+; + + +## 1.9.121 - 26th September 2015 + +* stlsoft/conversion/char_conversions.hpp:; +* stlsoft/conversion/truncation_test.hpp:; +* stlsoft/internal/cccap/clang.h:; +* stlsoft/util/integral_printf_traits.hpp:; +* stlsoft/util/limit_traits.h:; +* stlsoft/util/std/iterator_helper.hpp:; +* Clang-compatibility; +* winstl/util/struct_initialisers.hpp:; +* VC++ 11/12/14 compatibility; + + +## 1.9.120 - 9th September 2015 + +* stlsoft/memory/auto_buffer.hpp:; +* optimised swap() method (when swapping between to instances using internal buffer); +* comstl/conversion/interface_cast.hpp:; +* VC++ 14 compatibility; +* platformstl/system/console_functions.h; +* unixstl/system/console_functions.h; +* unixstl_C_get_console_width() / unixstl::get_console_width(); +* winstl/conversion/char_conversions.hpp:; +* added t2m and m2t in multibyte compilations; +* winstl/toolhelp/*.hpp:; +* widestring-compatible; + + +## 1.9.119 - 26th August 2015 + +* Visual C++ 14 (Visual Studio 2015) compatibility; +* compatibility with GCC 4.x's LLVM library; +* 64-bit compatibility fixes; +* various fixes for increased compiler pedanticism; +* corrections to ensure that all .h files are C-compatible; +* forward-compatibility (to STLSoft 1.12) for numerous macros; + + +## 1.9.118 - 31st May 2014 + +* added Visual C++ 12 (VS 2013) compatibility; +* added struct initialisers for CONSOLE_SCREEN_BUFFER_INFO & CONSOLE_SCREEN_BUFFER_INFOEX; +* added second overload of winstl::filesystem_traits::ensure_dir_end() that takes a pointer to a length-added counter variable; +* added forward-compatibility with STLSoft 1.10's substantially enhanced and expanded synchronisation exception hierarchy to Synchronisation Library types; +* added winstl::system_traits::get_home_directory() (although it's only operative in 1.10+ or when using 1.10 alpha with 1.9); +* various minor fixes; +* various minor changes; +* stlsoft/internal/cccap/borland.h:; +* stlsoft/internal/cccap/como.h:; +* stlsoft/internal/cccap/dmc.h:; +* stlsoft/internal/cccap/gcc.h:; +* stlsoft/internal/cccap/intel.h:; +* stlsoft/internal/cccap/msvc.h:; +* stlsoft/internal/cccap/mwerks.h:; +* stlsoft/internal/cccap/sunpro.h:; +* stlsoft/internal/cccap/unknown.h:; +* stlsoft/internal/cccap/vectorc.h:; +* stlsoft/internal/cccap/watcom.h:; +* tidying up use of non-standard names; +* stlsoft/stlsoft.h:; +* stlsoft/string/split_functions.hpp:; +* layout changes; +* acestl/acestl.hpp:; +* atlstl/atlstl.hpp:; +* comstl/comstl.h:; +* dotnetstl/dotnetstl.hpp:; +* dotnetstl/string/string_accessor.hpp:; +* fixed missing qualification of IntPtr; +* inetstl/inetstl.h:; +* mfcstl/mfcstl.hpp:; +* wtlstl/wtlstl.hpp:; +* unixstl/filesystem/glob_sequence.hpp:; +* implementation function unused-parameter warning suppressed; +* unixstl/filesystem/readdir_sequence.hpp:; +* unixstl/synch/process_mutex.hpp:; +* unixstl/synch/semaphore.hpp:; +* unixstl/synch/thread_mutex.hpp:; +* changed case in exception message; +* unixstl/unixstl.h:; +* winstl/error/error_desc.hpp:; +* adjustments for improving compiler compatibility; +* now more flexibly handles different error constant types (with meta-logic to enforce integral type are not too-large for represenation); +* winstl/error/error_functions.h:; +* fixed counting defect, whereby some strings end up being oversized; +* winstl/filesystem/filesystem_traits.hpp:; +* added second overload of ensure_dir_end() that takes a pointer to a length-added counter variable; +* winstl/filesystem/findfile_sequence.hpp:; +* minor correction to documentation markup; +* winstl/registry/reg_key.hpp:; +* winstl/registry/reg_key_sequence.hpp:; +* winstl/registry/reg_value_sequence.hpp:; +* winstl/shims/access/string/time.hpp:; +* rearrangement; +* winstl/synch/event.hpp:; +* winstl/synch/process_mutex.hpp:; +* winstl/synch/semaphore.hpp:; +* winstl/synch/tss_index.hpp:; +* forward-compatibility with STLSoft 1.10's substantially enhanced and expanded synchronisation exception hierarchy; +* winstl/system/system_traits.hpp:; +* added get_home_directory() (though only operative in 1.10 or 1.9 + 1.10 alpha); +* added get_home_directory() (although it's only operative in 1.10+ or when using 1.10 alpha with 1.9); +* winstl/time/conversion_functions.h:; +* corrected pre-conditions; +* winstl/util/struct_initialisers.hpp:; +* added in CONSOLE_SCREEN_BUFFER_INFO; +* added in CONSOLE_SCREEN_BUFFER_INFOEX; +* winstl/winstl.h:; + + +## 1.9.117 - 16th February 2013 + +* added Visual C++ 11 compatibility; +* various minor changes; +* stlsoft/stlsoft.h:; +* stlsoft/util/std/iterator_helper.hpp:; +* stlsoft/util/std/library_discriminator.hpp:; +* stlsoft/string/char_traits.hpp:; +* defect fix; +* winstl/error/error_desc.hpp:; +* trivial correction; +* winstl/filesystem/directory_functions.hpp:; +* propagates failed sub-directory removal up to caller; +* fixing up of documentation of callback function semantics; +* winstl/system/console_functions.h:; +* fixing doc; +* winstl/system/environment_variable.hpp:; +* trivial tightening of pointer null; + + +## 1.9.116 - 19th August 2012 + +* fixed defect in winstl::pipe::close_write(); +* various other minor warning suppression and reformatting; +* stlsoft/util/sign_traits.hpp:; +* VC++ 6 compatibility (with short); +* unixstl/filesystem/readdir_sequence.hpp:; +* semantically-meaningless reformatting (to ease diffs with STLSoft 1.10 version); +* winstl/filesystem/pipe.hpp:; +* fixed defective close_write(); +* winstl/time/format_functions.hpp:; +* avoid truncation warning; + + +## 1.9.115 - 31st July 2012 + +* stlsoft::integer_to_string() new overloads with out-parameter as pointer; deprecated overloads with out-parameter as reference; +* winstl::integral_printf_traits added octal_format_a/w(), hexadecimal_format_a/w(), decimal_format_a/w(); deprecated format_a/w() and hex_format_a/w() methods, and size_min, size_max, and size member constants; +* Windows 7-compatibility for winstl::drophandle_sequence; +* winstl::spin_mutex now uses SwitchToThread if _WIN32_WINNT >= 0x0400; +* added winstl::added GetTimeFormat_msExA/W() by which custom time markers can be specified; +* stlsoft/conversion/integer_to_string.hpp:; +* added overloads taking pointer out-parameter (for retrieval of written length); +* deprecated overloads taking reference out-parameter (for retrieval of written length); +* preparation for fwd-compatible changes; +* stlsoft/internal/cccap/msvc.h:; +* support for static_assert (VC++ 10+); +* added STLSOFT_MSVC_VER; +* recognition of 'long long' support for VC++8+; +* stlsoft/internal/head_version.h:; +* stlsoft/internal/lead_version.h:; +* added head and lead version for STLSoft 1.9; +* stlsoft/stlsoft.h:; +* added remove_const_ptr(); +* added apply_const_ptr(); +* added inclusions for stlsoft/internal/head_version.h, which defines STLSOFT_HEAD_VER; +* added inclusions for stlsoft/internal/lead_version.h, which defines STLSOFT_LEAD_VER; +* now uses static_assert (in STLSOFT_STATIC_ASSERT()), when supported; +* stlsoft/string/split_functions.hpp:; +* moved worker functions into nested namespace stlsoft::ximpl_split_functions; +* stlsoft/string/view_slice_functions.hpp:; +* GCC compatibility (because of duff shims/template handling); +* stlsoft/util/integral_printf_traits.hpp:; +* size_min, size_max, and size member constants are now deprecated; +* moved integral_printf_traits_base into internal namespace ximpl_integral_printf_traits; +* added octal_format_a(); +* added octal_format_w(); +* added hexadecimal_format_a(); +* added hexadecimal_format_w(); +* deprecated hex_format_a(); +* deprecated hex_format_w(); +* added decimal_format_a(); +* added decimal_format_w(); +* deprecated format_a(); +* deprecated format_w(); +* winstl/conversion/char_conversions.hpp:; +* workaround for compatibility with ATL::CComBSTR (and other types that do not precisely convert to C const*); +* winstl/shell/drophandle_sequence.hpp:; +* changed to be compatible (and work!) with Windows 7(+); +* corrected formerly impotent contract enforcement; +* winstl/synch/spin_mutex.hpp:; +* now yields via SwitchToThread() if _WIN32_WINNT >= 0x0400; +* winstl/time/format_functions.hpp:; +* added GetTimeFormat_msExA/W() by which custom time markers can be specified; +* forward compatibility with STLSoft 1.10+ integer to string conversions; + + +## 1.9.114 - 4th June 2012 + +* added unixstl::filesystem_traits::is_socket(char_type const*) method; +* added unixstl::filesystem_traits::is_link(char_type const*) method; +* added unixstl::filesystem_traits::is_socket(stat_data_type const*) method; +* added unixstl::filesystem_traits::find_next_path_name_separator() method; +* added unixstl::filesystem_traits::find_last_path_name_separator() method; +* unixstl::filesystem_traits::get_full_path_name() now canonicalises '.'/'..'-trailing paths; +* unixstl::readdir_sequence.hpp now includes directory name in thrown exception; +* unixstl/filesystem/filesystem_traits.hpp:; +* canonicalised '.' and '..'-trailing paths; +* refactored get_full_path defect() logic; +* fixed defect whereby too much of a source string was being copied over into buffer (leading to a seg-fault on UNIX); +* added is_socket(char_type const*); +* added is_link(char_type const*); +* added is_socket(stat_data_type const*); +* added find_next_path_name_separator(); +* added find_last_path_name_separator(); +* unixstl/filesystem/glob_sequence.hpp:; +* refactored way in which patterns and directories are pre-parsed; +* unixstl/filesystem/readdir_sequence.hpp:; +* readdir_sequence_exception now has a Directory property; +* now includes directory name in thrown exception; +* minor compatibility fixes; + + +## 1.9.113 - 4th June 2012 + +* Intel C/C++ 12 support; +* support for STLSOFT_COMPILE_VERBOSE; deprecation of _STLSOFT_COMPILE_VERBOSE; +* fixed unixstl::filesystem_traits::broken get_current_directory(); +* fixed unixstl::filesystem_traits::broken invalid_file_handle_value(); +* fixed unixstl::filesystem_traits::is_file() / is_directory() / is_link(); +* numerous improvements to unixstl::filesystem_traits::glob_sequence; +* unixstl::readdir_sequence correction to elide sockets from search results; +* winstl/time/conversion_functions.h renaming (and deprecation) of non-standard C function names; +* stlsoft/internal/cccap/gcc.h:; +* added STLSOFT_GCC_VER; +* stlsoft/shims/access/string/std/exception.hpp:; +* strengthened contract of implementation function; +* stlsoft/stlsoft.h:; +* reworking of use of STLSOFT_COMPILE_VERBOSE; deprecation of _STLSOFT_COMPILE_VERBOSE; +* stlsoft/string/special_string_instance.hpp:; +* trivial change; +* stlsoft/util/std/library_discriminator.hpp:; +* unixstl/filesystem/filesystem_traits.hpp:; +* fixed broken get_current_directory(); +* corrected return value of invalid_file_handle_value() : now returns -1, rather than 0; +* corrected inappropriate flag testing to identify files/directories/links; +* unixstl/filesystem/glob_sequence.hpp:; +* correct elision (or not) of dots directories, based on whether pattern contains wildcards and on whether matchPeriod is specified; +* fixed defect; +* simplified implementation, and now elides non-directory, non-file types (e.g. sockets); +* no longer specifies noSort by default; +* removed some dead code; +* clarified user-definable feature selection instructions; +* correct handling of UNIXSTL_GLOB_SEQUENCE_DONT_TRUST_MARK; +* changed internal API; +* corrected rarely encountered defect in eliding dots directories; +* fixed erroneous 1-param ctor; +* minor refactoring; +* unixstl/filesystem/readdir_sequence.hpp:; +* forward compatibility; +* correction for presence of sockets (non-Windows only); +* winstl/registry/reg_key.hpp:; +* const-correctness on REG_MULTI_SZ values; +* winstl/time/conversion_functions.h:; +* conversion of deprecated winstl__??? form to winstl_C_??? form; +* trivial formatting changes; +* added documentation markup; +* winstl/winstl.h:; +* Intel C/C++ 12 compatibility; + + +## 1.9.112 - 7th February 2012 + +* added winstl_C_format_message_strerror_a(), an analogue of strerror() for Windows API "error" codes; +* adjusted discrimination of exception-support macros, based on presence of GCC compiler's __EXCEPTIONS symbol; +* minor VC++ compatibility fix for stlsoft/shims/access/string/std/exception.hpp; +* stlsoft/internal/cccap/gcc.h:; +* stlsoft/shims/access/string/std/exception.hpp:; +* VC++-compatibility; +* winstl/error/error_functions.h:; + + +## 1.9.111 - 30th November 2011 + +* fix for GCC 4.5+ unixstl::filesystem_traits; +* unixstl/filesystem/filesystem_traits.hpp:; +* filesystem_traits::create_directory() 1-parameter overload now passes mode to 2-parameter overload; + + +## 1.9.110 - 25th November 2011 + +* fix for GCC 4.5+ unixstl::filesystem_traits; +* added result_code_type to both unixstl::system_traits and winstl::system_traits; +* correction(s)/enhancement(s) to which of MFCSTL's string access shim headers are automatically included; +* added discrimination of new pre-processor symbol PLATFORMSTL_NO_PLATFORM_NAMESPACE, to ease dependent library implementation; +* avoidance of false memory-leak reports in use of stlsoft::truncation_test; +* stlsoft/conversion/truncation_test.hpp:; +* workaround to avoid false memory-leak reports in certain circumstances (seen when using platformstl::file_lines); +* mfcstl/shims/access/string.hpp:; +* added inclusion for #include ; +* corrected inclusions to #include ; +* mfcstl/shims/access/string/cwnd.hpp:; +* corrected defects in definitions of CWnd-related overloads of c_str_len() shims; +* platformstl/platformstl.h:; +* added discrimination of PLATFORMSTL_NO_PLATFORM_NAMESPACE; +* unixstl/filesystem/filesystem_traits.hpp:; +* fix for GCC 4.5+ issue (returning NULL for file-handle type (int)); +* unixstl/system/system_traits.hpp:; +* added result_code_type (as we're trying to remove the presence of the misleading word "error" as much as possible); +* winstl/system/system_traits.hpp:; + + +## 1.9.109 - 13th August 2011 + +* added rbegin()/rend() to stlsoft::frequency_map<>; +* added push_n() to stlsoft::frequency_map<>; +* refactored throw statement(s) in terms of STLSOFT_THROW_X() throughout; +* added reset() method to stlsoft::shared_ptr<>; +* added various STLSoft deprecation macros; +* added is_path_rooted(), is_path_absolute(), and is_path_UNC() methods to unixstl::filesystem_traits<>; +* added two-parameters overloads of is_path_rooted(), is_path_absolute(), and is_path_UNC() methods to winstl::filesystem_traits<>; +* include/winstl/error/error_functions.h: substantial refactoring of format_message()-family of functions (and their C analogues); +* include/stlsoft/containers/frequency_map.hpp:; +* added push_n() (rudimentary implementation); +* trivial changes; +* added rbegin()/rend(); +* include/stlsoft/conversion/truncation_cast.hpp:; +* include/stlsoft/error/throw_policies.hpp:; +* refactored throw statement(s) in terms of STLSOFT_THROW_X(); +* include/stlsoft/functional/composite_predicates.hpp:; +* trivial formatting changes; +* documentation changes; +* include/stlsoft/smartptr/shared_ptr.hpp:; +* added reset() method; +* include/stlsoft/stlsoft.h:; +* added STLSOFT_DECLARE_DEPRECATION(); +* added STLSOFT_DECLARE_DEPRECATION_MESSAGE(); +* added STLSOFT_DECLARE_FUNCTION_DEPRECATION(); +* added STLSOFT_DECLARE_FUNCTION_DEPRECATION_IN_FAVOUR_OF(); +* added STLSOFT_DECLARE_MACRO_DEPRECATION(); +* added STLSOFT_DECLARE_MACRO_DEPRECATION_IN_FAVOUR_OF(); +* include/stlsoft/string/string_view.hpp:; +* include/comstl/collections/enumeration_policies.hpp:; +* include/comstl/error/bad_interface_cast.hpp:; +* include/comstl/string/bstr.hpp:; +* include/comstl/util/value_policies.hpp:; +* include/comstl/util/variant.hpp:; +* include/rangelib/algorithms.hpp:; +* include/rangelib/integral_range.hpp:; +* include/unixstl/filesystem/directory_functions.hpp:; +* "safe string" compatibility; +* include/unixstl/filesystem/filesystem_traits.hpp:; +* added is_path_rooted() method; +* added is_path_absolute() method; +* added is_path_UNC() method; +* widestring uses iswalpha(); +* simplification/separation of Windows-emulation code; +* corrected maximum-path length calculation(s); +* include/unixstl/system/system_traits.hpp:; +* added implementations of str_n_compare_no_case() when emulating UNIX on Windows; +* include/winstl/error/error_desc.hpp:; +* reimplemented to new overload of format_message(), specifying flags to more precisely control behaviour; +* use of FORMAT_MESSAGE_IGNORE_INSERTS to resolve strings with inserts; +* application of new STLSoft deprecation features; +* include/winstl/error/error_functions.h:; +* renamed winstl_C_fmtmsg_find_last_good_a/w__ to winstl_C_fmtmsg_elide_message_a/w_; +* added winstl_C_format_message_from_module_to_allocated_buffer_a(); +* added winstl_C_format_message_from_module_to_allocated_buffer(); +* added new overload of format_message(); +* applying new deprecation macros; +* conditional elision of period; +* deprecated functions; +* reimplementing in terms of new functions; +* added winstl_C_FormatMessageA_INVOKE_for_alloc_(); +* added winstl_C_FormatMessageW_INVOKE_for_alloc_(); +* winstl_C_FormatMessageA_INVOKE_in_buffer_(); +* winstl_C_FormatMessageW_INVOKE_in_buffer_(); +* include/winstl/error/exceptions.hpp:; +* uses new format_message() function(s); +* include/winstl/filesystem/directory_functions.hpp:; +* include/winstl/filesystem/file_path_buffer.hpp:; +* trivial change; +* include/winstl/filesystem/filesystem_traits.hpp:; +* added two-parameter overload of is_path_absolute(); +* added two-parameter overload of is_path_rooted(); +* added two-parameter overload of is_path_UNC(); +* refactored internal implementation methods; +* include/winstl/filesystem/memory_mapped_file.hpp:; +* VC++ 9 compatibility; +* corrected behaviour (and updated class invariant) for non-exception compilation; +* now initialises m_lastStatusCode, so can be used in invariant; +* removed all possible uses of word 'error' and replaced with 'status code'; +* include/winstl/shims/access/string/time.hpp:; +* avoiding warnings (due to compiler not being able to see that STLSOFT_THROW_X() actually throws an exception, so the subsequent return is fatuous); +* include/winstl/system/system_traits.hpp:; +* pedantic change from HINSTANCE to HMODULE; +* include/winstl/winstl.h:; +* now issues #error if compiling with WIN64 defined absent definition of _WIN64; + + +## 1.9.108 - 31st January 2011 + +* changed erroneously named new unixstl::/winstl::filesystem_traits method's name from invalid_handle_value() to invalid_file_handle_value(); +* added third, defaulted, template parameter to stlsoft::frequency_map for specification of predicate; +* include/stlsoft/containers/frequency_map.hpp:; +* added third, defaulted, template parameter, allowing specification of predicate; +* include/unixstl/filesystem/filesystem_traits.hpp:; +* changed erroneously named new method's name from invalid_handle_value() to invalid_file_handle_value(); +* include/winstl/filesystem/filesystem_traits.hpp:; + + +## 1.9.107 - 30th January 2011 + +* added data() member to stlsoft::multibyte2wide and stlsoft::wide2multibyte; +* added data() member to winstl::multibyte2wide and winstl::wide2multibyte; +* improved performance of of c_str_len(_a|_w)() shim overloads of stlsoft::multibyte2wide and stlsoft::wide2multibyte; +* improved performance of of c_str_len(_a|_w)() shim overloads of winstl::multibyte2wide and winstl::wide2multibyte; +* added equal() method and operator ==/!=() non-member functions to unixstl::memory_mapped_file; +* added equal() method and operator ==/!=() non-member functions to winstl::memory_mapped_file; +* added non-member unixstl::swap() function for unixstl::memory_mapped_file; +* added non-member platformstl::swap() function for platformstl::memory_mapped_file; +* changed definition of unixstl::memory_mapped_file::size_type to be size_t; +* added invalid_handle_value() method to unixstl::filesystem_traits<>; +* added invalid_handle_value() method to winstl::filesystem_traits<>; +* added added get_file_size(stat_data_type const&) and get_file_size(stat_data_type const*) overloads to unixstl::filesystem_traits<>; +* added added get_file_size(stat_data_type const&) and get_file_size(stat_data_type const*) overloads to winstl::filesystem_traits<>; +* reduced dependencies on other string access shim overloads in winstl::error_desc; +* stlsoft/collections/associative_mapped_type_detector.hpp:; +* stlsoft/collections/collections.hpp:; +* stlsoft/containers/array_policies.hpp:; +* stlsoft/string/char_traits.hpp:; +* stlsoft/util/std/algorithm.hpp:; +* stlsoft/exceptions/active_end_iterator_exhaustion.hpp:; +* stlsoft/exceptions/contract_violation.hpp:; +* stlsoft/exceptions/external_iterator_invalidation.hpp:; +* stlsoft/exceptions/iteration_interruption.hpp:; +* stlsoft/exceptions/unrecoverable.hpp:; +* stlsoft/function_adaptors/ref2ptr.hpp:; +* stlsoft/functional/access_predicates.hpp:; +* trivial formatting changes; +* stlsoft/conversion/char_conversions.hpp:; +* added data() member; +* added size() member, which returns length of contents, not length of buffer (was off by 1); +* improved performance of c_str_len(_a|_w)() shim overloads; +* stlsoft/iterators/c_str_inserter.hpp:; +* documentation improvement; +* comstl/interface/bad_interface_cast.hpp:; +* comstl/interface/interface_cast.hpp:; +* comstl/interface/interface_traits.hpp:; +* unixstl/filesystem/filesystem_traits.hpp:; +* added invalid_handle_value() method; +* added get_file_size(stat_data_type const&) and get_file_size(stat_data_type const*) overloads; +* unixstl/filesystem/memory_mapped_file.hpp:; +* adds equal() method; +* adds operator ==() non-member function; +* adds operator !=() non-member function; +* adds swap() non-member function (in unixstl namespace); +* size_type is not defined to be size_t, which affects only the case of a 32-bit architecture on which the compiler supports 64-bit integers; the effect is to move runtime failures to compile-time (since it's not possible to map a range of memory whose size exceeds 32-bits on a 32-bit system); +* unixstl/synch/exceptions.hpp:; +* winstl/clipboard/exceptions.hpp:; +* winstl/control_panel/exceptions.hpp:; +* winstl/registry/defs.hpp:; +* winstl/registry/exceptions.hpp:; +* winstl/registry/shared_handles.hpp:; +* winstl/shell/memory_functions.h:; +* winstl/synch/exceptions.hpp:; +* winstl/synch/functions.hpp:; +* winstl/time/format_functions.h:; +* winstl/toolhelp/exceptions.hpp:; +* winstl/toolhelp/sequence_value_traits.hpp:; +* winstl/conversion/char_conversions.hpp:; +* winstl/error/error_desc.hpp:; +* reduced the amount of dependencies on other string access shim overloads; +* winstl/filesystem/filesystem_traits.hpp:; +* winstl/filesystem/memory_mapped_file.hpp:; +* added equal() method, and operator ==/!= non-member operators; +* added swap() in winstl namespace; + + +## 1.9.106 - 28th December 2010 + +* workaround for Intel compile error; +* include/winstl/error/exceptions.hpp:; + + +## 1.9.105 - 27th December 2010 + +* several new minor facilities in stlsoft::frequency_map; +* improved compiler-compatibility in stlsoft::multibyte2wide and stlsoft::wide2multibyte; +* WinSTL now recognises Win64 architecture when _WIN64 is defined even when WIN64 is not; +* stlsoft/containers/frequency_map.hpp:; +* added member function operator +=(); +* added non-member function operator +(); +* added total() method; +* added class invariant and enforcements; +* stlsoft/conversion/char_conversions.hpp:; +* GCC compatibility; +* stlsoft/shims/access/string/std/exception.hpp:; +* suppressed trivial unused warning; +* unixstl/filesystem/path.hpp:; +* minor refactoring, to avoid use of str_n_copy() and str_cat(); +* unixstl/filesystem/readdir_sequence.hpp:; +* refactored to remove use of str_n_copy(); +* winstl/filesystem/path.hpp:; +* trivial refactoring; +* winstl/window/functions.h:; +* VC++/-Wp64 warning suppression; +* winstl/winstl.h:; +* now recognises _WIN64 (without WIN64) when defining architecture as WINSTL_OS_IS_WIN64, and emits a pragma message nag (for supporting compilers); + + +## 1.9.104 - 22nd November 2010 + +* refactored wide string exception string access shim functions, to avoid so-called "deprecated" (standard) functions when using VC++; +* expanded internal buffers of shim strings for exception string access shims, from 10 to 100; +* include/stlsoft/shims/access/string/std/exception.hpp:; +* refactored wide-string string access shim functions, to avoid so-called "deprecated" (standard) functions when using VC++; + + +## 1.9.103 - 21st November 2010 + +* changed mechanism of discriminating Dinkumware standard library versions; +* added typedefs for path_a and path_w to introduce them into the platformstl namespace; +* include/platformstl/filesystem/path.hpp:; +* include/stlsoft/util/std/library_discriminator.hpp:; +* changed mechanism of discriminating Dinkumware standard library versions: for versions with VC++ 7.0+ the library pre-processor symbol _CPPLIB_VER is the trusted authority; + + +## 1.9.102 - 8th November 2010 + +* added wide string string access shims for std::exception; +* fixed infinite-recursion defects in ambient shim function definitions; +* other compatibility fixes; +* include/stlsoft/shims/access/string/std/exception.hpp:; +* include/stlsoft/util/std/library_discriminator.hpp:; +* fixed VC9 (in)compatibility (which occurred only when including *before* STLSoft header files); +* include/winstl/error/error_functions.h:; +* fixed incorrectly specified obsolete symbols; + + +## 1.9.101 - 30th September 2010 + +* stlsoft::transform_iterator can now support transformation to types that do not support default construction; +* fixed defect in stlsoft::transform_iterator; +* platformstl::basic_file_lines refactored, and exception-safety enhanced; +* winstl::memory_mapped_file refactored in preparation for substantial enhancement in 1.10; also no longer supports compilers that do not have native 64-bit integers; +* stlsoft/iterators/transform_iterator.hpp:; +* can now support transformation to types that do not support default construction; +* fixed nasty as anything defect in decrement operator; +* stlsoft/string/cstring_functions.hpp:; +* string_dup now responds robustly when out of memory used with a compiler that doesn't throw bad_alloc; +* stlsoft/string/simple_string.hpp:; +* string_traits<> specialisation for basic_simple_string now works with any basic_simple_string specialisation permutation, rather than just basic_simple_string; +* fix to defect in assign(cc*, size_t); +* platformstl/filesystem/file_lines.hpp:; +* trivial changes, ready for 1.10 changes; +* simplified refactoring, readying for 1.10; +* exception-safety correction; +* getting ready for major refactoring in 1.10; +* winstl/error/error_functions.h:; +* added character-encoding independent symbols; +* conversion of deprecated winstl__??? form to winstl_C_??? form; +* winstl/filesystem/memory_mapped_file.hpp:; +* no longer supports compilers that do not have native 64-bit integers; +* final refactoring, ready for splitting in STLSoft 1.10; +* now allows for offset+requestSize for both 32-bit and 64-bit operation; +* benign change of casting syntax, in order to support forthcoming separation into (C) source files in STLSoft 1.10; +* winstl/system/console_functions.h:; +* benign changes to winstl_C_get_console_width() to aid debugging; +* winstl/winstl.h:; +* added INVALID_SET_FILE_POINTER; + + +## 1.9.100 - 12th August 2010 + +* added stlsoft/iterators/common/string_concatenation_flags.hpp; +* string_concatenator_iterator now strictly skips separator insertion for empty elements if no flags are specified, and always inserts separator if string_concatenation_flags::AlwaysSeparate is specified; +* added performance_counter_init::get_period_and_restart() method; +* added STLSOFT_CC_CDECL_VALUE, STLSOFT_CC_FASTCALL_VALUE, STLSOFT_CC_STDCALL_VALUE; +* special_string_instance now uses atomic_int_type; +* string_tokeniser iterator dereference operator changed to disallow return of mutable instance; +* string_view has improved comparison algorithm; +* added 3-, 4-, and 5-parameter overloads of stlsoft::minimum() and stlsoft::maximum(); +* various fixes and enhancements to platformstl::file_lines; +* added size() and empty() methods to winstl::environment_variable; +* implemented winstl::system_traits::str_n_compare_no_case(); +* stlsoft/algorithms/pod.hpp:; +* refactored, to remove inappropriate constraints; +* stlsoft/iterators/common/string_concatenation_flags.hpp:; +* stlsoft/iterators/string_concatenator_iterator.hpp:; +* now strictly skips separator insertion for empty elements if no flags are specified, and always inserts separator if string_concatenation_flags::AlwaysSeparate is specified; +* stlsoft/performance/performance_counter_init.hpp:; +* added get_period_and_restart() method; +* stlsoft/stlsoft.h:; +* added STLSOFT_CC_CDECL_VALUE; +* added STLSOFT_CC_FASTCALL_VALUE; +* added STLSOFT_CC_STDCALL_VALUE; +* stlsoft/string/special_string_instance.hpp:; +* minor change to avoid possible undefined-behaviour; +* stlsoft/string/string_tokeniser.hpp:; +* iterator dereference operator changed to disallow return of mutable instance; +* stlsoft/string/string_view.hpp:; +* improved comparison algorithm; +* performance improvement in equal(class_type const&) method; +* stlsoft/util/constraints.hpp:; +* compiler compatibility; +* compatibility; +* workaround for pedantic warnings; +* stlsoft/util/minmax.hpp:; +* 3-, 4-, and 5-parameter overloads; +* comstl/util/rot_functions.h:; +* trivial commenting changes; +* platformstl/filesystem/file_lines.hpp:; +* 64-bit compatibility; +* corrects the determination of whether to discard the mapping to work on the first non-empty string, since it will fault if the first line in a mapped file is empty but any others are not; +* conversion constructor is now explicit; +* added private declaration of constructor template to prevents the conversion constructor from being invoked on an instance of a different specialisation; +* allows wider range of string types to be used, in particular those that are copy-constructible but do not provide assign() methods; +* unixstl/dl/module.hpp:; +* includes STLSoft's main shims header, to at least allow GCC to see std::string arguments without hassle; +* added typedefs to make compatible with get_module_handle() shim (not yet complete for UNIXSTL); +* surrounding template methods with #ifdefs; +* throw() for unload() method(s); +* unixstl/filesystem/filesystem_traits.hpp:; +* GCC (on Windows) compatibility; +* added missing member constant pathComparisonIsCaseSensitive to specialisations; +* unixstl/filesystem/path.hpp:; +* ensures push_ext() is wide-string compatible; +* winstl/dl/module.hpp:; +* documentation markup; +* winstl/filesystem/absolute_path.hpp:; +* winstl/filesystem/current_directory.hpp:; +* winstl/system/module_directory.hpp:; +* winstl/system/module_filename.hpp:; +* winstl/filesystem/filesystem_traits.hpp:; +* winstl/filesystem/path.hpp:; +* winstl/system/console_functions.h:; +* winstl__get_console_width() => winstl_C_get_console_width(); +* winstl__get_console_window() => winstl_C_get_console_window(); +* minor improvements to use of casts; +* winstl/system/environment_variable.hpp:; +* added size() method; +* added empty() method; +* winstl/system/searchpath_sequence.hpp:; +* winstl/system/system_directory.hpp:; +* added atomic_int_type; +* winstl/system/system_traits.hpp:; +* implementation(s) of str_n_compare_no_case(); +* winstl/system/windows_directory.hpp:; +* winstl/winstl.h:; +* added ws_intptr_t; +* added ws_sintptr_t; +* added ws_uintptr_t; + + +## 1.9.99 - 21st June 2010 + +* added filesystem_traits::str_fs_compare() (UNIXSTL & WinSTL); +* added filesystem_traits::str_fs_n_compare() (UNIXSTL & WinSTL); +* added str_n_compare_no_case declaration to system_traits (UNIXSTL & WinSTL); +* added assoc_select_first() and assoc_select_second() creator functions for associative_select_iterator; +* incorporated Manfred Ehrhart's fixes for associative_select_iterator; +* Borland/GCC-compatibility fixes; +* GCC-compatibility fixes; +* nullptr support correction for VC++; +* various minor fixes; +* stlsoft/error/error_desc.hpp:; +* stlsoft/string/special_string_instance.hpp:; +* stlsoft/filesystem/read_line.hpp:; +* required disambiguation, via separating readers from implementation; +* stlsoft/internal/cccap/msvc.h:; +* stlsoft/iterators/associative_select_iterator.hpp:; +* added assoc_select_first() function; +* added assoc_select_second() function; +* removed the need to be explicit, to allow for assignment-syntax initialisation; +* incorporate (after inexcusable delay) Manfred Ehrhart's fixes, addressing inappropriate member type and defect in select_second(); +* unixstl/filesystem/directory_functions.hpp:; +* improved documentation for remove_directory_recurse(); +* unixstl/filesystem/filesystem_traits.hpp:; +* added filesystem_traits::str_fs_compare(); +* added filesystem_traits::str_fs_n_compare(); +* unixstl/system/system_traits.hpp:; +* added str_n_compare_no_case declaration to system_traits; +* winstl/conversion/char_conversions.hpp:; +* winstl/filesystem/directory_functions.hpp:; +* winstl/filesystem/filesystem_traits.hpp:; +* winstl/filesystem/findvolume_sequence.hpp:; +* adds missing inclusion of shims header file(s); +* winstl/system/system_traits.hpp:; +* documentation markup; + + +## 1.9.98 - 7th June 2010 + +* added range overload of stlsoft::read_line(), so can read lines from an iterator range; +* added nullptr (C++0x) support for VC++ 10; +* added swap() method to stlsoft::basic_shim_string; +* added 3, 4, 5, and 6-split overloads to stlsoft::split(); +* added sized-string ctor, data() and size() methods, and string access shims (to simplify xTests-based unit-testing, if nothing else) to stlsoft::exception_string; +* added VARIANT_BOOL overload to comstl::method_cast(); +* added platformstl::file_lines empty() method; +* separated PlatformSTL's atomic types into separate file platformstl/synch/atomic_types.h; +* separated UNIXSTL's atomic types into separate file unixstl/synch/atomic_types.h; +* separated WinSTL's atomic types into separate file winstl/synch/atomic_types.h; +* fixed winstl::memory_mapped_file to handle case where an offset is specified but there are 0 remaining bytes in the file to be mapped at that location: constructs an instance with 0 size; +* fixed potential memory leak of format-message-string if windows_exception creation throws an exception; +* moved COMSTL_CCH_GUID to comstl/comstl.h from comstl/shims/access/string/guid.hpp; +* adjusted winstl::drophandle_sequence for Win64 compatibility; +* adjusted winstl::version_info for Win64 compatibility; +* various components no longer rely on operator += of exception_string type, in preparation for 1.10 versions; +* stlsoft/containers/frequency_map.hpp:; +* documentation markup; +* stlsoft/error/error_desc.hpp:; +* forwards and backwards compatibility with basic_shim_string; +* stlsoft/filesystem/read_line.hpp:; +* added range overload of read_line(); +* stlsoft/internal/cccap/msvc.h:; +* stlsoft/smartptr/ref_ptr.hpp:; +* formatting; +* stlsoft/string/shim_string.hpp:; +* stlsoft/string/shim_string_vc5_.hpp:; +* added swap() method; +* stlsoft/string/split_functions.hpp:; +* added 5 and 6 split overloads; +* added 3 and 4 split overloads; +* stlsoft/util/exception_string.hpp:; +* removed all mutating methods and several constructors, to simplify exception_string: all dependent code should now use exception_string_creator; +* added sized-string constructor; +* string access shims (useful for unit-testing, if nothing else); +* added data(); +* now all member and non-member functions are defined in terms of char_type; +* added size() method; +* stlsoft/util/forward_enums.hpp:; +* changed all double underscores; +* comstl/comstl.h:; +* added COMSTL_PTR_2_REF(); +* comstl/conversion/interface_cast.hpp:; +* comstl/conversion/method_cast.hpp:; +* added VARIANT_BOOL overload; +* comstl/error/excepinfo_functions.h:; +* comstl/shims/access/string/variant.hpp:; +* comstl/util/variant.hpp:; +* bstr_functions.h -> BSTR_functions.h; +* comstl/shims/access/string/guid.hpp:; +* comstl/string/bstr.hpp:; +* comstl/util/guid.hpp:; +* adds missing include (to stlsoft/util/std_swap.hpp); +* platformstl/filesystem/file_lines.hpp:; +* added empty() method; +* platformstl/synch/atomic_functions.h:; +* corrected include guard symbols; +* platformstl/synch/atomic_types.h:; +* unixstl/error/exceptions.hpp:; +* no longer relies on operator += of exception_string type, in preparation for 1.10 versions; +* unixstl/synch/atomic_functions.h:; +* unixstl/synch/atomic_types.h:; +* winstl/dl/dl_call.hpp:; +* winstl/error/exceptions.hpp:; +* preparation for STLSoft 1.10; +* whitespace; +* fixed potential memory leak if exception-creation throws an exception; +* winstl/filesystem/memory_mapped_file.hpp:; +* now handles case where an offset is specified but there are 0 remaining bytes in the file to be mapped at that location: constructs an instance with 0 size; +* winstl/performance/threadtimes_counter.hpp:; +* winstl/system/system_version.hpp:; +* winstl/shell/drophandle_sequence.hpp:; +* winstl/system/version_info.hpp:; +* Win64 compatibility; +* winstl/synch/atomic_functions.h:; +* winstl/synch/atomic_types.h:; +* winstl/synch/spin_mutex.hpp:; +* atomic_int_type is now winstl::atomic_int_t, rather than ws_sint32_t; + + +## 1.9.97 - 4th April 2010 + +* added stlsoft::copy_preinc() and stlsoft::copy_postinc() algorithms; +* added str_set() method to unixstl::/winstl::system_traits; +* added unixstl/shims/conversion/to_uint64/stat.hpp; +* added missing widestring specialisation of inetstl::filesystem_traits::is_path_name_separator(); +* stlsoft::basic_error_desc synthesises widestring functionality if wcserror() is not available; +* exposes widestring version of platformstl::system_traits from UNIXSTL; +* comstl::variant compatibility with exception-support disabled; +* removed erroneous definitions of strtol(), strtoul(), strtod(); +* added missing 'mode' parameter to unixstl::module::load(), and uses 'mode' parameter passed to constructor template; +* typename corrections to platformstl::basic_file_path_buffer and platformstl::basic_path; +* improved discrimination of Visual C++ 9 / 10; +* fixed defective arithmetic in unixstl::/winstl::memory_mapped_file; +* refactored implementation of winstl::reg_key::create_key() to avoid infinite loop faults; +* stlsoft/algorithms/debug.hpp:; +* copy_preinc(); +* copy_postinc(); +* stlsoft/error/error_desc.hpp:; +* synthesises widestring functionality - in terms of strerror() - if not available as wcserror (or "safe string" equivalent); +* stlsoft/std/cstdlib.hpp:; +* removed erroneous definitions of strtol(), strtoul(), strtod(): they used string access shims to elicit the string form of their arguments, and returned a pointer into the parsed string (which may no longer exist by the time the function returns); +* added strtol(char const*, ...) and strtol(wchar_t const*, ...); +* added strtoul(char const*, ...) and strtoul(wchar_t const*, ...); +* added strtod(char const*, ...) and strtod(wchar_t const*, ...); +* stlsoft/util/std/library_discriminator.hpp:; +* better discrimination of VC++ 9 & 10; +* comstl/collections/enumerator_sequence.hpp:; +* minor warning workaround; +* comstl/util/variant.hpp:; +* compatibility with exception-support disabled; +* inetstl/filesystem/filesystem_traits.hpp:; +* added missing is_path_name_separator for wide specialisation; +* platformstl/filesystem/file_path_buffer.hpp:; +* platformstl/filesystem/path.hpp:; +* correct use of typename to indicate dependent types in default template arguments; +* platformstl/system/system_traits.hpp:; +* exposes wide version from UNIXSTL; +* unixstl/dl/module.hpp:; +* added missing 'mode' parameter to load(); +* used 'mode' parameter passed to constructor template; +* unixstl/filesystem/memory_mapped_file.hpp:; +* fixed defective arithmetic when validating non-0 request size; +* unixstl/filesystem/path_functions.hpp:; +* refactored implementation; +* unixstl/shims/conversion/to_uint64/stat.hpp:; +* unixstl/synch/atomic_functions.h:; +* unixstl/synch/util/features.h:; +* preparation for future refinement; +* unixstl/system/system_traits.hpp:; +* str_set() method; +* other widestring compatibility changes; +* winstl/filesystem/memory_mapped_file.hpp:; +* winstl/filesystem/path_functions.hpp:; +* minor restructuring; +* winstl/registry/reg_key.hpp:; +* refactored implementation of create_key() to avoid infinite loop fault in case of passing string types of non-matching character encodings; +* winstl/system/system_traits.hpp:; + + +## 1.9.96 - 10th March 2010 + +* Visual C++ 10 compatibility; +* include/stlsoft/internal/cccap/msvc.h:; +* VC++ 10 compatibility; +* include/stlsoft/stlsoft.h:; +* Visual C++ 10 support; +* include/stlsoft/util/std/iterator_helper.hpp:; +* added support for Dinkumware 10 (as well as making explicit support for Dinkumware 8 & 9); +* include/stlsoft/util/std/library_discriminator.hpp:; +* refactored Dinkumware detection, to discriminate 8, 9 and 10; + + +## 1.9.95 - 7th March 2010 + +* minor interface modifications to comstl::com_exception; +* include/comstl/error/exceptions.hpp:; +* added get_hr(); +* deprecated hr(); + + +## 1.9.94 - 5th March 2010 + +* corrected omission of inline from swap for unixstl::memory_mapped_file; +* corrected omission of inline from swap for winstl::memory_mapped_file; +* include/unixstl/filesystem/memory_mapped_file.hpp:; +* include/winstl/filesystem/memory_mapped_file.hpp:; + + +## 1.9.93 - 15th February 2010 + +* STLSOFT_CF_NAMESPACE_SUPPORT is now only defined in C++ compilation units; +* added WINSTL_CONST_MAX_PATH, which is now used instead of _MAX_PATH throughout winstl; +* include/stlsoft/internal/cccap/borland.h:; +* include/stlsoft/internal/cccap/como.h:; +* include/stlsoft/internal/cccap/dmc.h:; +* include/stlsoft/internal/cccap/gcc.h:; +* include/stlsoft/internal/cccap/intel.h:; +* include/stlsoft/internal/cccap/msvc.h:; +* include/stlsoft/internal/cccap/mwerks.h:; +* include/stlsoft/internal/cccap/unknown.h:; +* include/stlsoft/internal/cccap/vectorc.h:; +* include/stlsoft/internal/cccap/watcom.h:; +* include/comstl/error/errorinfo_desc.hpp:; +* cast change; +* include/winstl/winstl.h:; +* added WINSTL_CONST_MAX_PATH; +* include/winstl/filesystem/file_path_buffer.hpp:; +* include/winstl/filesystem/filesystem_traits.hpp:; +* include/winstl/filesystem/findvolume_sequence.hpp:; +* include/winstl/filesystem/path.hpp:; +* include/winstl/shell/browse_for_folder.hpp:; +* include/winstl/shell/drophandle_sequence.hpp:; +* include/winstl/shell/file_operations.hpp:; +* include/winstl/system/searchpath_sequence.hpp:; +* include/winstl/system/system_traits.hpp:; +* include/winstl/system/version_info.hpp:; +* now uses WINSTL_CONST_MAX_PATH; + + +## 1.9.92 - 11th February 2010 + +* added inetstl::filesystem_traits<>::is_path_name_separator(); +* inetstl/filesystem/filesystem_traits.hpp:; +* added is_path_name_separator(); + + +## 1.9.91 - 2nd February 2010 + +* introducing unixstl::/winstl::remove_directory_recurse() into platformstl namespace; +* removal of dependency on so-called "unsafe" string functions; +* elimination of calls to memcpy() in path classes; +* throwing of exception in make_absolute() if failed to get full path; +* platformstl/filesystem/directory_functions.hpp:; +* unixstl/filesystem/path.hpp:; +* elimination of calls to memcpy(); +* winstl/filesystem/directory_functions.hpp:; +* winstl/filesystem/path.hpp:; + + +## 1.9.90 - 21st January 2010 + +* fixed defect in unixstl::filesystem_traits<>::get_full_path_name() when passed "."; +* header ordering workaround for GCC 3.4's strange COM headers on Windows; +* include/unixstl/filesystem/filesystem_traits.hpp:; +* fixed defect in get_full_path_name() when passed "."; +* include/winstl/winstl.h:; +* header ordering, for GCC 3.4; + + +## 1.9.89 - 19th January 2010 + +* include/stlsoft/error/error_desc.hpp:; +* fixed defective stream inserter definition ACESTL:; +* include/acestl/reactor/custom_event_handler.hpp:; +* corrected warning suppression push-pop UNIXSTL:; +* include/unixstl/filesystem/filesystem_traits.hpp:; +* include/unixstl/filesystem/glob_sequence.hpp:; +* include/unixstl/filesystem/path_functions.hpp:; +* include/unixstl/filesystem/readdir_sequence.hpp:; +* include/unixstl/system/system_traits.hpp:; +* safe string compatibility; + + +## 1.9.88 - 12th January 2010 + +* stlsoft/internal/cccap/unknown.h:; +* changed to "modern" form of feature discrimination mechanisms; +* stlsoft/conversion/truncation_test.hpp:; +* truncation_test is now a function template (rather than a macro to an internal function); +* stlsoft/internal/cccap/msvc.h:; +* C compatibility fixes; +* stlsoft/util/std/iterator_helper.hpp:; +* compatibility between reverse_iterator and const_reverse_iterator COMSTL:; +* comstl/comstl.h:; +* comstl/error/errorinfo_functions.h:; +* compatibility with GCC 3.4; +* comstl/util/rot_functions.h:; +* conversion of deprecated comstl__??? form to comstl_C_??? form; +* comstl/util/variant.hpp:; +* added ctors for unsigned integral types; +* full handling of integers MFCSTL:; +* mfcstl/shims/access/string/cwnd.hpp:; +* removing use of reserved symbols UNIXSTL:; +* unixstl/filesystem/file_path_buffer.hpp:; +* added max_size() static method; +* unixstl/filesystem/path.hpp:; +* changed max_size() method to be static WinSTL:; +* winstl/controls/listview_sequence.hpp:; +* introduction of lvs_string_t from global namespace (where it should not be defined) to the winstl namespace (where it should be); +* winstl/error/exceptions.hpp:; +* added winstl::access_exception; +* winstl/filesystem/file_path_buffer.hpp:; +* winstl/filesystem/findfile_sequence.hpp:; +* added throwOnAccessFailure search flag, along with supporting code; +* winstl/filesystem/path.hpp:; +* changed max_size() method to be static; +* winstl/performance/threadtimes_counter.hpp:; +* refactored in preparation of throwing of exceptions when timing information cannot be elicited; +* winstl/shims/access/string/HWND.hpp:; +* removing use of reserved symbols; +* winstl/winstl.h:; +* added MAKEINTRESOURCEA; +* added MAKEINTRESOURCEW; + + +## 1.9.87 - 11th August 2009 + +* trivial formatting changes; + + +## 1.9.86 - 24th July 2009 + +* include/acestl/acestl.hpp:; +* include/atlstl/atlstl.hpp:; +* include/comstl/comstl.h:; +* include/dotnetstl/dotnetstl.hpp:; +* include/inetstl/inetstl.h:; +* include/mfcstl/mfcstl.hpp:; +* include/unixstl/unixstl.h:; +* include/winstl/error/error_desc.hpp:; +* include/winstl/winstl.h:; +* include/wtlstl/wtlstl.hpp:; +* minor documentation change STLSoft:; +* include/stlsoft/functional/method_adaptors.hpp:; +* thiscall overloads of mem_fun_ref() and mem_fun_ref_void(); +* include/stlsoft/internal/cccap/borland.h:; +* include/stlsoft/internal/cccap/como.h:; +* include/stlsoft/internal/cccap/dmc.h:; +* include/stlsoft/internal/cccap/mwerks.h:; +* include/stlsoft/internal/cccap/vectorc.h:; +* include/stlsoft/internal/cccap/watcom.h:; +* added compiler feature symbol STLSOFT_CF_THISCALL_SUPPORTED; +* include/stlsoft/internal/cccap/gcc.h:; +* include/stlsoft/internal/cccap/msvc.h:; +* trivial formatting changes; +* include/stlsoft/internal/cccap/intel.h:; +* changed compiler discrimination features to STLSoft 1.10 mode; +* include/stlsoft/smartptr/scoped_handle_borland_.hpp:; +* Borland 5.5(.1) compatibility PlatformSTL:; + + +## 1.9.85 - 16th June 2009 + +* added merge() and swap() to stlsoft::frequence_map class template; +* winstl::listview_sequence::value_type::string_type (aka lvs_string_t) is now overrideable via the preprocessor, in preparation for future expansion of flexibility; +* atlstl/window/enhanced_window.hpp:; +* refactored child dialog handle elicitation to single private method, in preparation of future increased flexibility; +* stlsoft/containers/frequency_map.hpp:; +* added merge() method, which adds the entries and counts to the map; +* added swap(); +* changed default count type to unsigned int for VC++ pre-7.0, to avoid incompatibilities with other libraries; +* stlsoft/error/error_desc.hpp:; +* nothrow on get_description() and c_str(); +* winstl/controls/listview_sequence.hpp:; +* lvs_string_t may now be overridden via the pre-processor, in preparation for future expansion of flexibility; + + +## 1.9.84 - 23rd May 2009 + +* fixed defect in winstl::basic_reg_key::set_value() for REG_MULTI_SZ values (widestring only); +* "safe string" library and widestring support for stlsoft::basic_error_desc; +* various 64-bit LP64 compatibility changes; +* include/comstl/comstl.h:; +* documentation enhancements; +* include/stlsoft/error/error_desc.hpp:; +* "safe string" library support; +* widestring support; +* include/stlsoft/memory/auto_buffer.hpp:; +* include/stlsoft/string/string_traits.hpp:; +* include/stlsoft/util/integral_printf_traits.hpp:; +* include/stlsoft/util/limit_traits.h:; +* include/stlsoft/util/sign_traits.hpp:; +* 64-bit (LP64) compatibility; +* include/winstl/registry/reg_key.hpp:; +* fixed defect in set_value_() overload for REG_MULTI_SZ values (widestring only); + + +## 1.9.83 - 19th May 2009 + +* fixed defects in winstl::basic_reg_value::value_sz()/value_multi_sz(); +* fixed defects in exception-safety in winstl::basic_reg_value and winstl::basic_reg_key; +* various minor fixes and documentation mods; +* include/winstl/registry/reg_key.hpp:; +* corrected exception-safety defect (by reversing the order of m_name and m_hkey); +* added required dependency on ; +* documentation simplification; +* include/winstl/registry/reg_traits.hpp:; +* added reg_dup_key(); +* deprecated key_dup(); +* linearising behaviour between operating systems; +* tightening type-conversions; +* include/winstl/registry/reg_value.hpp:; +* modifications to value_multi_sz() and value_sz() to avoid possible race conditions (with registry changes made by other processes); + + +## 1.9.82 - 15th May 2009 + +* added winstl::reg_traits<>::reg_delete_tree(); +* added IOStreams compatibility for winstl::findfile_sequence::value_type; +* include/winstl/filesystem/findfile_sequence.hpp:; +* added compatibility with IOStreams; +* include/winstl/registry/reg_traits.hpp:; +* added reg_delete_tree(); + + +## 1.9.81 - 7th May 2009 + +* now recognises __func__, provided by Sun Pro, via STLSOFT_CF_func_SYMBOL_SUPPORT; +* abstracts __FUNCTION__ support to STLSOFT_FUNCTION_SYMBOL; +* include/stlsoft/internal/cccap/obsolete.h:; +* include/stlsoft/internal/cccap/sunpro.h:; +* added __func__ support detection; +* include/stlsoft/stlsoft.h:; +* added __func__ support detection, via STLSOFT_CF_func_SYMBOL_SUPPORT; +* added symbol for __FUNCTION__ or equivalent: STLSOFT_FUNCTION_SYMBOL; + + +## 1.9.80 - 6th May 2009 + +* now recognises support for variadic macros and #pragma once for later versions of Borland C/C++; +* SunPro compatibility improvements for UNIXSTL synchronisation components; +* fixes to defects in stlsoft::basic_simple_string at() and 5-parameter compare() methods; +* basic_path class templates (both UNIXSTL and WinSTL versions) now implement assignment operator differently to avoid possibilities of infinite loops (which can happen when a type with an opposing string encoding is used); +* correction to stlsoft::auto_buffer to ensure allocators are involved in swap() operations; +* correction to struct in_addr string access shims for compatibility with big-endian architectures; +* various changes for compatibility with "safe string" library; +* include/stlsoft/algorithms/std/alt.hpp:; +* "safe string" library compatibility (via a workaround that just ignores it wrt std::find()); +* include/stlsoft/internal/cccap/borland.h:; +* STLSOFT_CF_PRAGMA_ONCE_SUPPORT support; +* STLSOFT_CF_SUPPORTS_VARIADIC_MACROS support; +* include/stlsoft/iterators/null_output_iterator.hpp:; +* suppression of compiler warning; +* include/stlsoft/memory/auto_buffer.hpp:; +* now swaps allocators; +* include/stlsoft/string/simple_string.hpp:; +* more "safe string" compatibility; +* fixed defective 5-parameter compare() method; +* fixed defect in non-mutating version of at(), whereby specifying the index == length did not throw, but returned a reference to the terminating nul character (which is what the subscript operator should do (and does do)); +* include/stlsoft/string/split_functions.hpp:; +* trivial formatting change; +* include/inetstl/shims/access/string/std/in_addr.hpp:; +* use of ntohl(), so compatible with big-endian as well as little; +* compatibility with "safe string" library; +* include/unixstl/filesystem/path.hpp:; +* changed implementation of generic operator =() in order to avoid possibilities of infinite loops (which can happen when a type with an opposing string encoding is used); +* trivial documentation markup changes; +* include/unixstl/synch/process_mutex.hpp:; +* SunPro support (partially complete); +* include/unixstl/synch/thread_mutex.hpp:; +* include/winstl/filesystem/path.hpp:; + + +## 1.9.79 - 2nd May 2009 + +* UNIX compatibility for InetSTL; +* "safe string" library compatibility for InetSTL; +* include/inetstl/inetstl.h:; +* include/inetstl/error/exceptions.hpp:; +* include/inetstl/filesystem/filesystem_traits.hpp:; +* include/inetstl/filesystem/findfile_sequence.hpp:; +* include/inetstl/filesystem/ftpdir_sequence.hpp:; +* include/inetstl/filesystem/functionals.hpp:; +* include/inetstl/filesystem/searchspec_sequence.hpp:; +* include/inetstl/network/connection.hpp:; +* include/inetstl/network/session.hpp:; +* UNIX compatibility; +* include/inetstl/shims/access/string/std/in_addr.hpp:; +* compatibility with "safe string" library; + + +## 1.9.78 - 27th April 2009 + +* fixed serious defect in atlstl::copy_enumerator_impl::Reset(); +* stlsoft::shared_ptr now works correctly if fails to allocate counter variable in conditions where exception handling is not supported; +* stlsoft::c_str_data_a(struct fm const*) now correctly handles case where tm pointer is NULL; +* corrected behaviour of get_environment_variable for both UNIXSTL and WinSTL system_traits traits classes; +* various compiler compatibility fixes; +* various documentation corrections; +* stlsoft/iterators/ostream_iterator.hpp:; +* documentation corrections; +* stlsoft/shims/access/string/std/time.hpp:; +* c_str_data_a(struct tm const* t) now correctly handles NULL tm pointer; +* stlsoft/smartptr/shared_ptr.hpp:; +* now correctly handles failure to allocate the shared counter, even when compiling absent exceptions; +* atlstl/automation/enumerators.hpp:; +* fixed defect in Reset() - which did nothing! - that was introduced in STLSoft 1.9.1 beta 5 (!) upon transcription from the original, correct, Synesis Software proprietary source; +* minor documentation fixes; +* unixstl/filesystem/filesystem_traits.hpp:; +* removal of dependency of str(n)cpy()/wcs(n)cpy(), which causes VC++ 8+ to carp about "safety"; +* unixstl/system/system_traits.hpp:; +* corrected behaviour of get_environment_variable(); +* winstl/filesystem/memory_mapped_file.hpp:; +* CodeWarrior compatibility; +* winstl/system/system_traits.hpp:; + + +## 1.9.77 - 9th March 2009 + +* corrected invalid invariants in memory_mapped_file classes in UNIXSTL and WinSTL; +* include/unixstl/filesystem/memory_mapped_file.hpp:; +* fixed invalid invariant; +* include/winstl/filesystem/memory_mapped_file.hpp:; + + +## 1.9.76 - 6th March 2009 + +* added swap() methods to memory_mapped_file classes in UNIXSTL and WinSTL; +* corrected defect in VC++ detection of bad_alloc support (which only affects VC++ 6 or earlier); +* include/stlsoft/internal/cccap/msvc.h:; +* corrected detection of bad_alloc support; +* include/unixstl/filesystem/memory_mapped_file.hpp:; +* added swap() method, and std::swap() overload; +* include/winstl/filesystem/memory_mapped_file.hpp:; + + +## 1.9.75 - 26th February 2009 + +* tidied up COMSTL documentation; +* tidied up scoped_handle use in winstl::memory_mapped_file; +* added checks to detect at compile time accidental use of &stat_data with winstl::filesystem_traits<>::get_file_size(); +* fixed defect in winstl::basic_reg_value::value_sz(), whereby the nul-terminator is included in the resultant string length; +* tidied up winstl::basic_path, and added max_size() method; +* tidied up winstl::basic_commandline_parser, added substring-constructor, and changed subscript operator to allow indexing (but not use) of the end element; +* include/comstl/collections/collection_sequence.hpp:; +* include/comstl/collections/enumeration_policies.hpp:; +* include/comstl/collections/enumerator_sequence.hpp:; +* include/comstl/util/value_policies.hpp:; +* enhanced documentation markup; +* include/winstl/filesystem/filesystem_traits.hpp:; +* added private method declarations to prevent accidental use of get_file_size(HANDLE) as if it was get_file_size(&stat_data); +* include/winstl/filesystem/memory_mapped_file.hpp:; +* tidied up use of scoped_handle for compilers that struggle with it; +* include/winstl/filesystem/path.hpp:; +* added max_size() method; +* minor documentation markup enhancements; +* added precondition enforcement onto push() method; +* moved implementation of push(char_type*) into push_() worker method, in preparation for using ptr+len in public methods; +* include/winstl/registry/reg_value.hpp:; +* fixed defect in value_sz() method, whereby the resultant string length erroneously included the nul-terminator; +* include/winstl/system/commandline_parser.hpp:; +* removed \brief documentation markup tags; +* added additional ctor, taking length; +* renamed all internal member types to have trailing underscore; +* changed subscript operator to be able to index (but not use) the end element; + + +## 1.9.74 - 13th February 2009 + +* further implementation of special Borland version of stlsoft::scoped_handle; +* further workarounds to Borland code generation defects in stlsoft::basic_simple_string and platformstl::basic_file_lines; +* include/stlsoft/smartptr/scoped_handle_borland_.hpp:; +* implementation for scoped_handle; +* include/stlsoft/string/simple_string.hpp:; +* insertion of non-functioning code to cause Borland 6.1.x to generate correct code (in Pantheios, amongst others); +* include/platformstl/filesystem/file_lines.hpp:; +* workaround for Borland code generation defect; + + +## 1.9.73 - 3rd February 2009 + +* added partial support for Borland 5.9.x and 6.1.x; to support use of Borland with Pantheios; +* re-applied VC++ 7.1 workaround eroneously removed in 1.9.70; +* include/stlsoft/stlsoft.h:; +* support for Borland 5.9.x and 6.1.x; +* include/stlsoft/smartptr/scoped_handle.hpp:; +* proper support for Borland, via a separate implementation (in stlsoft/smartptr/scoped_handle_borland_.hpp); +* include/stlsoft/smartptr/scoped_handle_borland_.hpp:; +* include/winstl/filesystem/findfile_sequence.hpp:; +* workaround for VC++ 7.1 defect (requiring length() to return size_t, not member type size_type); + + +## 1.9.72 - 1st February 2009 + +* added char_copy() methods to filesystem_traits classes in UNIXSTL, as part of move away from "unsafe" string functions; +* fixed defect in winstl::squeeze_path() whereby wrong length is returned if buffer size is < 5 and the file length < buffer size; +* removes unwanted trailing slash in application directory from winstl::basic_searchpath_sequence; +* further work to remove dependency on "unsafe" string functions; +* include/comstl/shims/access/string/guid.hpp:; +* modified symbols that broke reserved naming rules; +* include/inetstl/filesystem/filesystem_traits.hpp:; +* added str_n_compare(); +* tidied up asserts; +* removed dependency on "unsafe" string library functions; +* include/inetstl/filesystem/findfile_sequence.hpp:; +* added optional length parameter to get_directory(); +* include/unixstl/filesystem/file_path_buffer.hpp:; +* tidying up; +* include/unixstl/filesystem/filesystem_traits.hpp:; +* tidying up, and removal of declarations of functions (from wide char specialisation) that are not implemented; +* include/unixstl/filesystem/path.hpp:; +* removal of dependency on so-called "unsafe" string functions; +* simplification of implementation; +* include/unixstl/system/system_traits.hpp:; +* added char_copy(); +* include/winstl/error/exceptions.hpp:; +* minor mods; +* include/winstl/filesystem/findvolume_sequence.hpp:; +* removed dependency on "unsafe" string functions; +* include/winstl/filesystem/path.hpp:; +* simplification; +* include/winstl/filesystem/path_functions.hpp:; +* fixed defect whereby if buffer size is < 5 and the file length < buffer size, the wrong length is returned; +* now implemented in terms of system_traits<>::char_copy(); +* include/winstl/system/searchpath_sequence.hpp:; +* no longer dependent on "safe" string library; +* removes unwanted trailing slash on application directory; +* include/winstl/system/system_traits.hpp:; + + +## 1.9.71 - 28th January 2009 + +* fixed DMC++ incompatibility introduced in 1.9.70; +* include/winstl/filesystem/findfile_sequence.hpp:; +* added workaround for missing CO_E_PATHTOOLONG on DMC++; + + +## 1.9.70 - 25th January 2009 + +* improved stlsoft::find_next_token() function templates to ensure that all empty fields are reported to caller; +* added char_copy() methods to filesystem_traits classes in InetSTL and WinSTL, as part of move away from "unsafe" string functions; +* minor enhancements to platformstl::readdir_sequence, to disambiguate constructor overloads; +* removed all "unsafe" string functions from winstl::basic_findfile_sequence class template and supporting components; +* improved winstl::basic_path class template to ensure proper behaviour in corner cases of use of push() and pop() methods; +* include/stlsoft/string/tokeniser_functions.hpp:; +* fixed benign defects in find_next_token() overloads, whereby certain empty fields were not reported to caller; +* documentation enhancements; +* adding in more pre-condition enforcements; +* include/inetstl/filesystem/filesystem_traits.hpp:; +* char_copy() operations; +* include/platformstl/filesystem/readdir_sequence.hpp:; +* separation and disambiguation of constructor overloads; +* include/winstl/filesystem/findfile_sequence.hpp:; +* added defaulted parameter to get_directory() to retrieve the directory length; +* replaced all instances of so-called "unsafe" string functions with system_traits::char_copy(); +* include/winstl/filesystem/path.hpp:; +* various fixes to push() and push_sep(); +* corrected defects in pop(), seen in root directory paths, and paths involving UNC; +* include/winstl/system/system_traits.hpp:; +* added char_copy() to system_traits specialisations; +* trivial documentation markup modifications; + + +## 1.9.69 - 23rd January 2009 + +* improved robustness of winstl::path_squeeze; +* more "Safe String" library compatibility changes; +* include/winstl/filesystem/path.hpp:; +* now implemented in terms of memcpy(), rather than strcpy(), strcat(), etc; +* include/winstl/filesystem/path_functions.hpp:; +* making robust in light of corner cases; +* include/winstl/string/resource_string.hpp:; +* removal of unnecessary string access shim; + + +## 1.9.68 - 18th January 2009 + +* fix defect, and updated docs, for stlsoft::must_init utility class template; +* include/stlsoft/util/must_init.hpp:; +* fixed ambiguous operator +() bug; +* documentation fixes; + + +## 1.9.67 - 17th January 2009 + +* compatibility with GCC on Fedora on PPC; +* correction of semantics of null_allocator; +* include/stlsoft/stlsoft.h:; +* minor mods to documentation markup; +* include/stlsoft/internal/cccap/gcc.h:; +* PowerPC (Fedora Linux) compatibility fix (thanks to Sergey Nikulov); +* include/stlsoft/memory/null_allocator.hpp:; +* when exception support is enabled it throws std::bad_alloc; otherwise, requesting memory from it is a contract violation; + + +## 1.9.66 - 4th January 2009 + +* compatibility with GCC 4.3's pedantic precedence warnings; +* compatibility with SunPro compiler for limit_traits; +* include/stlsoft/internal/cccap/sunpro.h:; +* correcting Jon's surname; +* include/stlsoft/stlsoft.h:; +* include/stlsoft/util/limit_traits.h:; +* compatibility with SunPro compiler; + + +## 1.9.65 - 1st January 2009 + +* "Safe String" library compatibility changes; +* include/winstl/filesystem/filesystem_traits.hpp:; +* removal of dependency of str(n)cpy()/wcs(n)cpy(), which causes VC++ 8+ to carp about "safety"; +* removal of dependency of strcpy()/wcscpy(), which causes VC++ 8+ to carp about "safety"; +* include/winstl/synch/process_mutex.hpp:; +* trivial documentation modification; + + +## 1.9.64 - 28th December 2008 + +* fix to string access shims for VARIANT; +* include/comstl/shims/access/string/variant.hpp:; +* fixed defect seen with Borland, whereby conversion to multibyte string in c_str_VARIANT_proxy_a's implicit conversion operator was not carried out; + + +## 1.9.63 - 9th December 2008 + +* optimised stlsoft::basic_string_view::reserve(); +* enhanced compatibility for stlsoft::fixed_array_?d class templates; +* stlsoft/containers/fixed_arrays.hpp:; +* compatibility with VC++ /Za option for fixed arrays; +* stlsoft/string/simple_string.hpp:; +* optimised reserve() method so that it now does not alloc new buffer if requested size is less than current capacity; + + +## 1.9.62 - 1st December 2008 + +* fixed defect in interface_cast<> and try_interface_cast<>; +* improved compatibility with Visual C++ 9; +* speculative support for Intel C/C++ 11.0; +* fixed defect in winstl::to_SYSTEMTIME(DATE) overload; +* comstl/conversion/interface_cast.hpp:; +* fixed reference leak in smart pointer forms of interface_cast() and try_interface_cast(); +* comstl/conversion/method_cast.hpp:; +* minor tidying; +* stlsoft/internal/cccap/msvc.h:; +* now correctly determines that VC++ 9 requires STLSOFT_CF_FUNCTION_SIGNATURE_FULL_ARG_QUALIFICATION_REQUIRED; +* stlsoft/stlsoft.h:; +* speculatively supports Intel C/C++ 11.0; +* winstl/shims/conversion/to_SYSTEMTIME/DATE.hpp:; +* fixed defect - initialising unknown name - in non-exception mode; + + +## 1.9.61 - 19th November 2008 + +* better compatibility with SAPI.h for COMSTL's sapi_util.hpp; +* documentation markup improvements for a number of files; +* stlsoft/iterators/filter_iterator.hpp:; +* fixed up incorrect fwd-include guards; +* stlsoft/string/shim_string.hpp:; +* stlsoft/string/split_functions.hpp:; +* removed unnecessary iterator declaration; +* improved documentation markup; +* comstl/speech/sapi_util.hpp:; +* compatibility with sapi.h; +* mfcstl/shims/attribute/get_synch_handle.hpp:; +* documentation markup improvements; + + +## 1.9.60 - 27th October 2008 + +* added stlsoft::apply_const(); +* added stlsoft/conversion/m2w.hpp; +* stlsoft/stlsoft.h:; +* stlsoft/conversion/m2w.hpp: provides access to stlsoft::m2w converter class; + + +## 1.9.59 - 25th October 2008 + +* change in ATLSTL's property method helpers to avoid infinite loop in Visual C++ 6 problem when implementing property puts to CComBSTR; +* fixed compile error with GCC when using VARIANTs in C compilation units; +* atlsoft/automation/property_method_helpers.hpp:; +* fixed infinite loop defect in put_MemberValue(..., CComVariant const&, ...); now assigns directly and handles case whereby assignment fail; +* comstl/comstl.h:; +* refactored way in which VARIANT-manipulation macros are defined for C compilation to fix compile errors with GCC; + + +## 1.9.58 - 16th October 2008 + +* fixed major defect introduced in 1.9.52 to WinSTL's time string access shims; +* fixed minor defects in COMSTL's VARIANT string access shims; +* fixed defect in documentation generation whereby examples were omitted; +* reduced compilation dependencies in STLSoft's time string access shims; +* stlsoft/shims/access/string/time.hpp:; +* reduced include dependencies; +* comstl/shims/access/string/variant.hpp:; +* passed VARIANT_ALPHABOOL to all variant conversion routines; +* fixed defect whereby widestring and multibyte string lengths were assumed to be equal (by c_str_len_w() and c_str_len_a() being implemented in terms of c_str_len()); +* winstl/shims/access/string/time.hpp:; +* fixed defect whereby last character of converted date is truncated; + + +## 1.9.57 - 10th October 2008 + +* addition of missing const_reference member type in various Windows controls collection classes; +* C / C++ compatibility fixes for COMSTL; +* fix of minor non-standard name in winstl::int_to_string() supporting class; +* a large number of files were altered in minor ways, to do with whitespace and the placement of * and & symbols; +* several files' documentation markup was cleaned up; +* comstl/comstl.h:; +* added the macros COMSTL_ACCESS_VARIANT_MEM_BYPTR(), COMSTL_ACCESS_VARIANT_MEM_BYREF(), COMSTL_ACCESS_VARIANT_vt_BYPTR(), COMSTL_ACCESS_VARIANT_vt_BYREF(), COMSTL_ACCESS_VARIANT_decVal_BYPTR(), and COMSTL_ACCESS_VARIANT_decVal_BYREF(), which abstract the access of VARIANT members between C (incl. Standard C) and C++; +* comstl/util/DECIMAL_functions.h:; +* comstl/util/VARIANT_functions.h:; +* compatibility with Standard-C compilation (where anonymous unions and structures are not valid); +* winstl/conversion/int_to_string.hpp:; +* rename of non-standard symbol; +* winstl/controls/combobox_sequence.hpp:; +* winstl/controls/edit_line_sequence.hpp:; +* winstl/controls/listbox_data_sequence.hpp:; +* winstl/controls/listbox_sequence.hpp:; +* added const_reference member type; + + +## 1.9.56 - 1st October 2008 + +* a large number of minor enhancements to the documentation markup; +* fixes to defects to include guards in UNIXSTL; +* unixstl/filesystem/memory_mapped_file.hpp:; +* unixstl/performance/performance_counter.hpp:; +* unixstl/performance/processtimes_counter.hpp:; +* tidied up includes for UNIX emulation on Win32; +* fixed defect in forward-include guards for sys/mman.h, sys/resource.h and sys/time.h; +* unixstl/synch/sleep_functions.h:; + + +## 1.9.55 - 27th September 2008 + +* corrected defects in stlsoft::wide2multibyte and stlsoft::multibyte2wide conversion classes; +* fixes to various x64 defects related to use of inappropriate calling convention specifiers with use of dl_call; +* sundry other modifications in internal pre-processor facilities and small improvements to Watcom compatibility; +* stlsoft/stlsoft.h:; +* added internal pre-processor facilities; +* winstl/conversion/char_conversions.hpp; +* corrected defective effective size() method (inherited from parent) of multibyte2wide and wide2multibyte class templates, by hiding parent and defining in-class version of method; +* some Watcom compatibility; +* winstl/dl/dl_call.hpp:; +* winstl/system/pid_sequence.hpp:; +* winstl/system/process_module_sequence.hpp:; +* ensuring x64 compatibility with use of dl_call; +* winstl/filesystem/memory_mapped_file.hpp:; +* winstl/registry/reg_value.hpp:; +* winstl/registry/util/shared_handles.hpp:; +* fixes to x64 defects (contributed by Austin Ziegler); + + +## 1.9.54 - 15th September 2008 + +* added stlsoft::exception_string::truncate() method; +* removed dependency of UDATE for to_FILETIME() and to_SYSTEMTIME() shim overloads for DATE type; +* stlsoft/util/exception_string.hpp:; +* added truncate() method; +* winstl/shims/conversion/to_FILETIME.hpp:; +* winstl/shims/conversion/to_FILETIME/DATE.hpp:; +* removed dependency of to_FILETIME(DATE const&) on UDATE; +* winstl/shims/conversion/to_SYSTEMTIME.hpp:; +* winstl/shims/conversion/to_SYSTEMTIME/DATE.hpp:; +* removed dependency of to_SYSTEMTIME(DATE const&) on UDATE; + + +## 1.9.53 - 14th September 2008 + +* changed definition of STLSOFT_STATIC_ASSERT() to work with GCC; +* defect defect in pre-condition enforcement of winstl::system_traits::expand_environment_strings(); +* stlsoft/stlsoft.h:; +* changed definition of STLSOFT_STATIC_CAST() for GCC, since GCC allows an array dimension of -1; +* winstl/system/system_traits.hpp:; +* fixed defective pre-condition enforcement of expand_environment_strings(); + + +## 1.9.52 - 11th September 2008 + +* fix for warnings in 64-bit compilation (VC9) in WinSTL string access shims for SYSTEMTIME; also added extra safeguard against external race condition; +* winstl/shims/access/string/time.hpp; +* fixed up 64-bit compiler warnings, by applying suitable unsigned->signed casts; +* added in safeguard for unlikely case of changing date/time pictures mid call; + + +## 1.9.51 - 7th September 2008 + +* workaround for defective exception-throwing behaviour of stlsoft::conversion_error with VC6; +* fixed defect in WinSTL string access shims for SYSTEMTIME that faults when asked to process an invalid time value; +* stlsoft/error/conversion_error.hpp; +* fixed defect whereby the VC++ 6 compiler that causes the throwing of any derived class to cause an ICE; +* winstl/shims/access/string/time.hpp; +* fixed defect whereby failure to convert, due to invalid date, results in fault in shim string; + + +## 1.9.50 - 3rd September 2008 + +* added stlsoft character conversion typedefs m2w, w2m, t2m, m2t; +* fix for VC++ 6 defect in requiring return code after exception throw; +* stlsoft/conversion/char_conversions.hpp:; +* added typedefs m2w, w2m, t2m, m2t; +* stlsoft/conversion/w2m.hpp; +* includes stlsoft/conversion/char_conversions.hpp; + + +## 1.9.49 - 2nd September 2008 + +* fix for DMC++ defect in winstl::reg_value function template definition; +* added winstl character conversion typedefs m2w, w2m, t2m, m2t; +* winstl/conversion/char_conversions.hpp:; +* added typedefs m2w, w2m, t2m, m2t; +* winstl/conversion/w2m.hpp; +* includes winstl/conversion/char_conversions.hpp; +* winstl/registry/reg_key.hpp:; + + +## 1.9.48 - 23rd August 2008 + +* added comstl/util/CY_functions.h; +* added comstl/util/DECIMAL_functions.h; +* added comstl/util/VARIANT_functions.h; +* added comstl::variant conversion constructor for DECIMAL; +* fixed bug in stlsoft::trim_all(); +* added winstl::basic_error_desc<>::empty(); +* stlsoft/containers/frequency_map.hpp; +* addition of bool_type member type; +* stlsoft/containers/unsorted_map.hpp; +* addition of class_type member type; +* stlsoft/string/shim_string.hpp; +* increased internal memory buffer of basic_shim_string by 1, so that users do not need to specify a number inclusive of the terminating nul character; +* stlsoft/string/trim_functions.hpp; +* fixed bug in trim_all() whereby the right iterator could be before the left; +* comstl/util/variant.hpp; +* added conversion constructor for DECIMAL; +* implemented equal(); +* comstl/util/CY_functions.h; +* CY_compare(); +* comstl/util/DECIMAL_functions.h; +* DECIMAL_compare(); +* comstl/util/VARIANT_functions.h; +* VARIANT_equal(); +* winstl/error/error_desc.hpp; +* added bool_type member type; +* added empty() method; + + +## 1.9.47 - 12th August 2008 + +* enhancement of stlsoft::read_line() function template to work with various line-termination sequences; +* enhancement of fixed array classes to allow zero size; +* winstl::clipboard_format_sequence enhancements to iterator type profile; +* winstl::clipboard_scope defect fix and documentation enhancement; +* syntactic modification of contract enforcement statements to a large number of components to address warnings with GCC 4.3 in pedantic mode; +* stlsoft/containers/fixed_array.hpp; +* fixed array classes now can be of zero size; +* stlsoft/containers/static_array.hpp - GCC 4.3 pedantic warnings; +* stlsoft/conversion/union_cast.hpp - GCC 4.3 pedantic warnings; +* rewrote stlsoft::read_line(), which can now use any combination of the line termination sequences CR, LF and CR+LF. stlsoft::read_line() is now found in stlsoft/filesystem/read_line.hpp; +* stlsoft/filesystem/io_functions.hpp now includes stlsoft/filesystem/read_line.hpp; +* stlsoft/string/char_traits.hpp - GCC 4.3 pedantic warnings; +* acestl/collections/message_queue_sequence.hpp - GCC 4.3 pedantic warnings; +* acestl/reactor/custom_event_handler.hpp - GCC 4.3 pedantic warnings; +* comstl/collections/enumerator_sequence.hpp - GCC 4.3 pedantic warnings; +* comstl/string/bstr.hpp - GCC 4.3 pedantic warnings; +* inetstl/filesystem/findfile_sequence.hpp - GCC 4.3 pedantic warnings; +* mfcstl/collections/clist_adaptors.hpp - GCC 4.3 pedantic warnings; +* rangelib/integral_range.hpp - GCC 4.3 pedantic warnings; +* winstl::clipboard_format_sequence::const_iterator now properly defined according to rules outlined in Extended STL, vol 1 (winstl/clipboard/clipboard_format_sequence.hpp); +* winstl::clipboard_scope defect in deallocation function fixed, and documentation markup improved to make clear the full semantics; +* winstl/controls/listbox_const_iterator.hpp - GCC 4.3 pedantic warnings; +* winstl/controls/listbox_data_const_iterator.hpp - GCC 4.3 pedantic warnings; +* winstl/filesystem/findfile_sequence.hpp - GCC 4.3 pedantic warnings; +* winstl/filesystem/findvolume_sequence.hpp - GCC 4.3 pedantic warnings; +* winstl/security/acl_sequence.hpp - GCC 4.3 pedantic warnings; +* winstl/shell/drophandle_sequence.hpp - GCC 4.3 pedantic warnings; +* winstl/toolhelp/sequence_base.hpp - GCC 4.3 pedantic warnings; +* winstl/window/zorder_iterator.hpp - GCC 4.3 pedantic warnings; + + +## 1.9.46 - 11th August 2008 + +* defect fixes to stlsoft::pod_vector; +* reduced coupling, and increased functionality, of stlsoft::format_bytes(); +* sundry compatibility improvements; +* stlsoft::file_lines() changed slightly to ensure correct behaviour on Windows platforms when emulating UNIX; +* stlsoft::std_fill_n() now eschews use of std::fill_n() when used with Microsoft's Safe String library; +* stlsoft::pod_vector<> defects fixed:; +* fix for assert in copy-ctor when copying empty object; +* fix for failure to write value_type() into 1-parameter resize(); +* fixed defect in resize() when moving from 0 != size() to 0 == size(); +* fixed defect in range insert; +* fixed defect in erase(); +* renamed internal type buffer_type to buffer_type_; +* stlsoft::format_bytes() rewritten to use custom hex formatting instead of stdio formatting functions; +* winstl__FormatMessageA/W__buff_inst() altered for 64-bit compatibility; + + +## 1.9.45 - 8th June 2008 + +* enhancement to stlsoft::to_uint64 conversion shim for ULARGE_INTEGER; +* more Win-64 compatibility changes; +* fixes to winstl::basic_path class template; +* inetstl/filesystem/filesystem_traits.hpp - 64-bit compatibility; +* winstl/shims/conversion/to_uint64/ULARGE_INTEGER.hpp - added overloads for ULARGE_INTEGER to stlsoft::to_uint64 conversion shim; +* winstl/filesystem/filesystem_traits.hpp - get_full_path_name() sets last error to ERROR_FILENAME_EXCED_RANGE when path is too long for GetFullPathNameA() (since that does not set it); +* winstl/filesystem/path.hpp -; +* fix to push() to ensure that ambient slash flavour is used; +* make_absolute() now throws an exception if get_full_path_name() does not succeed; +* fix to canonicalise() for empty paths; +* fix to canonicalise() for paths that contain drive and top-slash only; + + +## 1.9.44 - 1st June 2008 + +* bug fix in winstl/shims/access/string/LSA_UNICODE_STRING.hpp, required for newly released flecxx library; +* winstl/shims/access/string/LSA_UNICODE_STRING.hpp - removed trailing slash in two of the shim functions; + + +## 1.9.43 - 31st May 2008 + +* more Win64-compatibility modifications; +* more Safe String library modifications; +* expanded the stlsoft::get_FILE_ptr attribute shim for MFC's CStdioFile; +* stlsoft/conversion/char_conversions.hpp - Safe String compatibility; +* stlsoft/string/trim_functions.hpp - Safe String compatibility, and removal of dependency on soon-to-be-obselete STLSoft standard emulation functions (as they'll be handed off to the soon-to-be-released flecxx library; see http://flecxx.org/); +* stlsoft/util/constraints.hpp - elimination of warnings for some highly pedantic compiler modes; +* comstl/collections/enumerator_sequence.hpp - Win64 compatibility; +* comstl/string/bstr.hpp - Win64 compatibility; +* mfcstl/shims/attribute/get_FILE_ptr.hpp; +* winstl/clipboard/clipboard_scope.hpp - tightening up of exception handling code; + + +## 1.9.42 - 13th May 2008 + +* more Win64-compatibility modifications; +* more Safe String library modifications; +* comstl/string/olestring_functions.h - Safe String library compatibility modifications, using wcscpy_s() instead of wcscpy(); +* inetstl/filesystem/findfile_sequence.hpp - minor warning suppression; +* winstl/window/functions.h - rewrote GetWindowLong()/SetWindowLong() use to common functions winstl__get_window_sptrint_() and winstl__set_window_sptrint_(); + + +## 1.9.41 - 13th May 2008 + +* bug fix for GCC compilation on PowerPC that was broken with 1.9.40; + + +## 1.9.40 - 13th May 2008 + +* significant refactoring of compiler-capability discrimination for GCC and VC++; +* compatibility fixes for SunPro compilers; +* bug fix in integral_printf_traits (introduced in 1.9.39); +* include/stlsoft/internal/cccap/gcc.h: significant refactoring; +* include/stlsoft/internal/cccap/msvc.h: significant refactoring; +* include/stlsoft/internal/cccap/obsolete.h: defines old symbols in terms of new; to be #included by all refactored compiler capability discrimination files while rest of codebase is not up to date; +* stlsoft/string/split_functions.hpp: now defines STLSOFT_STRING_SPLIT_FUNCTIONS_CANNOT_USE_STATIC_ARRAY when using SunPro; +* stlsoft/util/integral_printf_traits.hpp: fixed bug in 64-bit specialisations that was introduced in 1.9.39; + + +## 1.9.39 - 11th May 2008 + +* another tranche of changes for Win64 support; +* added STLSOFT_WARN_64, to apply to variables whose sizes will be different between Win32 and Win64, to elicit warnings from VC++ (stlsoft/stlsoft.h); +* stlsoft::truncation_test: suppression of 4267 warning in VC++ for the final conversion, since it's already been determined by the test that the conversion is valid (stlsoft/conversion/truncation_test.hpp); +* adjustment of winstl::BOOL2bool() for -Wp64 compilation (winstl/winstl.h); +* Windows Registry Library: change of result type from ws_long_t to LONG, to avoid unnecessary conversions and Win32/64 warnings (winstl/registry/reg_traits.hpp); +* winstl::system_traits<>::get_locale_info(): change of cchData param from int_type to int to avoid unnecessary conversions and Win32/64 warnings (winstl/system/system_traits.hpp); +* Windows Window Library: wholesale change from use of ws_long_t to ws_sptrint_t to ensure that the window style functions are 32 and 64-bit compatible (winstl/window/functions.h); +* winstl::set_window_icon(): suppression of 4267 warning in VC++ for what appears to be a compiler bug in interpretation of the conversion to LPARAM in this function (winstl/window/functions.h); -+ stlsoft::trip_bool class template -Changes: -======== +## 1.9.38 - 4th May 2008 -~ stlsoft/functional/function_adaptors.hpp does not include - stlsoft/functional/method_adaptors.hpp for GCC < 3.3 +* another tranche of changes for Win64 support; +* discrimination of PLATFORMSTL_ARCH_IS_**** symbols: PLATFORMSTL_ARCH_IS_X86 PLATFORMSTL_ARCH_IS_IA64 PLATFORMSTL_ARCH_IS_X64 PLATFORMSTL_ARCH_IS_INTEL PLATFORMSTL_ARCH_IS_POWERPC PLATFORMSTL_ARCH_IS_ALPHA PLATFORMSTL_ARCH_IS_HPPA PLATFORMSTL_ARCH_IS_SPARC; -~ minor general changes in makefile structure -~ fixed for UNIX makefiles +## 1.9.37 - 3rd May 2008 +* first tranche of changes for Win64 support; +* cs_sptrint_t and cs_uptrint_t integer types that are the same size as the pointers of the ambient architecture; +* platformstl/synch/atomic_functions.h now discriminates on PLATFORMSTL_OS_IS_WINDOWS instead of PLATFORMSTL_OS_IS_WINDOWS; +* platformstl/synch/atomic_functions.h now discriminates on WINSTL_ARCH_IS_X86, WINSTL_ARCH_IS_IA64 and WINSTL_ARCH_IS_X64 instead of _M_IX86, _M_IA64 and _M_X64; +* added UNIXSTL_ARCH_IS_X86, UNIXSTL_ARCH_IS_IA64 and UNIXSTL_ARCH_IS_X64 architecture discrimination symbols; +* added WINSTL_OS_IS_WIN32 and WINSTL_OS_IS_WIN64 operating system discrimination symbols; +* added WINSTL_ARCH_IS_X86, WINSTL_ARCH_IS_IA64 and WINSTL_ARCH_IS_X64 architecture discrimination symbols; +* winstl/synch/atomic_functions.h refactored to use new symbols; +* winstl/filesystem/filesystem_traits.hpp refactored to use new symbols; +* winstl/system/system_traits.hpp refactored to use new symbols; -============================================================================ -Changes for 1.9.1 beta 26 (21st October 2006): +## 1.9.36 - 30th April 2008 -Additions: -========== +* added support for FreeBSD operating system; -+ stlsoft::scoped_handle specialisation for scoping APIs with 0 params -+ string access shims (in InetSTL) for struct in_addr +## 1.9.35 - 29th April 2008 +* added value_multi_sz() to winstl::reg_value; +* refactored exception handling in basic_reg_key::reg_class() to avoid spurious compiler warnings about unreachable branches; -Changes: -======== -~ VC5 compatibility in ~50 files. (You may find it strange that VC5 compat - is even an issue, but we have some older products that require VC5 - compilation, and we want to put Pantheios into it. So, STLSoft has to be - made to work with it ...) +## 1.9.34 - 25th April 2008 -~ fix to stlsoft::integer_to_string() overloads to handle (unsigned) long in - addition to all the others +* renamed winstl::get_hwnd attribute shim to winstl::get_HWND; +* minor adjustments to Sun Pro support; +* library feature discrimination symbol cleanup; +* refactored error/exception handling in Windows Registry library; +* STLSOFT_CF_BIDIRECTIONAL_ITERATOR_SUPPORT changed to STLSOFT_LF_BIDIRECTIONAL_ITERATOR_SUPPORT in all files; +* renamed all get_hwnd() attribute shims to get_HWND(); +* include/stlsoft/internal/cccap/sunpro.h: adjustments to detect _BOOL and _WCHAR_T for the bool and wchar_t types support; +* include/stlsoft/internal/cccap/sunpro.h: adjustment to integral size detection: now simply searches for _LP64 or __LP64__ for LP64, otherwise assumes int & long are 4-bytes; +* include/stlsoft/internal/cccap/sunpro.h: fix to known bug in Sun Pro C++ library headers - is introduced to ensure it is included before ; +* stlsoft::auto_buffer::allocate_() 1-param overload implemented in terms of the 2-param version; +* fix to comstl::co_create_instance(), to directly assign between ref_ptr instances via set(), rather than copy constructors; +* winstl::key_not_duplicated_exception exception class to Windows Registry library; +* error/exception handling for all the following classes in the Windows; +* winstl::basic_reg_key; +* winstl::basic_reg_key_sequence; +* winstl::basic_reg_value; +* winstl::basic_reg_value_sequence; -============================================================================ +## 1.9.33 - 25th April 2008 -Changes for 1.9.1 beta 25 (5th October 2006): +* added support for the SunPro C and C++ compilers; +* various mods to ensure headers are self-contained when used with Windows "lean and mean" suppression symbols; +* STLSOFT_STRINGIZE_w_() now defined in terms of STLSOFT_STRINGIZE_a() for Sun Pro C and Borland; +* Sun Pro C and Sun Pro C++ compatibility; +* stlsoft::fixed_array_?d::swap() methods now implemented in terms of new private get_allocator_() method; +* STLSOFT_CF_BIDIRECTIONAL_ITERATOR_SUPPORT removed from all the compiler capability files; +* stlsoft::member_selector_iterator.hpp now compatible with Sun Pro C++ when used in the -library=libCstd; +* stlsoft/memory/allocator_features.hpp now compatible with Sun Pro C++ when used in the -library=libCstd; +* stlsoft/memory/auto_buffer.hpp now compatible with Sun Pro C++ when used in the -library=libCstd; +* stlsoft/shims/access/string/std/c_string.h now compatible with Sun Pro C++; +* stlsoft/string/simple_string.hpp now compatible with Sun Pro C++; +* stlsoft/util/integral_printf_traits.hpp now compatible with Sun Pro C++; +* correction to definition of stlsoft::integral_printf_traits; +* stlsoft/util/std/iterator_helper.hpp now compatible with Sun Pro C++; +* stlsoft/util/std/library_discriminator.hpp now compatible with Sun Pro C++; +* comstl::enumerator_sequence<>::quanta(); +* comstl/error/errorinfo_functions.h includes oaidl.h and oleauto.h; +* comstl/internal/interface_traits_std.hpp includes oaidl.h; +* comstl/util/initialisers.hpp includes ole2.h; +* unixstl/unixstl.h now compatible with Sun Pro C++; +* correction to return type of winstl__combobox_getitemdata(); +* correction to return type of winstl__listbox_getitemdata(); +* renamed listbox_operation_traits to listbox_data_sequence_traits (in winstl/controls/listbox_data_sequence.hpp); +* renamed listbox_operation_traits to listbox_sequence_traits (in winstl/controls/listbox_sequence.hpp); +* made winstl/error/exceptions.hpp self-contained when used with Windows "lean and mean" suppression symbols; +* marked winstl/shims/access/string/lsa_unicode_string.hpp as not for unit-test (since the unit-test programs do not #include ); -IMPORTANT: -========== - The format for the beta releases has now been changed. All previous beta - release distributions had the STLSoft include directory as the root - directory in the archive. Users were required to extract to - $STLSOFT/include (UNIX) or %STLSOFT%\include (Windows). This has caused - confusion with new users of Pantheios (http://pantheios.org/) +## 1.9.32 - 22nd April 2008 - From beta 25 onwards, the distribution root directory will be "set" to - the STLSOFT root directory. Users are now required to extract to - $STLSOFT (UNIX) or %STLSOFT% (Windows). +* fix for VC++ 8/9 linker error in the allocator_selector; +* refactoring of string access shim headers for lightweight compilation; +* refactoring of string access shim headers in light of Windows "lean and mean" disabling symbols (e.g. NOUSER, NOWINOFFSETS); - The distribution will also contain the 'examples' and 'extras' - directories that will be included in the 1.9.1 release. The 'extras' are - small extra libraries that use STLSoft (and are not 100% header-only). +## 1.9.31 - 13th April 2008 -Changes: -======== +* exception hierarchy refactoring; +* bug fix to stlsoft::must_init; +* new STLSoft-root exception: stlsoft::project_exception; +* fixes to stlsoft::must_init for built-in types to support assignment; -~ fixed #include omission stlsoft/conversion/byte_format_functions.hpp -~ fixed method omissions in stlsoft::special_string_instance_1 +## 1.9.30 - 3rd March 2008 -~ fixed bug in comstl::IDispatchImpl3::Invoke() +* tidying of distribution; -~ winstl/util/struct_initialisers.hpp now handles case where - WIN32_LEAN_AND_MEAN may have been defined +## 1.9.29 - 3rd March 2008 -============================================================================ +* more preparation for safe string library compatibility; -Changes for 1.9.1 beta 24 (24th September 2006): -Additions: -========== +## 1.9.28 - 24th March 2008 -+ stlsoft::basic_shim_string::internal_size() +* enhancement to winstl::reg_key class; +* preparation for safe string library compatibility; +* bug fix for C-compilation in winstl/controls/functions.h; +* stlsoft/internal/safestr.h; +* correction to winstl/controls/functions.h; +* improved error handling in winstl::reg_key; +* winstl::reg_key new methods: has_sub_key() and has_value(); +* winstl::reg_traits now inherits from winstl::system_traits; +* winstl::window_traits now inherits from winstl::system_traits; -+ unixstl::process_mutex now allows for wrapping of an externally created - pthread_mutex_t* -+ unixstl::thread_mutex now allows for wrapping of an externally created - pthread_mutex_t* +## 1.9.27 - 17th March 2008 +* support for Visual C++ 9 (Visual C++ 2008); +* fixed pre-processor typo that breaks GCC -pedantic; +* added item-data functions for list-/combo-boxes; +* added support for Visual C++ 9.0 (Visual C++ 2008); +* fix for pre-processor typo in unixstl::filesystem_traits, which is breaking -pendantic GCC compilation; +* added item-data functions for list-/combo-boxes: listbox_getitemdata() and combobox_getitemdata(); -Changes: -======== -~ fix minor bug in stlsoft::c_str_data_a(struct tm const *t) (located in - stlsoft/shims/access/string/std/time.hpp) that resulted in heap allocation - every time. +## 1.9.26 - 15th March 2008 -~ fixed bug that prevented C-only compilation of platformstl/platformstl.h +* definition, where appropriate, of STLSOFT_CF_FUNCTION_SYMBOL_SUPPORT, denoting that a particular compiler supports the __FUNCTION__ pre-processor symbol; +* stlsoft/internal/cccap/borland.h; +* stlsoft/internal/cccap/como.h; +* stlsoft/internal/cccap/dmc.h; +* stlsoft/internal/cccap/gcc.h; +* stlsoft/internal/cccap/intel.h; +* stlsoft/internal/cccap/msvc.h; +* stlsoft/internal/cccap/mwerks.h; +* stlsoft/internal/cccap/unknown.h; +* stlsoft/internal/cccap/vectorc.h; +* stlsoft/internal/cccap/watcom.h; -~ unixstl/synch/atomic_functions.h now contains various feature - detection symbols, e.g. UNIXSTL_HAS_ATOMIC_PREINCREMENT, - UNIXSTL_HAS_ATOMIC_PREADD +## 1.9.25 - 9th March 2008 -~ tidying up of exception-safety in unixstl::process_mutex +* wholesale increase of use of forward include guards, to reduce compilation times; -~ introduction of exception throwing in unixstl::thread_mutex, to be - conformant with unixstl::process_mutex -~ unixstl::spin_mutex now discriminates on the (new) symbol - UNIXSTL_HAS_ATOMIC_WRITE +## 1.9.24 - 8th March 2008 +* finishing up some missed std::swap refactoring; +* stlsoft/collections/array_view.hpp now uses std_swap; +* stlsoft/string/string_view.hpp now uses std_swap; +* unixstl/filesystem/glob_sequence.hpp now uses std_swap; +* unixstl/filesystem/path.hpp now uses std_swap; -~ platformstl/synch/atomic_functions.h now contains various feature - detection symbols, e.g. PLATFORMSTL_HAS_ATOMIC_PREINCREMENT, - PLATFORMSTL_HAS_ATOMIC_PREADD +## 1.9.23 - 20th February 2008 -============================================================================ +* fix for minor compiler compatibility issue; +* STLSOFT_CF_EXCEPTION_SUPPORT was being defined for Metrowerks CodeWarrior in C compilation units. This is now corrected; -Changes for 1.9.1 beta 23 (17th September 2006): +## 1.9.22 - 8th February 2008 -NOTE: Please check out the updated documentation at http://stlsoft.org/doc-1.9 +* refactored unixstl/synch/util/features.h; +* adjusted the PThreads discrimination in unixstl/synch/util/features.h to not be affected by the inclusion of pthread.h (which seems to be included by on UNIX with GCC !?); +* minor warning suppression in winstl/filesystem/memory_mapped_file.hpp; +* minor warning-avoidance refactoring in winstl/system/console_colour_scope.hpp; -Additions: -========== +## 1.9.21 - 5th February 2008 -+ mfcstl/collections/clist_adaptors.hpp: mfcstl::CList_iadaptor replaces the - old mfcstl::list_adaptor class template. +* fixed a bug in platformstl/synch/util/features.h; +* platformstl/synch/util/features.h was erroneously #including unixstl/synch/sleep_functions.h, rather than unixstl/synch/util/features.h; -Changes: -======== -~ a whole load more directory changes. Very few now remain, and 1.9.1 proper - is very close. +## 1.9.20 - 3rd February 2008 +* added new stlsoft::singlethreaded_tss_index synchronisation utility class; +* new stlsoft::singlethreaded_tss_index class (stlsoft/synch/singlethreaded_tss_index.hpp), which is interface-compatible with unixstl::tss_index and winstl::tss_index, for single-threaded contexts; -============================================================================ -Changes for 1.9.1 beta 22 (13th September 2006): +## 1.9.19 - 2nd February 2008 -Changes: -======== +* enhancement of SAPI utility header for COMSTL; +* comstl/speech/sapi_util.hpp now introduces the SPEAKFLAGS enumerators into the global namespace, to be compatible with the SAPI headers; -~ the following files were "moved" into stlsoft/util: - options_verifier.hpp - printf_traits.hpp - true_typedef.hpp - argument_proxies.hpp - compiler_optimisation_traits.hpp - constraints.hpp - limit_traits.h - sign_traits.hpp - size_traits.hpp - static_initialisers.hpp +## 1.9.18 - 27th January 2008 -~ the following files were "moved" into stlsoft/obsolete: +* enhancement of STLSoft's integral_printf_trait component to support Pantheios 1.0.1 beta 91; +* release of SAPI utility header for COMSTL; +* added hex_format_a/w() methods to integral_printf_traits; +* comstl/speech/sapi_util.hpp, which abstracts away the definitions of the SAPI interfaces and constants, for those compilers that do not have the headers supplied; - first_class_promoter.hpp - explicit_inheritance_veneer.hpp -~ fix of version numbers in stlsoft/stlsoft.h +## 1.9.17 - 5th January 2008 +* bug fix for UNIXSTL on Leopard/GCC 4.0.1; +* Fixed new incompatibility in the definition of UNIXSTL_ASSERT for the Mac OS-X platform, evinced with Leopard and GCC 4.0.1; -============================================================================ +## 1.9.16 - 29th December 2007 -Changes for 1.9.1 beta 21 (7th September 2006): +* bug fix in stlsoft::printf_traits; +* bug fix in winstl::GetTimeFormat_msA/W; +* other minor bug fixes; +* minor feature enhancements & refactoring; +* new stlsoft::integral_printf_traits traits class, which fixes the bug in stlsoft::printf_traits whereby integers used the %ld and %lu; +* now uses new symbols _STLSOFT_SIZEOF_CHAR, _STLSOFT_SIZEOF_SHORT, _STLSOFT_SIZEOF_INT, _STLSOFT_SIZEOF_LONG and _STLSOFT_SIZEOF_LONG_LONG; +* added symbol PLATFORMSTL_OS_IS_WIN64; +* added symbol PLATFORMSTL_OS_IS_WINDOWS; +* refactoring of stlsoft::auto_destructor::get mutating/non-mutating overloads; +* refactoring of stlsoft::auto_array_destructor::get mutating/non-mutating overloads; +* refactoring of stlsoft::proxy_ptr::get mutating/non-mutating overloads; +* refactoring of stlsoft::ref_ptr::get mutating/non-mutating overloads; +* refactoring of stlsoft::shared_ptr::get mutating/non-mutating overloads; +* refactoring of comstl::interface_ptr::get mutating/non-mutating overloads; +* platformstl/synch/tss_index.hpp now properly includes the tss_exception symbol into the platformstl namespace; +* bug fix to winstl::GetTimeFormat_msA/W, whereby 24hr format was always used, regardless of the locale settings; -Changes: -======== -~ fix bug in stlsoft::member_selector_iterator (which crops up when - compiling Pantheios with Visual C++ 8) +## 1.9.15 - 24th December 2007 +* minor bug fix for C compilation; +* previous versions of STLSoft defined STLSOFT_CF_EXCEPTION_SUPPORT and STLSOFT_CF_RTTI_SUPPORT for some compilers in C compilation, notably GCC. This was causing problems with the (soon-to-be-released) xTests and flecxx libraries, and is now fixed; -============================================================================ -Changes for 1.9.1 beta 20 (2nd September 2006): +## 1.9.14 - 23rd December 2007 -Additions: -========== +* updated stlsoft version (_STLSOFT_VER) missing in 1.9.13; -+ comstl::bstr (comstl/string/bstr.hpp) - facade for BSTR -+ comstl::variant (comstl/util/variant.hpp) - facade for VARIANT +## 1.9.13 - 20th December 2007 -+ comstl::bstr_compare() +* features enhancements to fixed array classes; +* stlsoft::fixed_array_?d::get_allocator() method for all 4 classes; +* stlsoft::fixed_array_?d::fixed_array_?d() overloads taking allocator; -+ new overloads of comstl::co_create_instance(), which takes a string, and - attempts to resolve it with CLSIDFromProgID(), or CLSIDFromString() -+ winstl::reg_get_dword_value() - retrieves a DWORD value from a reg key +## 1.9.12 - 19th December 2007 +* features enhancements to fixed array classes; +* stlsoft::fixed_array_?d::data() (mutating form) methods for all 4 classes; +* stlsoft::fixed_array_?d::swap() methods for all 4 classes; +* fix to stlsoft::stl_collection_tag, to derive it from stlsoft::collection_tag; -============================================================================ -Changes for 1.9.1 beta 19 (9th August 2006): +## 1.9.11 - 17th December 2007 -Additions: -========== +* minor modifications and bug-fixes; +* discrimination of RTTI support, in the form of the symbol STLSOFT_CF_RTTI_SUPPORT, which will be defined when support is enabled. This is required for the new xTests project (which will be released in January 2008); +* stlsoft::cmdargs class has significant breaking changes:; +* added has_option() method; +* added has_value() method; +* removed m_ from public fields of cmdargs::option class; +* removed m_ from public fields of cmdargs::value class; +* renamed m_value member of cmdargs::value to name; +* stlsoft::must_init has had numerous fixes; +* fixed bug, that manifests in widestring compilation, in stlsoft/filesystem/searchspec_sequence.hpp; -+ dotnetstl::check_cast custom cast function template - (dotnetstl/conversion/check_cast.hpp) +## 1.9.10 - 10th December 2007 -============================================================================ +* bug fix for recls (http://recls.org/); +* minor feature enhancements; +* basic_static_string::pop_back(); +* fixed bug, that manifests in widestring compilation, in stlsoft/filesystem/searchspec_sequence.hpp; +* mfcstl/mfcstl.hpp now #includes atlstr.h if _MFC_VER >= 0x0700; +* platformstl::environment_variable_traits now works on Win32 when synthesising UNIX; -Changes for 1.9.1 beta 18 (7th August 2006): -Fixes: -====== +## 1.9.9 - 19th November 2007 -+ stlsoft/string/special_string_instance.hpp: string access shims for - stlsoft::special_string_instance_1 class template are now defined +* shim fixes in UNIXSTL; +* added all missing string access shims to unixstl/filesystem/current_directory_scope.hpp; +* added all missing string access shims to unixstl/filesystem/file_path_buffer.hpp; -Changes: -======== -~ atlstl/automation/automation_collections.hpp: - atlstl::generic_automation_collection (and - atlstl::generic_collection_base) now both can accept a template param - for the (dual) interface from which they inherit - they used to inherit - from IDispatch. +## 1.9.8 - 18th November 2007 -Diffs: -====== +* compatibility with Borland C/C++ 5.82 (Turbo C++); now supports VOLE; +* comstl/collections/collection_sequence.hpp has a #define hack, to make retrievalQuanta a pre-processor replacement rather than a member constant, which avoids the erroneous compiler error with Borland C/C++ 5.82; +* comstl/collections/enumerator_sequence.hpp has a #define hack, to make retrievalQuanta a pre-processor replacement rather than a member constant, which avoids the erroneous compiler error with Borland C/C++ 5.82; +* winstl/filesystem/filesystem_traits.hpp - only uses truncation testing in 64-bit compilations; +* winstl/system/system_traits.hpp - only uses truncation testing in 64-bit compilations; - root-dir-1: H:\3Pty\stlsoft\1.9.1-beta17 - root-dir-2: H:\3Pty\stlsoft\1.9.1-beta18 -Items unchanged from H:\3Pty\stlsoft\1.9.1-beta17 to H:\3Pty\stlsoft\1.9.1-beta18: 1434 -Items changed from H:\3Pty\stlsoft\1.9.1-beta17 to H:\3Pty\stlsoft\1.9.1-beta18: 4 -Items changed (major) from H:\3Pty\stlsoft\1.9.1-beta17 to H:\3Pty\stlsoft\1.9.1-beta18: 0 -Items changed (minor) from H:\3Pty\stlsoft\1.9.1-beta17 to H:\3Pty\stlsoft\1.9.1-beta18: 1 - include\atlstl\automation\automation_collections.hpp 3.0.1.94 => 3.1.1.95 ; 18th July 2006 => 6th August 2006 -Items changed (revision) from H:\3Pty\stlsoft\1.9.1-beta17 to H:\3Pty\stlsoft\1.9.1-beta18: 1 - include\stlsoft\string\special_string_instance.hpp 1.2.1.8 => 1.2.2.9 ; 9th July 2006 => 7th August 2006 -Items changed (edit) from H:\3Pty\stlsoft\1.9.1-beta17 to H:\3Pty\stlsoft\1.9.1-beta18: 0 -Items changed (unversioned) from H:\3Pty\stlsoft\1.9.1-beta17 to H:\3Pty\stlsoft\1.9.1-beta18: 2 - include\stlsoft\smartptr\unittest\scoped_handle_unittest_.h ... => ... ; 6th July 2006 => 5th August 2006 - include\winstl\filesystem\unittest\absolute_path_unittest_.h ... => ... ; => +## 1.9.7 - 16th November 2007 -============================================================================ +* now supports x64 Windows 64-bit compilation (though it may not be perfect); +* now supports Borland Turbo C++ v5.82, though it is known not to be perfect STLSoft:; +* the POD algorithms - stlsoft/algorithms/pod.hpp - can now be forced to accept non-POD types. The symbols, and the algorithms they apply to, are: _STLSOFT_POD_COPY_ALLOW_NON_POD - stlsoft::pod_copy() _STLSOFT_POD_COPY_N_ALLOW_NON_POD - stlsoft::pod_copy_n() _STLSOFT_POD_MOVE_ALLOW_NON_POD - stlsoft::pod_move() _STLSOFT_POD_MOVE_N_ALLOW_NON_POD - stlsoft::pod_move_n() _STLSOFT_POD_FILL_N_ALLOW_NON_POD - stlsoft::pod_fill_n() This can be appropriate when, say, dealing with a struct that has some simple constructors; +* stlsoft::get_FILE_ptr shim UNIXSTL:; +* unixstl::memory_mapped_file now allows for specifying offset and request size. WinSTL:; +* winstl::to_DATE conversion shim, with overloads for DATE, UDATE, FILETIME, and SYSTEMTIME PlatformSTL:; +* platformstl::file_lines class - provides efficient representation of all the files in a text file; defaults to using string views for all the lines, so there's at most one copy operation from the memory-mapped file used to perform the initial load; -Changes for 1.9.1 beta 17 (5th August 2006): -Additions: -========== +## 1.9.6 - 25th September 2007 -+ winstl/controls/dialog_functions.hpp: winstl::dialog_button_id_check - unary function class. +* rbegin() and rend() for comstl::ccombstr_veneer; +* comstl::EXCEPINFO_free(); +* rbegin() and rend() for comstl::bstr STLSoft; +* front() and back() for stlsoft::auto_buffer (but note: it's still *NOT* a container!); +* find() and count() for stlsoft::frequency_map WinSTL; +* winstl::memory_mapped_file now takes offset+range; +* unixstl::glob_sequence fix in is_valid() (fixes bug seen in Ubuntu 64-bit); -Changes: -======== -~ The method form of atlstl::get_MemberValue() now is a bit more flexible, in - that the returned type and the method return value may be different (but - must still be compatible). +## 1.9.5 - 4th August 2007 -~ rangelib::integral_range now accepts [from,to) where to < from, and swaps - the increment (if +ve) accordingly +* STLSOFT_CF_CDECL_SUPPORTED, in anticipation of changes to support 64-bit (x64) compilation; +* comstl::bstr::attach() method; +* comstl::bstr::bstr(C const* s, int len) - fixed bug whereby if len is less than the actual length of s, actual length is used; +* correction to signature of winstl::basic_reg_key:: template<...> create_key: H& param is now H const&; +* corrected pre-condition enforcements of winstl::system_traits::get_environment_variable winstl::system_traits::get_module_directory winstl::system_traits::get_module_filename winstl::system_traits::get_system_directory winstl::system_traits::get_windows_directory; -~ big changes to winstl/util/struct_initialisers, which now cater to a large - number of the Win32 API structures. (More to be added later, once I've - written a Ruby script to do the rest automatically.) -~ winstl::load_text_file() now throws an exception if the file cannot be - opened. +## 1.9.4 - 2nd August 2007 +* detection of compiler support for __VA_ARGS__, via the STLSOFT_CF_SUPPORTS_VARIADIC_MACROS; -============================================================================ -Changes for 1.9.1 beta 16 (25th July 2006): +## 1.9.3 - 29th July 2007 -Additions: -========== +* 3 and 4 parameter versions of stlsoft::all_of composite predicate creator functions; +* 3 and 4 parameter versions of stlsoft::any_of composite predicate creator functions; +* new shim: stlsoft::to_uint64 conversion shim; +* degenerate overload (uint64_t); +* WIN32_FIND_DATA overload; -+ stlsoft::byte_format() - powerful binary=>text formatting function -+ winstl::console_colour_scope - scoping class for Win32 console - colours/intensities. (Used in the Win32Console back-end of Pantheios: - soon to be released; http://pantheios.org/) +## 1.9.2 - 2nd June 2007 -Changes: -======== +* HICON2LRESULT type converter; +* LRESULT2HICON type converter; +* winstl::basic_reg_key::create_key() static method, to create a key; +* new shim: winstl::get_HKEY; +* bug fix to operator /=() for winstl::basic_path and unixstl::basic_path; -~ acestl::message_queue_sequence uses optimised scatter/slice IO technique - described in "Extended STL, volume 1" (to be published at the end of the - year, or early 2007), for faster processing of block copy operations -Diffs: -====== +## 1.9.1, version released with Extended STL, volume 1 - 30th April 2007 - root-dir-1: H:\3Pty\stlsoft\1.9.1-beta15\include - root-dir-2: H:\3Pty\stlsoft\1.9.1-beta16\include -Items unchanged from H:\3Pty\stlsoft\1.9.1-beta15\include to H:\3Pty\stlsoft\1.9.1-beta16\include: 1410 -Items changed from H:\3Pty\stlsoft\1.9.1-beta15\include to H:\3Pty\stlsoft\1.9.1-beta16\include: 7 -Items changed (major) from H:\3Pty\stlsoft\1.9.1-beta15\include to H:\3Pty\stlsoft\1.9.1-beta16\include: 0 -Items changed (minor) from H:\3Pty\stlsoft\1.9.1-beta15\include to H:\3Pty\stlsoft\1.9.1-beta16\include: 2 - acestl\collections\message_queue_sequence.hpp 2.0.2.39 => 2.1.2.40 ; 18th July 2006 => 25th July 2006 - winstl\error\exceptions.hpp 4.1.1.41 => 4.2.1.42 ; 16th July 2006 => 19th July 2006 -Items changed (revision) from H:\3Pty\stlsoft\1.9.1-beta15\include to H:\3Pty\stlsoft\1.9.1-beta16\include: 3 -Items changed (edit) from H:\3Pty\stlsoft\1.9.1-beta15\include to H:\3Pty\stlsoft\1.9.1-beta16\include: 0 -Items changed (unversioned) from H:\3Pty\stlsoft\1.9.1-beta15\include to H:\3Pty\stlsoft\1.9.1-beta16\include: 2 -Items deleted from H:\3Pty\stlsoft\1.9.1-beta15\include: 0 -Items added to H:\3Pty\stlsoft\1.9.1-beta16\include: 3 - H:\3Pty\stlsoft\1.9.1-beta16\include\stlsoft\conversion\byte_format_functions.hpp - H:\3Pty\stlsoft\1.9.1-beta16\include\stlsoft\conversion\unittest\byte_format_unittest_.h - H:\3Pty\stlsoft\1.9.1-beta16\include\winstl\system\console_colour_scope.hpp +* stlsoft/fixed_array.hpp: function call operator now implemented in terms of at_unchecked(); +* comstl::bstr: bug fix in constructors taking C-string range, where range is larger than the string; +* rangelib/algorithms.hpp: bug fix in r_equal(), r_exists_if(), r_find_if(); -============================================================================ +## 1.9.1 beta 48 - 12th April 2007 -Changes for 1.9.1 beta 15 (18th July 2006): +* resource_type (and const_resource_type, for some) member type for: stlsoft::ptr_proxy stlsoft::ref_ptr stlsoft::shared_ptr comstl::bstr comstl::guid inetstl::connection inetstl::session unixstl::process_mutex unixstl::semaphore unixstl::thread_mutex winstl::module winstl::reg_key winstl::reg_key_sequence winstl::reg_value_sequence winstl::event winstl::process_mutex winstl::semaphore; +* added operator () to fixed arrays (stlsoft/container/fixed_array.hpp) (as requested/persuaded by Neal Becker); +* fixed bug in rangelib::r_exists() (Thanks to Yakov Markovitch); -~ More directory changes, particularly for the Template Meta-programming - library. -+ New container class: platformstl::cwd_stack - which is used to store - current working directory checkpoints (via push(), and restore them via - pop() - future enhancements to internals are planned, but interface - likely to remain unchanged. +## 1.9.1 beta 47 - 6th April 2007 -+ A whole host of algorithms that've been hiding in the research branch for - over a year are now brought into the main trunk, under - include/stlsoft/algorithms/... +* stlsoft::any_of() and stlsoft::all_of() composite predicate creator functions; +* binary forms of stlsoft::ptr_fun and stlsoft::ptr_fun_void; +* element_type and resource_type member types for stlsoft::ref_ptr; +* atlstl::generic_automation_collection now supports Count property; +* comstl::com_SUCCEEDED and comstl::com_S_OK predicate function adaptors (comstl/functional/com_predicate_adaptors.hpp); +* comstl::bstr now has additional members:; +* ctor: bstr(bstr const& rhs, size_type pos, size_type len); +* assign(const_iterator from, const_iterator to); +* detach(); +* append() overloads, and operator +=() overloads; +* subscript operator; +* begin()/end() methods; +* acestl::custom_event_handler::has_custom_event(long) renamed to acestl::custom_event_handler::has_custom_events(long). The old name is retained for backwards compatibility, but is deprecated; +* comstl::variant::QueryInterfaceValue() fixed; +* inetstl::basic_findfile_sequence bug with VC++ 8 now fixed; +* winstl::basic_findfile_sequence bug with VC++ 8 now fixed; +* winstl::basic_findvolume_sequence bug with VC++ 8 now fixed; -============================================================================ +## 1.9.1 beta 46 - 13th March 2007 -Changes for 1.9.1 beta 14 (15th July 2006) +* wholesale lexical changes (e.g. "char const *x" => "char const* x"); -~ More directory refactoring, particularly for the string access shims, - which now follow the directory convention: - /shims/access/string.hpp -+ Function/method pointer adaptors now cope with void/non-void return, - const/non-const methods, and cdecl/fastcall/stdcall calling conventions +## 1.9.1 beta 45 - 12th March 2007 -Note: Please make sure that you delete directory include/stlsoft/typefixer +* comstl::collection_sequence:; +* const_iterator and const_pointer member types; +* comstl::enumerator_sequence:; +* comstl::variant:; +* constructor taking a variant and a VARTYPE to which to change on copy; +* unixstl::basic_path:; +* empty(); +* has_sep(); +* winstl::basic_path:; +* winstl::basic_findfile_sequence:; +* relativePath flag, which causes entries to have a relative path; +* platformstl::readdir_sequence:; +* fixed element reference category (is By-Value Temporary); +* correctly returns entry full path only if fullPath flag is specified, rather than (absolutePath | fullPath); +* winstl::reg_key:; +* can now copy an empty instance (previously threw an exception); +* winstl::reg_value:; -============================================================================ +## 1.9.1 beta 44 - 22nd February 2007 -Changes for 1.9.1 beta 13 (12th July 2006) +* distribution is now rooted under stlsoft-X.Y, e.g. stlsoft-1.9.1-beta44; -~ A massive amount of refactoring of the string access shims and their - documentation. -~ unixstl::module / winstl::module get_handle() method removed, replaced - with get_module_handle() +## 1.9.1 beta 43 - 22nd January 2007 -~ unixstl::process_mutex now throws exceptions (when compiled with - exception-handling on) if any of the PThreads methods fail. +* comstl::co_create_instance() overloads now have a third, defaulted, member, for creation context. This is required for the new VOLE project, which will be released tomorrow; +* mfcstl::CArray_cadaptor and mfcstl::CArray_iadaptor now support <, <=, >, and >= comparison, in addition to ==, !=; +* string access shims for UDATE; +* winstl::to_FILETIME support for DATE and UDATE; +* winstl::to_SYSTEMTIME support for DATE and UDATE; +* stlsoft::get_ptr overload for std::auto_ptr slightly modified; +* winstl/shims/access/string.hpp now includes winstl/shims/access/string/time.hpp; -============================================================================ +## 1.9.1 beta 42 - 15th January 2007 -Changes for 1.9.1 beta 12 (8th July 2006) +* refactored atomic integer support on UNIX:; +* Now only supports if for Mac OS-X, Win32 (when emulated, of course), and if UNIXSTL_FORCE_ATOMIC_INTEGER_OPERATIONS is defined, allowing the user to decide for themselves whether or not to use (non-portable) facilities such as asm/atomic.h; +* unixstl/synch/util/features.h; -+ stlsoft::special_string_instance, which supports the - "Special String Instance" pattern (see online docs for expl). +## 1.9.1 beta 41 - 14th January 2007 -~ unixstl::current_directory, - winstl::current_directory, - winstl::absolute_path, - winstl::module_directory, - winstl::module_filename, - winstl::system_directory, - winstl::windows_directory, - are no longer separate classes, but rather specialisations (with different - policies, as appropriate) of stlsoft::special_string_instance +* refactored sized-integer detection:; +* The symbols STLSOFT_CF_8BIT_INT_EXTENDED_TYPE_IS_DISTINCT STLSOFT_CF_16BIT_INT_EXTENDED_TYPE_IS_DISTINCT STLSOFT_CF_32BIT_INT_EXTENDED_TYPE_IS_DISTINCT are removed. Instead use STLSOFT_CF_CHAR_DISTINCT_INT_TYPE STLSOFT_CF_SHORT_DISTINCT_INT_TYPE STLSOFT_CF_INT_DISTINCT_INT_TYPE; +* The symbols STLSOFT_CF_INT_DISTINCT_TYPE STLSOFT_CF_LONG_DISTINCT_TYPE are deprecated. Instead use STLSOFT_CF_INT_DISTINCT_INT_TYPE STLSOFT_CF_LONG_DISTINCT_INT_TYPE; +* The following symbols are added (and propagated through the codebase): STLSOFT_CF_CHAR_DISTINCT_INT_TYPE STLSOFT_CF_SHORT_DISTINCT_INT_TYPE STLSOFT_CF_INT_DISTINCT_INT_TYPE STLSOFT_CF_LONG_DISTINCT_INT_TYPE STLSOFT_CF_LONG_LONG_DISTINCT_INT_TYPE; +* A few last workarounds to ensure complete build/run of the unit-tests with DMC++; +* C compilation included in Unit-test builds; +* ensuring that all .h files are C-compilation compatible; +* stlsoft::limit_traits specialisation; +* stlsoft::sign_traits and specialisations; +* winstl::get_kernel_handle attribute shim overloads for winstl::event, winstl::process_mutex and winstl::semaphore; +* winstl::get_kernel_handle attribute shim overload for MFC types (in mfcstl/shims/attribute/get_kernel_handle.hpp); +* winstl/time/format_functions.h => winstl/time/format_functions.hpp; +* removed (almost) all of the previously deprecated __STLSOFT* symbols, __STLSOFT_COMPILER_IS_BORLAND __STLSOFT_COMPILER_IS_COMO __STLSOFT_COMPILER_IS_DMC __STLSOFT_COMPILER_IS_INTEL __STLSOFT_COMPILER_IS_GCC __STLSOFT_COMPILER_IS_MSVC __STLSOFT_COMPILER_IS_MWERKS __STLSOFT_COMPILER_IS_VECTORC __STLSOFT_COMPILER_IS_WATCOM __STLSOFT_COMPILER_IS_UNKNOWN __STLSOFT_COMPILER_LABEL_STRING __STLSOFT_COMPILER_VERSION_STRING __STLSOFT_DOCUMENTATION_SKIP_SECTION __STLSOFT_CF_STATIC_ASSERT_SUPPORT __STLSOFT_CF_EXCEPTION_SUPPORT __STLSOFT_CF_FUNCTION_SIGNATURE_FULL_ARG_QUALIFICATION_REQUIRED __STLSOFT_CF_NAMESPACE_SUPPORT __STLSOFT_CF_TEMPLATE_SUPPORT __STLSOFT_CF_EXCEPTION_SIGNATURE_SUPPORT __STLSOFT_CF_THROW_BAD_ALLOC __STLSOFT_CF_NOTHROW_BAD_ALLOC __STLSOFT_CF_TEMPLATE_CLASS_DEFAULT_FUNDAMENTAL_ARGUMENT_SUPPORT __STLSOFT_CF_TEMPLATE_CLASS_DEFAULT_CLASS_ARGUMENT_SUPPORT __STLSOFT_CF_MEMBER_TEMPLATE_FUNCTION_SUPPORT __STLSOFT_CF_MEMBER_TEMPLATE_CTOR_SUPPORT __STLSOFT_CF_MEMBER_TEMPLATE_RANGE_METHOD_SUPPORT __STLSOFT_CF_MEMBER_TEMPLATE_CLASS_SUPPORT __STLSOFT_CF_TEMPLATE_SPECIALISATION_SYNTAX __STLSOFT_CF_TEMPLATE_PARTIAL_SPECIALISATION_SUPPORT __STLSOFT_CF_TEMPLATE_OUTOFCLASSFN_QUALIFIED_TYPE_SUPPORT __STLSOFT_CF_std_NAMESPACE __STLSOFT_CF_std_char_traits_AVAILABLE __STLSOFT_CF_ALLOCATOR_ALLOCATE_HAS_HINT __STLSOFT_CF_ALLOCATOR_DEALLOCATE_HAS_OBJECTCOUNT __STLSOFT_CF_BIDIRECTIONAL_ITERATOR_SUPPORT __STLSOFT_CF_EXPLICIT_KEYWORD_SUPPORT __STLSOFT_CF_MUTABLE_KEYWORD_SUPPORT __STLSOFT_CF_TYPENAME_PARAM_KEYWORD_SUPPORT __STLSOFT_CF_TYPENAME_TYPE_KEYWORD_SUPPORT __STLSOFT_CF_TYPENAME_TYPE_DEF_KEYWORD_SUPPORT __STLSOFT_CF_TYPENAME_TYPE_MIL_KEYWORD_SUPPORT __STLSOFT_CF_MOVE_CONSTRUCTOR_SUPPORT __STLSOFT_CF_KOENIG_LOOKUP_SUPPORT __STLSOFT_CF_TEMPLATE_TEMPLATE_SUPPORT __STLSOFT_CF_STATIC_ARRAY_SIZE_DETERMINATION_SUPPORT __STLSOFT_CF_VENEER_SUPPORT __STLSOFT_CF_TEMPLATE_SHIMS_NOT_SUPPORTED __STLSOFT_CF_NEGATIVE_MODULUS_POSITIVE_GIVES_NEGATIVE_RESULT; + + +## 1.9.1 beta 40 - 6th January 2007 + +* stlsoft::format_thousands() grouping function template, e.g. char result[101]; stlsoft::format_thousands(result, STLSOFT_NUM_ELEMENTS(result), "2;3", 987654321); assert(0 == ::strcmp(result, "9876,54,321")); +* stlsoft::truncation_test() function suite; this is necessary to support the new VOLE library (see http://vole.sourceforge.net/); +* stlsoft::truncation_cast() cast function template (implemented in terms of stlsoft::truncation_test()); +* all sub-project namespace-specific size_t and ptrdiff_t references are removed. This fixes conflicts when using using directives (though that's never recommended for application code); +* stlsoft::must_init now has all built-in operators overloaded, e.g. you stlsoft::must_init i(10); i = i + 10; +* all remaining in-header unit-test blocks are removed into separate headers; + + +## 1.9.1 beta 39 - 5th January 2007 + +* oaidl interfaces to comstl/internal/interface_traits_std.hpp; +* stream inserter for comstl::bstr; +* fix to winstl/system/console_functions.h to ensure C compatibility; +* fix to winstl/time/format_functions.h to fix bug with 24-hr time picture elements (HH); + + +## 1.9.1 beta 38 - 3rd January 2007 + +* stlsoft/filesystem/io_functions.hpp, which defines the function template read_line, used to read a line of text from a FILE* stream, e.g. FILE *stm = . . .; std::string str; while (stlsoft::read_line(stm, str)) { ::fprintf(stdout, "line: %.*s\n", int(str.size()), str.data()); }; +* stlsoft::ptr_ifun() indirection function pointer adaptor creator functions - used with std::for_each if you are storing a sequence of X but your function acts on X*, e.g. class X; void modX(X *); std::vector vecx; std::for_each(vecx.begin(), vecx.end(), stlsoft::ptr_ifun(modX)); +* reinstatement of the "remove from scope" technique, in the guise of the STLSOFT_REMOVE_FROM_SCOPE(name) macro, which removes a name from the current scope (and any enclosed scopes). Defined in stlsoft/util/remove_from_scope.hpp; +* added winstl::listview_sequence_item::state(); +* stlsoft/function_adaptors/ref2ptr.hpp => stlsoft/functional/indirect_function_adaptors.hpp; +* winstl/clipboard/exceptions.hpp => winstl/clipboard/error/exceptions.hpp; +* 360+ other files are modified in comments only - for auto-documentation purposes only; +* stlsoft::error_desc now works with stream inserters with all compilers; +* stlsoft::ref2ptr() indirection function pointer adaptor creator functions are deprecated, in favour of stlsoft::ptr_ifun() creator functions; +* comstl::errorinfo_desc now works with stream inserters with all compilers; +* fixed compilation problem with unixstl/dl/dl_call.hpp with GCC 4.x; + + +## 1.9.1 beta 37 - 30th December 2006 + +* stlsoft::equal_handle function class - this is dead and gone; +* stlsoft/container_veneers.hpp - this is obsolete; it points to correct #include; +* stlsoft/handle_access.hpp - this is dead and gone; +* stlsoft/skip_iterator.hpp - this is going into research section; maybe 1.10; +* mfcstl/cstring_veneer.hpp - this is obsolete; it points to correct #include; +* winstl/handle_access.hpp - this is dead and gone; +* winstl/windows.hpp - this is going into a research section; maybe 1.10; +* fixed bug in stlsoft::scoped_handle::detach(); +* stlsoft/container_access.hpp => stlsoft/collections/functions.hpp; +* stlsoft/c_str_ptr_inserter.hpp => stlsoft/iterators/c_str_inserter.hpp; +* stlsoft/iterator.hpp => stlsoft/util/std/iterator_helper.hpp; +* stlsoft/ptr_proxy.hpp => stlsoft/smartptr/ptr_proxy.hpp; +* stlsoft/unary_function_output_iterator_adaptor.hpp => stlsoft/iterators/unary_function_output_iterator_adaptor.hpp; +* stlsoft/unittest.hpp => unittest/unittest.hpp; +* stlsoft/collections/collections.hpp renamed to stlsoft/collections/util/collections.hpp; +* stlsoft/functional/access_predicates.hpp renamed to stlsoft/functional/equal_ptr.hpp; +* winstl/functions.h => winstl/obsolete/functions.h; +* winstl/winstl_int_to_string.h => winstl/conversion/int_to_string.hpp; +* winstl::get_console_window() moved from winstl/functions.h => winstl/system/console_functions.h; +* winstl/registry/defs.hpp => winstl/registry/util/defs.hpp; +* winstl/registry/exceptions.hpp => winstl/registry/error/exceptions.hpp; +* winstl/registry/shared_handles.hpp => winstl/registry/util/shared_handles.hpp; -~ stlsoft::is_same_type now works correctly in all circumstances with - Borland, thanks to some work by Pablo Aguilar -+ unixstl::system_traits (unixstl/system/system_traits.hpp), containing non - file-system related elements previously in unixstl::filesystem_traits +## 1.9.1 beta 36 - 28th December 2006 -+ winstl::system_traits (winstl/system/system_traits.hpp), containing non - file-system related elements previously in winstl::filesystem_traits +* unittest cases for unixstl::memory_mapped_file WinSTL; +* winstl::memory_mapped_file can now be constructed from a wide string, in addition to a multibyte string. It can also be constructed from any type for which the stlsoft::c_str_ptr string access shim returns a wide string, in addition to any type for which the stlsoft::c_str_ptr string access shim returns a multibyte string; +* unittest cases for winstl::memory_mapped_file; -~ unixstl::filesystem_traits (unixstl/filesystem/filesystem_traits.hpp) now - derives from unixstl::system_traits -~ winstl::filesystem_traits (winstl/filesystem/filesystem_traits.hpp) now - derives from winstl::system_traits +## 1.9.1 beta 35 - 27th December 2006 +* stlsoft::do_initialisation_never array initialisation policy, which stipulates that no initialisation whatsoever be performed on array elements; +* stlsoft::scoped_handle now supports indirect cleanup functions. In other words, if you have a handle type handle_t, you can pass either a cleanup function taking handle_t - e.g. handle_close(handle_t ); - or a cleanup function taking a pointer to handle_t - e.g. handle_close_set_null(handle_t *); +* replacement of all stlsoft::throw_x() with STLSOFT_THROW_X() STLSoft; +* stlsoft::fixed_array_1d/2d/3d/4d classes now capable of doing *no* initialisation of their elements, by specifying the new policy stlsoft::do_initialisation_never; +* stlsoft::static_array_1d/2d/3d/4d classes now capable of doing *no* initialisation of their elements, by specifying the new policy stlsoft::do_initialisation_never UNIXSTL; +* refactoring of #includes in unixstl/synch/thread_mutex.hpp; -~ lots and lots more directory re-arrangements, and addition of "better" - documentation (to be seen currently at http://stlsoft.org/doc-1.9) +## 1.9.1 beta 34 - 24th December 2006 -============================================================================ +* replacement of all per-component exception throwing mechanisms with stlsoft::throw_x() utility function STLSoft; +* deprecation of stlsoft::cwd_stack::is_empty() method; +* removal of stlsoft::is_empty logical shim for stlsoft::searchspec_sequence ACESTL; +* corrected bug in acestl::message_queue_sequence::empty(); +* corrections to stlsoft::is_empty logical shim for ACE_Message_Queue ATLSTL; +* corrections to #includes in atlstl/window/window.hpp COMSTL; +* deprecation of stlsoft::is_empty logical shim for interface casts; +* deprecation of stlsoft::is_empty logical shim for comstl::interface_ptr InetSTL; +* removal of stlsoft::is_empty logical shim for inetstl::basic_findfile_sequence; +* removal of stlsoft::is_empty logical shim for inetstl::searchspec_sequence WinSTL; +* deprecation of stlsoft::is_empty logical shim for winstl::basic_findfile_sequence; +* deprecation of stlsoft::is_empty logical shim for winstl::basic_findvolume_sequence; +* stlsoft::is_empty logical shim overloads for ACE_String_Base MFCSTL; +* stlsoft::is_empty logical shim overloads for MFC array containers; +* stlsoft::is_empty logical shim overloads for MFC list containers; +* stlsoft::is_empty logical shim overloads for MFC CString STLSoft; +* stlsoft::cwd_stack::empty() method; +* stlsoft::get_ptr attribute shim overloads for stlsoft::ptr_proxy; +* stlsoft::conversion_error exception class; +* stlsoft::wide2multibyte and stlsoft::multibyte2wide now throw an instance of stlsoft::conversion_error exception if the conversion fails (when exception handling support is on); +* stlsoft::is_empty logical shim overload for standard containers WinSTL; +* winstl::conversion_error exception class; +* winstl::wide2multibyte and winstl::multibyte2wide now throw an instance of winstl::conversion_error exception if the conversion fails (when exception handling support is on); +* winstl::to_FILETIME conversion shim; +* winstl::to_SYSTEMTIME conversion shim; -Changes for 1.9.1 beta 11 (25th June 2006) +## 1.9.1 beta 33 - 13th December 2006 -Unfortunately, the release of beta 10 that was supposed to support recls -1.8.1 was missing some features. Doh! (That'll teach me to release in a hurry.) +* all comstl__??? functions are no longer in the comstl namespace (when in C++ compilation); their non comstl__-prefixed equivalents remain in the comstl namespace. For example, the full name of the comstl::comstl__set_error_info_description_w() function is now comstl__set_error_info_description_w() whether in C or C++; the name of comstl::set_error_info_description_w() remains as it was; +* comstl::IDispatchImpl4; +* comstl::try_interface_cast; -Hopefully, this now corrects that. +## 1.9.1 beta 32 - 6th December 2006 -============================================================================ +* fixed unixstl/unixstl.h (in)compatibility with C compilation; +* fixed platformstl/platformstl.h (in)compatibility with C compilation; -Changes for 1.9.1 beta 10 (18th June 2006) -necessary pre-requisite for recls 1.8.1 (released today) +## 1.9.1 beta 31 - 6th December 2006 -Lots more separation into library-specific sub-directories, and a few -changes, as follows: +* comstl/interface/bad_interface_cast.hpp -> comstl/error/bad_interface_cast.hpp; +* comstl/interface/interface_cast.hpp -> comstl/conversion/interface_cast.hpp; +* comstl/interface/interface_traits.hpp -> comstl/util/interface_traits.hpp; +* comstl::interface_ptr is now deprecated, in favour of stlsoft::ref_ptr; +* comstl::co_create_instance() overloads now also take (a reference to) an instance of stlsof::ref_ptr; +* comstl::interface_cast<>() function templates that cast between instances of the stlsoft::ref_ptr<> "smart pointer" wrappers; +* stlsoft::ref_ptr now takes a third (defaulted) template parameter, which defines the (intermediate) up-cast type when converting from concrete type to interface type; +* stlsoft::ref_ptr::set() method, to facilitate modification of an already constructed instance. (Previously the user was obliged to assign from a temporary instance.); +* winstl::get_kernel_handle shim (winstl/shims/attribute/get_kernel_handle.hpp); +* winstl::get_synch_handle shim (winstl/shims/attribute/get_synch_handle.hpp); +* winstl::event's member type handle_type renamed to synch_handle_type; +* winstl::process_mutex's member type handle_type renamed to synch_handle_type; +* winstl::semaphore's member type handle_type renamed to synch_handle_type; +* winstl/synch/functions.hpp -> winstl/synch/wait_functions.hpp; +* winstl::WaitForMultipleObjects() function suite renamed winstl::wait_for_multiple_objects(), and now implemented in terms of new winstl::get_synch_handle shim; -+ stlsoft/string/copy_functions.hpp +## 1.9.1 beta 30 - 2nd December 2006 -+ atlstl::SupportErrorInfoImpl5 class template - -+ platformstl/path_functions.hpp -+ unixstl/path_functions.hpp -+ winstl/path_functions.hpp - -+ platformstl/sleep_functions.h -+ unixstl/sleep_functions.h -+ winstl/sleep_functions.h - -+ unixstl::basic_file_path_buffer::copy() method -+ winstl::basic_file_path_buffer::copy() method - -+ unixstl::filesystem_traits methods: str_pbrk(), str_end(), - is_root_designator(), and various feature adjustments - -+ unixstl::basic_path methods: clear(), operator [], copy() -+ winstl::basic_path methods: clear(), operator [], copy() - -+ winstl::basic_findfile_sequence: new flags skipHiddenFiles and - skipHiddenDirs - -~ atlstl/string_access.hpp - bug fix in shim using declarations -~ stlsoft/system/commandline_parser.hpp - minor bug fix - -Diffs: -====== - - root-dir-1: H:\3Pty\stlsoft\1.9.1-beta9\include - root-dir-2: H:\STLSoft\Releases\current\STLSoft\include -Items unchanged from H:\3Pty\stlsoft\1.9.1-beta9\include to H:\STLSoft\Releases\current\STLSoft\include: 1033 -Items changed from H:\3Pty\stlsoft\1.9.1-beta9\include to H:\STLSoft\Releases\current\STLSoft\include: 124 -Items changed (major) from H:\3Pty\stlsoft\1.9.1-beta9\include to H:\STLSoft\Releases\current\STLSoft\include: 0 -Items changed (minor) from H:\3Pty\stlsoft\1.9.1-beta9\include to H:\STLSoft\Releases\current\STLSoft\include: 8 - atlstl\support_error_info.hpp 4.2.1.58 => 4.3.1.59 ; 10th June 2006 => 14th June 2006 - stlsoft\sign_traits.hpp 3.2.2.36 => 3.3.1.37 ; 10th June 2006 => 15th June 2006 - unixstl\filesystem\filesystem_traits.hpp 4.0.2.87 => 4.2.1.89 ; 10th June 2006 => 14th June 2006 - unixstl\filesystem\path.hpp 6.1.3.204 => 6.2.2.206 ; 10th June 2006 => 18th June 2006 - winstl\filesystem\file_path_buffer.hpp 4.0.2.99 => 4.1.1.100 ; 10th June 2006 => 13th June 2006 - winstl\filesystem\filesystem_traits.hpp 4.0.1.91 => 4.2.1.93 ; 10th June 2006 => 17th June 2006 - winstl\filesystem\findfile_sequence.hpp 4.0.3.177 => 4.1.1.179 ; 10th June 2006 => 17th June 2006 - winstl\filesystem\path.hpp 6.1.2.214 => 6.2.2.216 ; 10th June 2006 => 18th June 2006 -Items changed (revision) from H:\3Pty\stlsoft\1.9.1-beta9\include to H:\STLSoft\Releases\current\STLSoft\include: 26 - atlstl\string_access.hpp 3.2.3.84 => 3.2.4.85 ; 10th June 2006 => 13th June 2006 - comstl\enumerator_sequence.hpp 5.6.5.214 => 5.6.6.215 ; 10th June 2006 => 14th June 2006 - inetstl\findfile_sequence.hpp 2.11.5.107 => 2.11.6.108 ; 10th June 2006 => 13th June 2006 - platformstl\filesystem\path.hpp 2.0.1.15 => 2.0.2.17 ; 10th June 2006 => 13th June 2006 - stlsoft\conversion\union_cast.hpp 5.0.1.51 => 5.0.2.52 ; 10th June 2006 => 18th June 2006 - stlsoft\internal\cccap\dmc.h 3.8.1.70 => 3.8.2.71 ; 10th June 2006 => 16th June 2006 - stlsoft\iterators\transform_iterator.hpp 2.0.12.105 => 2.0.13.106 ; 10th June 2006 => 13th June 2006 - stlsoft\memory\auto_buffer.hpp 5.0.2.140 => 5.0.3.141 ; 10th June 2006 => 18th June 2006 - stlsoft\system\commandline_parser.hpp 2.0.1.22 => 2.0.2.23 ; 11th June 2006 => 18th June 2006 - unixstl\performance\performance_counter.hpp 4.0.1.50 => 4.0.2.51 ; 30th May 2006 => 11th June 2006 - unixstl\performance\processtimes_counter.hpp 1.0.1.2 => 1.0.2.3 ; 10th June 2006 => 11th June 2006 - winstl\control_panel\applet_module.hpp 1.1.3.5 => 1.1.5.7 ; 6th June 2006 => 18th June 2006 - winstl\control_panel\exceptions.hpp 1.0.1.5 => 1.0.2.6 ; 27th May 2006 => 18th June 2006 - winstl\control_panel\functions.h 1.0.3.4 => 1.0.4.6 ; 27th May 2006 => 18th June 2006 - winstl\controls\functionals.hpp 4.0.1.62 => 4.0.2.63 ; 10th June 2006 => 14th June 2006 - winstl\conversion\windows_type_conversions.hpp 4.0.1.31 => 4.0.2.32 ; 11th June 2006 => 18th June 2006 - winstl\filesystem\path_functions.hpp 1.0.2.3 => 1.0.3.5 ; 10th June 2006 => 17th June 2006 - winstl\registry\shared_handles.hpp 1.0.6.11 => 1.0.7.12 ; 10th June 2006 => 14th June 2006 - winstl\system\commandline_parser.hpp 2.0.1.22 => 2.0.2.23 ; 10th June 2006 => 18th June 2006 - winstl\system\console_functions.h 2.0.1.7 => 2.0.2.9 ; 10th June 2006 => 18th June 2006 - winstl\system\pid_sequence.hpp 2.0.1.31 => 2.0.3.34 ; 10th June 2006 => 14th June 2006 - winstl\system\process_module_sequence.hpp 2.0.1.29 => 2.0.2.31 ; 10th June 2006 => 14th June 2006 - winstl\system\searchpath_sequence.hpp 4.0.1.76 => 4.0.2.77 ; 10th June 2006 => 13th June 2006 - winstl\time_format_functions.h 3.3.3.43 => 3.3.4.45 ; 10th June 2006 => 18th June 2006 - winstl\window_functions.h 3.3.1.47 => 3.3.2.50 ; 10th June 2006 => 18th June 2006 - winstl\winstl_int_to_string.h 1.5.2.28 => 1.5.3.30 ; 11th June 2006 => 18th June 2006 -Items changed (edit) from H:\3Pty\stlsoft\1.9.1-beta9\include to H:\STLSoft\Releases\current\STLSoft\include: 59 -Items changed (unversioned) from H:\3Pty\stlsoft\1.9.1-beta9\include to H:\STLSoft\Releases\current\STLSoft\include: 31 - comstl\bstr_functions.h 3.1.1.63 => ... ; 10th June 2006 => - comstl\olestring.hpp ... => ... ; => - comstl\olestring_functions.h 4.2.1.145 => ... ; 10th June 2006 => - platformstl\environment_map.hpp 1.7.5.33 => ... ; 10th June 2006 => - platformstl\environment_variable_traits.hpp 1.3.2.11 => ... ; 10th June 2006 => - platformstl\file_path_buffer.hpp 1.2.2.15 => ... ; 10th June 2006 => - platformstl\module.hpp 1.0.4.9 => ... ; 10th June 2006 => - platformstl\performance\performance_counter.hpp 2.0.1.11 => 2.0.1.11 ; 10th June 2006 => 12th June 2006 - platformstl\performance\processtimes_counter.hpp 1.0.1.2 => 1.0.1.2 ; 10th June 2006 => 12th June 2006 - platformstl\readdir_sequence.hpp 1.0.1.2 => ... ; 10th June 2006 => - platformstl\synch\process_mutex.hpp 2.0.1.12 => 2.0.1.12 ; 10th June 2006 => 12th June 2006 - platformstl\synch\semaphore.hpp 1.0.1.4 => 1.0.1.4 ; 10th June 2006 => 12th June 2006 - platformstl\synch\spin_mutex.hpp 2.0.2.13 => 2.0.2.13 ; 10th June 2006 => 12th June 2006 - platformstl\synch\thread_mutex.hpp 2.0.1.12 => 2.0.1.12 ; 10th June 2006 => 12th June 2006 - platformstl\synch\tss_index.hpp 2.0.1.12 => 2.0.1.12 ; 10th June 2006 => 12th June 2006 - stlsoft_integer_to_string.h ... => ... ; => - unixstl\dl_call.hpp 1.4.1.17 => ... ; 10th June 2006 => - unixstl\filesystem\unittest\filesystem_traits_unittest_.h ... => ... ; 31st May 2006 => 14th June 2006 - unixstl\module.hpp 5.3.2.201 => ... ; 10th June 2006 => - unixstl\time_functions.h 1.1.1.5 => ... ; 10th June 2006 => - unixstl_module.h ... => ... ; => - winstl\dl_call.hpp 1.5.1.19 => ... ; 10th June 2006 => - winstl\filesystem\unittest\path_functions_unittest_.h ... => ... ; 10th June 2006 => 11th June 2006 - winstl\module.hpp 5.4.2.209 => ... ; 10th June 2006 => - winstl\process_status.h ... => ... ; => - winstl_acl_sequence.h ... => ... ; => - winstl_char_conversions.h ... => ... ; => - winstl_module.h ... => ... ; => - winstl_system_version.h ... => ... ; => - winstl_token_information.h ... => ... ; => - winstl_windows_type_conversions.h ... => ... ; => -Items deleted from H:\3Pty\stlsoft\1.9.1-beta9\include: 8 - H:\3Pty\stlsoft\1.9.1-beta9\include\STLSoft-ReleaseNotes-1.9.1-beta9.txt - H:\3Pty\stlsoft\1.9.1-beta9\include\comstl\unittest\bstr_functions_unittest_.h - H:\3Pty\stlsoft\1.9.1-beta9\include\comstl\unittest\olestring_functions_unittest_.h - H:\3Pty\stlsoft\1.9.1-beta9\include\readme.txt - H:\3Pty\stlsoft\1.9.1-beta9\include\unixstl\unittest\dl_call_unittest_.h - H:\3Pty\stlsoft\1.9.1-beta9\include\unixstl\unittest\module_unittest_.h - H:\3Pty\stlsoft\1.9.1-beta9\include\winstl\unittest\dl_call_unittest_.h - H:\3Pty\stlsoft\1.9.1-beta9\include\winstl\unittest\module_unittest_.h -Items added to H:\STLSoft\Releases\current\STLSoft\include: 38 - H:\STLSoft\Releases\current\STLSoft\include\comstl\string\bstr_functions.h - H:\STLSoft\Releases\current\STLSoft\include\comstl\string\olestring_functions.h - H:\STLSoft\Releases\current\STLSoft\include\comstl\string\unittest\bstr_functions_unittest_.h - H:\STLSoft\Releases\current\STLSoft\include\comstl\string\unittest\olestring_functions_unittest_.h - H:\STLSoft\Releases\current\STLSoft\include\debug - H:\STLSoft\Releases\current\STLSoft\include\platformstl\debug - H:\STLSoft\Releases\current\STLSoft\include\platformstl\debugunix - H:\STLSoft\Releases\current\STLSoft\include\platformstl\dl\module.hpp - H:\STLSoft\Releases\current\STLSoft\include\platformstl\filesystem\file_path_buffer.hpp - H:\STLSoft\Releases\current\STLSoft\include\platformstl\filesystem\path_functions.hpp - H:\STLSoft\Releases\current\STLSoft\include\platformstl\filesystem\readdir_sequence.hpp - H:\STLSoft\Releases\current\STLSoft\include\platformstl\synch\sleep_functions.h - H:\STLSoft\Releases\current\STLSoft\include\platformstl\system\environment_map.hpp - H:\STLSoft\Releases\current\STLSoft\include\platformstl\system\environment_variable_traits.hpp - H:\STLSoft\Releases\current\STLSoft\include\platformstl\system\unittest\environment_map_unittest_.h - H:\STLSoft\Releases\current\STLSoft\include\readme.html - H:\STLSoft\Releases\current\STLSoft\include\release - H:\STLSoft\Releases\current\STLSoft\include\releasemt - H:\STLSoft\Releases\current\STLSoft\include\stlsoft\string\copy_functions.hpp - H:\STLSoft\Releases\current\STLSoft\include\stlsoft\string\unittest\copy_functions_unittest_.h - H:\STLSoft\Releases\current\STLSoft\include\stlsoft\string\unittest\cstring_functions_unittest_.h - H:\STLSoft\Releases\current\STLSoft\include\unixstl\dl\dl_call.hpp - H:\STLSoft\Releases\current\STLSoft\include\unixstl\dl\module.hpp - H:\STLSoft\Releases\current\STLSoft\include\unixstl\dl\unittest\dl_call_unittest_.h - H:\STLSoft\Releases\current\STLSoft\include\unixstl\dl\unittest\module_unittest_.h - H:\STLSoft\Releases\current\STLSoft\include\unixstl\filesystem\path_functions.hpp - H:\STLSoft\Releases\current\STLSoft\include\unixstl\synch\sleep_functions.h - H:\STLSoft\Releases\current\STLSoft\include\winstl\dl\dl_call.hpp - H:\STLSoft\Releases\current\STLSoft\include\winstl\dl\module.hpp - H:\STLSoft\Releases\current\STLSoft\include\winstl\dl\unittest\dl_call_unittest_.h - H:\STLSoft\Releases\current\STLSoft\include\winstl\dl\unittest\module_unittest_.h - H:\STLSoft\Releases\current\STLSoft\include\winstl\nt\lm\share.h - H:\STLSoft\Releases\current\STLSoft\include\winstl\nt\net\util.hpp - H:\STLSoft\Releases\current\STLSoft\include\winstl\resources\resource_holders.hpp - H:\STLSoft\Releases\current\STLSoft\include\winstl\synch\sleep_functions.h - H:\STLSoft\Releases\current\STLSoft\include\x\atlstl\about_dialog.hpp - H:\STLSoft\Releases\current\STLSoft\include\x\wtlstl_x_simple_help_window.h - H:\STLSoft\Releases\current\STLSoft\include\x\wtlstl_x_synesis_controls.h - - -============================================================================ - -Changes for 1.9.1 beta 9 (11th June 2006) - -not listed - just file/directory changes - - -============================================================================ - -Changes for 1.9.1 beta 8 (7th June 2006) - -Most changes are the movement of files into library-specific directories, e.g. - winstl/event.hpp => winstl/synch/event.hpp - -I've also removed the per-component c_str_size shim functions, and added a -corresponding template version in stlsoft/string_access.hpp. It can still be -overriden on a per-component basis, if needed. - -I've added c_str_ptr_a/_w, c_str_data_a/_w for nearly all components for which -c_str_ptr and c_str_data were already defined. (The few remaining are all -so-called "special string instances" - e.g. current_directory, absolute_path, -windows_directory, etc. - whose implementations are to be refactored using a -new special_string_instance class template, likely included in the next -release.) - - -NOTE: Make sure you delete your previous 1.9 beta X files, or install to a -new directory. Otherwise, you may incur subtle compile errors. - -Diffs: -====== - - root-dir-1: H:\3Pty\stlsoft\1.9.1-beta7\include - root-dir-2: H:\STLSoft\Releases\current\STLSoft\include -Items unchanged from H:\3Pty\stlsoft\1.9.1-beta7\include to H:\STLSoft\Releases\current\STLSoft\include: 848 -Items changed from H:\3Pty\stlsoft\1.9.1-beta7\include to H:\STLSoft\Releases\current\STLSoft\include: 202 -Items changed (major) from H:\3Pty\stlsoft\1.9.1-beta7\include to H:\STLSoft\Releases\current\STLSoft\include: 0 -Items changed (minor) from H:\3Pty\stlsoft\1.9.1-beta7\include to H:\STLSoft\Releases\current\STLSoft\include: 6 - stlsoft\string_access.hpp 3.3.2.76 => 3.5.1.79 ; 8th February 2006 => 6th June 2006 - stlsoft\string_access_fwd.hpp 1.1.1.5 => 1.2.2.7 ; 21st March 2006 => 6th June 2006 - unixstl\filesystem\path.hpp 6.0.2.199 => 6.1.3.202 ; 31st May 2006 => 6th June 2006 - winstl\filesystem\findvolume_sequence.hpp 4.0.1.87 => 4.1.2.91 ; 31st May 2006 => 6th June 2006 - winstl\filesystem\path.hpp 6.0.1.208 => 6.1.2.213 ; 31st May 2006 => 6th June 2006 - winstl\string_access.hpp 3.2.1.92 => 3.3.3.95 ; 21st March 2006 => 6th June 2006 -Items changed (revision) from H:\3Pty\stlsoft\1.9.1-beta7\include to H:\STLSoft\Releases\current\STLSoft\include: 38 - acestl\inet_addr_string_access.hpp 1.6.2.22 => 1.6.3.24 ; 31st May 2006 => 6th June 2006 - acestl\string_string_access.hpp 1.2.2.14 => 1.2.4.16 ; 21st March 2006 => 6th June 2006 - acestl\time_string_access.hpp 1.3.1.19 => 1.3.2.20 ; 20th February 2006 => 6th June 2006 - atlstl\ccombstr_veneer.hpp 4.2.3.48 => 4.2.4.49 ; 31st May 2006 => 6th June 2006 - atlstl\string_access.hpp 3.2.1.79 => 3.2.3.82 ; 9th February 2006 => 6th June 2006 - comstl\errorinfo_desc.hpp 0.3.1.10 => 0.3.2.11 ; 5th February 2006 => 6th June 2006 - comstl\guid.hpp 3.3.1.25 => 3.3.2.26 ; 21st March 2006 => 6th June 2006 - comstl\string_access.hpp 4.2.2.90 => 4.2.3.91 ; 8th February 2006 => 6th June 2006 - inetstl\findfile_sequence.hpp 2.11.3.102 => 2.11.5.105 ; 21st March 2006 => 6th June 2006 - mfcstl\resource_string.hpp 3.3.1.64 => 3.3.3.66 ; 5th February 2006 => 6th June 2006 - mfcstl\string_access.hpp 3.3.1.70 => 3.3.3.72 ; 6th February 2006 => 6th June 2006 - mfcstl_cstring_veneer.h 3.1.1.58 => 3.1.2.59 ; 8th February 2006 => 6th June 2006 - platformstl\synch\spin_mutex.hpp 2.0.1.9 => 2.0.2.11 ; 30th May 2006 => 3rd June 2006 - stlsoft\exception_string_access.hpp 1.3.2.19 => 1.3.3.20 ; 12th May 2006 => 6th June 2006 - stlsoft\integer_to_string.hpp 3.3.2.63 => 3.3.4.65 ; 8th February 2006 => 6th June 2006 - stlsoft\iterators\indirect_reverse_iterator.hpp 2.2.2.19 => 2.2.3.20 ; 21st March 2006 => 1st June 2006 - stlsoft\memory\allocator_base.hpp 4.1.1.30 => 4.1.2.32 ; 27th March 2006 => 3rd June 2006 - stlsoft\memory\auto_buffer.hpp 5.0.1.136 => 5.0.2.139 ; 29th May 2006 => 4th June 2006 - stlsoft\sap_cast.hpp 3.3.4.33 => 3.3.5.34 ; 4th April 2006 => 3rd June 2006 - stlsoft\sign_traits.hpp 3.2.1.34 => 3.2.2.35 ; 5th February 2006 => 2nd June 2006 - stlsoft\union_cast.hpp 4.3.2.48 => 4.3.3.49 ; 21st March 2006 => 3rd June 2006 - unixstl\filesystem\current_directory.hpp 4.0.2.40 => 4.0.3.42 ; 31st May 2006 => 6th June 2006 - unixstl\filesystem\current_directory_scope.hpp 5.0.2.97 => 5.0.3.98 ; 31st May 2006 => 6th June 2006 - unixstl\filesystem\file_path_buffer.hpp 4.0.2.44 => 4.0.3.45 ; 31st May 2006 => 6th June 2006 - unixstl\memory_mapped_file.hpp 3.3.2.61 => 3.3.3.63 ; 31st May 2006 => 4th June 2006 - unixstl\string_access.hpp 3.1.1.36 => 3.1.3.38 ; 21st March 2006 => 6th June 2006 - winstl\char_conversions.hpp 3.5.7.65 => 3.5.9.67 ; 31st May 2006 => 6th June 2006 - winstl\controls\edit_line_sequence.hpp 1.0.1.1 => 1.0.2.2 ; 30th May 2006 => 6th June 2006 - winstl\filesystem\current_directory.hpp 4.0.1.55 => 4.0.2.58 ; 31st May 2006 => 6th June 2006 - winstl\filesystem\current_directory_scope.hpp 5.0.1.102 => 5.0.2.104 ; 31st May 2006 => 6th June 2006 - winstl\filesystem\file_path_buffer.hpp 4.0.1.95 => 4.0.2.98 ; 31st May 2006 => 6th June 2006 - winstl\filesystem\findfile_sequence.hpp 4.0.1.173 => 4.0.3.176 ; 31st May 2006 => 6th June 2006 - winstl\listview_sequence.hpp 3.4.3.54 => 3.4.5.57 ; 31st May 2006 => 6th June 2006 - winstl\memory_mapped_file.hpp 3.5.1.61 => 3.5.3.63 ; 29th May 2006 => 2nd June 2006 - winstl\module.hpp 5.4.1.206 => 5.4.2.207 ; 31st May 2006 => 1st June 2006 - winstl\resource_string.hpp 3.3.3.65 => 3.3.4.66 ; 21st May 2006 => 6th June 2006 - winstl\synch\functions.hpp 1.0.1.1 => 1.0.2.3 ; 30th May 2006 => 6th June 2006 - winstl\time_string_access.hpp 1.3.3.24 => 1.3.5.26 ; 21st March 2006 => 6th June 2006 -Items changed (edit) from H:\3Pty\stlsoft\1.9.1-beta7\include to H:\STLSoft\Releases\current\STLSoft\include: 49 -Items changed (unversioned) from H:\3Pty\stlsoft\1.9.1-beta7\include to H:\STLSoft\Releases\current\STLSoft\include: 109 -Items deleted from H:\3Pty\stlsoft\1.9.1-beta7\include: 31 -Items added to H:\STLSoft\Releases\current\STLSoft\include: 75 - - -============================================================================ - -Changes for 1.9.1 beta 7 (1st June 2006) - -Almost all changes are to move components' files around to suite the -directory structure corresponding to their libraries. - -There are just a couple of bug fixes and enhancements. Nothing that's going -to break existing code. - -Diffs: -====== - - root-dir-1: H:\3Pty\stlsoft\1.9.1-beta6\include - root-dir-2: H:\3Pty\stlsoft\1.9.1-beta7\include -Items unchanged from H:\3Pty\stlsoft\1.9.1-beta6\include to H:\3Pty\stlsoft\1.9.1-beta7\include: 885 -Items changed from H:\3Pty\stlsoft\1.9.1-beta6\include to H:\3Pty\stlsoft\1.9.1-beta7\include: 92 -Items changed (major) from H:\3Pty\stlsoft\1.9.1-beta6\include to H:\3Pty\stlsoft\1.9.1-beta7\include: 0 -Items changed (minor) from H:\3Pty\stlsoft\1.9.1-beta6\include to H:\3Pty\stlsoft\1.9.1-beta7\include: 4 - stlsoft\handle_access.hpp 1.2.1.11 => 1.3.2.13 ; 21st March 2006 => 31st May 2006 - winstl\handle_access.hpp 1.2.1.11 => 1.3.1.12 ; 21st March 2006 => 31st May 2006 - winstl\memory_mapped_file.hpp 3.4.1.59 => 3.5.1.61 ; 21st March 2006 => 29th May 2006 - winstl\module.hpp 5.3.2.205 => 5.4.1.206 ; 21st May 2006 => 31st May 2006 -Items changed (revision) from H:\3Pty\stlsoft\1.9.1-beta6\include to H:\3Pty\stlsoft\1.9.1-beta7\include: 31 - acestl\inet_addr_string_access.hpp 1.6.1.21 => 1.6.2.22 ; 25th March 2006 => 31st May 2006 - atlstl\about_dialog.hpp 3.3.1.40 => 3.3.2.41 ; 25th March 2006 => 31st May 2006 - atlstl\ccombstr_veneer.hpp 4.2.2.47 => 4.2.3.48 ; 8th February 2006 => 31st May 2006 - platformstl\environment_variable_traits.hpp 1.3.1.9 => 1.3.2.10 ; 21st March 2006 => 31st May 2006 - platformstl\file_path_buffer.hpp 1.2.1.13 => 1.2.2.14 ; 5th February 2006 => 31st May 2006 - platformstl\filesystem_traits.hpp 1.0.6.10 => 1.0.7.11 ; 21st March 2006 => 31st May 2006 - stlsoft\containers\environment_block.hpp 4.1.1.29 => 4.1.2.30 ; 24th May 2006 => 31st May 2006 - stlsoft\containers\pod_vector.hpp 4.1.1.56 => 4.1.2.57 ; 25th March 2006 => 31st May 2006 - stlsoft\shim_string.hpp 2.4.1.22 => 2.4.2.23 ; 25th March 2006 => 29th May 2006 - stlsoft\simple_string.hpp 3.12.1.215 => 3.12.2.216 ; 8th April 2006 => 29th May 2006 - stlsoft\static_string.hpp 3.8.1.168 => 3.8.2.169 ; 25th March 2006 => 31st May 2006 - stlsoft\util\exception_string.hpp 1.2.1.7 => 1.2.2.8 ; 25th March 2006 => 29th May 2006 - unixstl\memory_mapped_file.hpp 3.3.1.60 => 3.3.2.61 ; 21st March 2006 => 31st May 2006 - unixstl_findfile_sequence.h 3.3.1.61 => 3.3.2.62 ; 25th May 2006 => 31st May 2006 - winstl\char_conversions.hpp 3.5.6.64 => 3.5.7.65 ; 6th April 2006 => 31st May 2006 - winstl\commandline_parser.hpp 1.3.2.19 => 1.3.3.20 ; 24th March 2006 => 31st May 2006 - winstl\controls\listbox_const_iterator.hpp 4.1.2.55 => 4.1.3.56 ; 24th March 2006 => 31st May 2006 - winstl\drophandle_sequence.hpp 3.3.2.72 => 3.3.3.73 ; 24th March 2006 => 31st May 2006 - winstl\environment_block.hpp 3.4.2.40 => 3.4.3.41 ; 24th March 2006 => 31st May 2006 - winstl\environment_sequence.hpp 3.6.5.61 => 3.6.6.62 ; 24th March 2006 => 31st May 2006 - winstl\environment_variable.hpp 3.3.3.50 => 3.3.4.51 ; 24th March 2006 => 31st May 2006 - winstl\listview_sequence.hpp 3.4.2.53 => 3.4.3.54 ; 24th March 2006 => 31st May 2006 - winstl\pid_sequence.hpp 1.7.4.28 => 1.7.5.29 ; 24th March 2006 => 31st May 2006 - winstl\process_module_sequence.hpp 1.6.4.26 => 1.6.5.27 ; 24th March 2006 => 31st May 2006 - winstl\registry\reg_key.hpp 3.3.9.100 => 3.3.10.101 ; 23rd May 2006 => 31st May 2006 - winstl\registry\reg_key_sequence.hpp 3.6.1.107 => 3.6.2.108 ; 22nd May 2006 => 31st May 2006 - winstl\registry\reg_value.hpp 3.0.6.76 => 3.0.7.77 ; 22nd May 2006 => 31st May 2006 - winstl\registry\reg_value_sequence.hpp 3.4.1.99 => 3.4.2.100 ; 22nd May 2006 => 31st May 2006 - winstl\searchpath_sequence.hpp 3.6.3.72 => 3.6.4.73 ; 24th March 2006 => 31st May 2006 - winstl\time_format_functions.h 3.3.2.40 => 3.3.3.41 ; 24th March 2006 => 29th May 2006 - winstl\window_text_scope.hpp 3.3.2.27 => 3.3.3.28 ; 24th March 2006 => 31st May 2006 -Items changed (edit) from H:\3Pty\stlsoft\1.9.1-beta6\include to H:\3Pty\stlsoft\1.9.1-beta7\include: 0 -Items changed (unversioned) from H:\3Pty\stlsoft\1.9.1-beta6\include to H:\3Pty\stlsoft\1.9.1-beta7\include: 59 - platformstl\atomic_functions.h 1.1.4.11 => ... ; 21st March 2006 => - platformstl\performance_counter.hpp 1.0.4.8 => ... ; 21st March 2006 => - platformstl\process_mutex.hpp 1.0.4.8 => ... ; 21st March 2006 => - platformstl\spin_mutex.hpp 1.0.4.8 => ... ; 21st March 2006 => - platformstl\thread_mutex.hpp 1.0.4.8 => ... ; 21st March 2006 => - platformstl\tss_index.hpp 1.0.4.8 => ... ; 21st March 2006 => - stlsoft\auto_buffer.hpp 4.5.1.135 => ... ; 24th May 2006 => - stlsoft\auto_destructor.hpp 4.1.2.58 => ... ; 21st March 2006 => - stlsoft\lock_scope.hpp 5.2.1.102 => ... ; 5th February 2006 => - stlsoft_auto_buffer.h ... => ... ; => - unixstl\atomic_functions.h 4.1.1.182 => ... ; 21st March 2006 => - unixstl\current_directory.hpp 3.3.1.38 => ... ; 21st March 2006 => - unixstl\current_directory_scope.hpp 4.2.2.95 => ... ; 21st March 2006 => - unixstl\directory_functions.hpp 2.4.2.25 => ... ; 21st March 2006 => - unixstl\environment_variable.hpp 3.5.1.51 => ... ; 25th March 2006 => - unixstl\file_path_buffer.hpp 3.6.1.42 => ... ; 25th March 2006 => - unixstl\filesystem_functionals.hpp 3.3.1.35 => ... ; 21st March 2006 => - unixstl\filesystem_traits.hpp 3.7.2.84 => ... ; 21st March 2006 => - unixstl\glob_sequence.hpp 4.12.1.118 => ... ; 25th March 2006 => - unixstl\module.hpp 5.3.2.199 => 5.3.2.199 ; 25th May 2006 => 30th May 2006 - unixstl\path.hpp 5.8.1.196 => ... ; 24th May 2006 => - unixstl\performance_counter.hpp 3.1.1.49 => ... ; 26th May 2006 => - unixstl\process_mutex.hpp 3.3.1.45 => ... ; 21st March 2006 => - unixstl\readdir_sequence.hpp 4.7.4.102 => ... ; 29th April 2006 => - unixstl\spin_mutex.hpp 3.2.2.41 => ... ; 21st March 2006 => - unixstl\thread_mutex.hpp 3.2.1.33 => ... ; 21st March 2006 => - unixstl\time_functions.h 1.1.1.4 => 1.1.1.4 ; 21st March 2006 => 30th May 2006 - unixstl\tss_index.hpp 2.2.1.31 => ... ; 21st March 2006 => - unixstl\unittest\pipe_unittest_.h ... => ... ; 2nd September 2005 => 30th May 2006 - unixstl_glob_sequence.h ... => ... ; => - winstl\absolute_path.hpp 3.2.4.49 => ... ; 28th March 2006 => - winstl\atomic_functions.h 4.1.2.188 => ... ; 21st March 2006 => - winstl\control_creation_functions.h 1.1.1.9 => ... ; 21st March 2006 => - winstl\control_functionals.hpp 3.3.1.59 => ... ; 21st March 2006 => - winstl\control_functions.h 3.1.1.35 => ... ; 21st March 2006 => - winstl\current_directory.hpp 3.3.1.54 => ... ; 21st March 2006 => - winstl\current_directory_scope.hpp 4.3.3.101 => ... ; 21st March 2006 => - winstl\directory_functions.hpp 3.2.1.32 => ... ; 25th March 2006 => - winstl\event.hpp 3.4.1.40 => ... ; 21st March 2006 => - winstl\file_creation_functions.h 1.1.1.3 => ... ; 21st March 2006 => - winstl\file_functions.hpp 1.5.3.26 => ... ; 24th March 2006 => - winstl\file_path_buffer.hpp 3.4.6.93 => ... ; 9th April 2006 => - winstl\filesystem_functionals.hpp 3.2.1.66 => ... ; 21st March 2006 => - winstl\filesystem_functions.hpp ... => ... ; => - winstl\filesystem_traits.hpp 3.7.2.86 => ... ; 21st March 2006 => - winstl\findfile_sequence.hpp 3.10.6.172 => ... ; 29th April 2006 => - winstl\findvolume_sequence.hpp 3.3.1.86 => ... ; 21st March 2006 => - winstl\highperformance_counter.hpp 3.2.3.73 => ... ; 26th May 2006 => - winstl\multimedia_counter.hpp 3.1.1.32 => ... ; 26th May 2006 => - winstl\path.hpp 5.8.4.205 => ... ; 26th May 2006 => - winstl\performance_counter.hpp 3.2.2.16 => ... ; 26th May 2006 => - winstl\process_mutex.hpp 3.2.2.38 => ... ; 21st March 2006 => - winstl\processtimes_counter.hpp 3.1.1.46 => ... ; 26th May 2006 => - winstl\spin_mutex.hpp 3.2.2.40 => ... ; 21st March 2006 => - winstl\systemtime_counter.hpp 3.1.1.34 => ... ; 21st March 2006 => - winstl\thread_mutex.hpp 3.2.2.39 => ... ; 21st March 2006 => - winstl\threadtimes_counter.hpp 3.1.1.38 => ... ; 26th May 2006 => - winstl\tick_counter.hpp 3.1.1.36 => ... ; 26th May 2006 => - winstl\tss_index.hpp 3.2.1.23 => ... ; 21st March 2006 => -Items deleted from H:\3Pty\stlsoft\1.9.1-beta6\include: 37 - H:\3Pty\stlsoft\1.9.1-beta6\include\stlsoft\unittest\auto_buffer_unittest_.h - H:\3Pty\stlsoft\1.9.1-beta6\include\unixstl\unittest\atomic_functions_unittest_.h - H:\3Pty\stlsoft\1.9.1-beta6\include\unixstl\unittest\current_directory_scope_unittest_.h - H:\3Pty\stlsoft\1.9.1-beta6\include\unixstl\unittest\current_directory_unittest_.h - H:\3Pty\stlsoft\1.9.1-beta6\include\unixstl\unittest\directory_functions_unittest_.h - H:\3Pty\stlsoft\1.9.1-beta6\include\unixstl\unittest\environment_variable_unittest_.h - H:\3Pty\stlsoft\1.9.1-beta6\include\unixstl\unittest\file_path_buffer_unittest_.h - H:\3Pty\stlsoft\1.9.1-beta6\include\unixstl\unittest\filesystem_traits_unittest_.h - H:\3Pty\stlsoft\1.9.1-beta6\include\unixstl\unittest\glob_sequence_unittest_.h - H:\3Pty\stlsoft\1.9.1-beta6\include\unixstl\unittest\path_unittest_.h - H:\3Pty\stlsoft\1.9.1-beta6\include\unixstl\unittest\process_mutex_unittest_.h - H:\3Pty\stlsoft\1.9.1-beta6\include\unixstl\unittest\readdir_sequence_unittest_.h - H:\3Pty\stlsoft\1.9.1-beta6\include\unixstl\unittest\spin_mutex_unittest_.h - H:\3Pty\stlsoft\1.9.1-beta6\include\unixstl\unittest\thread_mutex_unittest_.h - H:\3Pty\stlsoft\1.9.1-beta6\include\winstl\unittest\absolute_path_unittest_.h - H:\3Pty\stlsoft\1.9.1-beta6\include\winstl\unittest\atomic_functions_unittest_.h - H:\3Pty\stlsoft\1.9.1-beta6\include\winstl\unittest\current_directory_scope_unittest_.h - H:\3Pty\stlsoft\1.9.1-beta6\include\winstl\unittest\current_directory_unittest_.h - H:\3Pty\stlsoft\1.9.1-beta6\include\winstl\unittest\directory_functions_unittest_.h - H:\3Pty\stlsoft\1.9.1-beta6\include\winstl\unittest\event_unittest_.h - H:\3Pty\stlsoft\1.9.1-beta6\include\winstl\unittest\file_functions_unittest_.h - H:\3Pty\stlsoft\1.9.1-beta6\include\winstl\unittest\file_path_buffer_unittest_.h - H:\3Pty\stlsoft\1.9.1-beta6\include\winstl\unittest\filesystem_functionals_unittest_.h - H:\3Pty\stlsoft\1.9.1-beta6\include\winstl\unittest\filesystem_traits_unittest_.h - H:\3Pty\stlsoft\1.9.1-beta6\include\winstl\unittest\findfile_sequence_unittest_.h - H:\3Pty\stlsoft\1.9.1-beta6\include\winstl\unittest\findvolume_sequence_unittest_.h - H:\3Pty\stlsoft\1.9.1-beta6\include\winstl\unittest\highperformance_counter_unittest_.h - H:\3Pty\stlsoft\1.9.1-beta6\include\winstl\unittest\multimedia_counter_unittest_.h - H:\3Pty\stlsoft\1.9.1-beta6\include\winstl\unittest\path_unittest_.h - H:\3Pty\stlsoft\1.9.1-beta6\include\winstl\unittest\performance_counter_unittest_.h - H:\3Pty\stlsoft\1.9.1-beta6\include\winstl\unittest\process_mutex_unittest_.h - H:\3Pty\stlsoft\1.9.1-beta6\include\winstl\unittest\processtimes_counter_unittest_.h - H:\3Pty\stlsoft\1.9.1-beta6\include\winstl\unittest\spin_mutex_unittest_.h - H:\3Pty\stlsoft\1.9.1-beta6\include\winstl\unittest\systemtime_counter_unittest_.h - H:\3Pty\stlsoft\1.9.1-beta6\include\winstl\unittest\thread_mutex_unittest_.h - H:\3Pty\stlsoft\1.9.1-beta6\include\winstl\unittest\threadtimes_counter_unittest_.h - H:\3Pty\stlsoft\1.9.1-beta6\include\winstl\unittest\tick_counter_unittest_.h -Items added to H:\3Pty\stlsoft\1.9.1-beta7\include: 104 - H:\3Pty\stlsoft\1.9.1-beta7\include\platformstl\filesystem\directory_functions.hpp - H:\3Pty\stlsoft\1.9.1-beta7\include\platformstl\performance\performance_counter.hpp - H:\3Pty\stlsoft\1.9.1-beta7\include\platformstl\synch\atomic_functions.h - H:\3Pty\stlsoft\1.9.1-beta7\include\platformstl\synch\process_mutex.hpp - H:\3Pty\stlsoft\1.9.1-beta7\include\platformstl\synch\semaphore.hpp - H:\3Pty\stlsoft\1.9.1-beta7\include\platformstl\synch\spin_mutex.hpp - H:\3Pty\stlsoft\1.9.1-beta7\include\platformstl\synch\thread_mutex.hpp - H:\3Pty\stlsoft\1.9.1-beta7\include\platformstl\synch\tss_index.hpp - H:\3Pty\stlsoft\1.9.1-beta7\include\stlsoft\memory\auto_buffer.hpp - H:\3Pty\stlsoft\1.9.1-beta7\include\stlsoft\memory\auto_destructor.hpp - H:\3Pty\stlsoft\1.9.1-beta7\include\stlsoft\memory\unittest\auto_buffer_unittest_.h - H:\3Pty\stlsoft\1.9.1-beta7\include\stlsoft\synch\lock_scope.hpp - H:\3Pty\stlsoft\1.9.1-beta7\include\unixstl\filesystem\current_directory.hpp - H:\3Pty\stlsoft\1.9.1-beta7\include\unixstl\filesystem\current_directory_scope.hpp - H:\3Pty\stlsoft\1.9.1-beta7\include\unixstl\filesystem\directory_functions.hpp - H:\3Pty\stlsoft\1.9.1-beta7\include\unixstl\filesystem\file_path_buffer.hpp - H:\3Pty\stlsoft\1.9.1-beta7\include\unixstl\filesystem\filesystem_traits.hpp - H:\3Pty\stlsoft\1.9.1-beta7\include\unixstl\filesystem\functionals.hpp - H:\3Pty\stlsoft\1.9.1-beta7\include\unixstl\filesystem\glob_sequence.hpp - H:\3Pty\stlsoft\1.9.1-beta7\include\unixstl\filesystem\path.hpp - H:\3Pty\stlsoft\1.9.1-beta7\include\unixstl\filesystem\readdir_sequence.hpp - H:\3Pty\stlsoft\1.9.1-beta7\include\unixstl\filesystem\unittest\current_directory_scope_unittest_.h - H:\3Pty\stlsoft\1.9.1-beta7\include\unixstl\filesystem\unittest\current_directory_unittest_.h - H:\3Pty\stlsoft\1.9.1-beta7\include\unixstl\filesystem\unittest\directory_functions_unittest_.h - H:\3Pty\stlsoft\1.9.1-beta7\include\unixstl\filesystem\unittest\file_path_buffer_unittest_.h - H:\3Pty\stlsoft\1.9.1-beta7\include\unixstl\filesystem\unittest\filesystem_traits_unittest_.h - H:\3Pty\stlsoft\1.9.1-beta7\include\unixstl\filesystem\unittest\glob_sequence_unittest_.h - H:\3Pty\stlsoft\1.9.1-beta7\include\unixstl\filesystem\unittest\path_unittest_.h - H:\3Pty\stlsoft\1.9.1-beta7\include\unixstl\filesystem\unittest\readdir_sequence_unittest_.h - H:\3Pty\stlsoft\1.9.1-beta7\include\unixstl\performance\performance_counter.hpp - H:\3Pty\stlsoft\1.9.1-beta7\include\unixstl\performance\unittest\performance_counter_unittest_.h - H:\3Pty\stlsoft\1.9.1-beta7\include\unixstl\synch\atomic_functions.h - H:\3Pty\stlsoft\1.9.1-beta7\include\unixstl\synch\exceptions.hpp - H:\3Pty\stlsoft\1.9.1-beta7\include\unixstl\synch\process_mutex.hpp - H:\3Pty\stlsoft\1.9.1-beta7\include\unixstl\synch\semaphore.hpp - H:\3Pty\stlsoft\1.9.1-beta7\include\unixstl\synch\spin_mutex.hpp - H:\3Pty\stlsoft\1.9.1-beta7\include\unixstl\synch\thread_mutex.hpp - H:\3Pty\stlsoft\1.9.1-beta7\include\unixstl\synch\tss_index.hpp - H:\3Pty\stlsoft\1.9.1-beta7\include\unixstl\synch\unittest\atomic_functions_unittest_.h - H:\3Pty\stlsoft\1.9.1-beta7\include\unixstl\synch\unittest\exceptions_unittest_.h - H:\3Pty\stlsoft\1.9.1-beta7\include\unixstl\synch\unittest\process_mutex_unittest_.h - H:\3Pty\stlsoft\1.9.1-beta7\include\unixstl\synch\unittest\spin_mutex_unittest_.h - H:\3Pty\stlsoft\1.9.1-beta7\include\unixstl\synch\unittest\thread_mutex_unittest_.h - H:\3Pty\stlsoft\1.9.1-beta7\include\unixstl\system\environment_variable.hpp - H:\3Pty\stlsoft\1.9.1-beta7\include\unixstl\system\unittest\environment_variable_unittest_.h - H:\3Pty\stlsoft\1.9.1-beta7\include\winstl\controls\creation_functions.h - H:\3Pty\stlsoft\1.9.1-beta7\include\winstl\controls\edit_line_sequence.hpp - H:\3Pty\stlsoft\1.9.1-beta7\include\winstl\controls\functionals.hpp - H:\3Pty\stlsoft\1.9.1-beta7\include\winstl\controls\functions.h - H:\3Pty\stlsoft\1.9.1-beta7\include\winstl\controls\unittest\edit_line_sequence_unittest_.h - H:\3Pty\stlsoft\1.9.1-beta7\include\winstl\controls\unittest\functionals_unittest_.h - H:\3Pty\stlsoft\1.9.1-beta7\include\winstl\controls\unittest\functions_unittest_.h - H:\3Pty\stlsoft\1.9.1-beta7\include\winstl\filesystem\absolute_path.hpp - H:\3Pty\stlsoft\1.9.1-beta7\include\winstl\filesystem\current_directory.hpp - H:\3Pty\stlsoft\1.9.1-beta7\include\winstl\filesystem\current_directory_scope.hpp - H:\3Pty\stlsoft\1.9.1-beta7\include\winstl\filesystem\directory_functions.hpp - H:\3Pty\stlsoft\1.9.1-beta7\include\winstl\filesystem\file_creation_functions.h - H:\3Pty\stlsoft\1.9.1-beta7\include\winstl\filesystem\file_functions.hpp - H:\3Pty\stlsoft\1.9.1-beta7\include\winstl\filesystem\file_path_buffer.hpp - H:\3Pty\stlsoft\1.9.1-beta7\include\winstl\filesystem\filesystem_traits.hpp - H:\3Pty\stlsoft\1.9.1-beta7\include\winstl\filesystem\findfile_sequence.hpp - H:\3Pty\stlsoft\1.9.1-beta7\include\winstl\filesystem\findvolume_sequence.hpp - H:\3Pty\stlsoft\1.9.1-beta7\include\winstl\filesystem\functionals.hpp - H:\3Pty\stlsoft\1.9.1-beta7\include\winstl\filesystem\path.hpp - H:\3Pty\stlsoft\1.9.1-beta7\include\winstl\filesystem\unittest\absolute_path_unittest_.h - H:\3Pty\stlsoft\1.9.1-beta7\include\winstl\filesystem\unittest\current_directory_scope_unittest_.h - H:\3Pty\stlsoft\1.9.1-beta7\include\winstl\filesystem\unittest\current_directory_unittest_.h - H:\3Pty\stlsoft\1.9.1-beta7\include\winstl\filesystem\unittest\directory_functions_unittest_.h - H:\3Pty\stlsoft\1.9.1-beta7\include\winstl\filesystem\unittest\file_functions_unittest_.h - H:\3Pty\stlsoft\1.9.1-beta7\include\winstl\filesystem\unittest\file_path_buffer_unittest_.h - H:\3Pty\stlsoft\1.9.1-beta7\include\winstl\filesystem\unittest\filesystem_traits_unittest_.h - H:\3Pty\stlsoft\1.9.1-beta7\include\winstl\filesystem\unittest\findfile_sequence_unittest_.h - H:\3Pty\stlsoft\1.9.1-beta7\include\winstl\filesystem\unittest\findvolume_sequence_unittest_.h - H:\3Pty\stlsoft\1.9.1-beta7\include\winstl\filesystem\unittest\functionals_unittest_.h - H:\3Pty\stlsoft\1.9.1-beta7\include\winstl\filesystem\unittest\path_unittest_.h - H:\3Pty\stlsoft\1.9.1-beta7\include\winstl\performance\highperformance_counter.hpp - H:\3Pty\stlsoft\1.9.1-beta7\include\winstl\performance\multimedia_counter.hpp - H:\3Pty\stlsoft\1.9.1-beta7\include\winstl\performance\performance_counter.hpp - H:\3Pty\stlsoft\1.9.1-beta7\include\winstl\performance\processtimes_counter.hpp - H:\3Pty\stlsoft\1.9.1-beta7\include\winstl\performance\systemtime_counter.hpp - H:\3Pty\stlsoft\1.9.1-beta7\include\winstl\performance\threadtimes_counter.hpp - H:\3Pty\stlsoft\1.9.1-beta7\include\winstl\performance\tick_counter.hpp - H:\3Pty\stlsoft\1.9.1-beta7\include\winstl\performance\unittest\highperformance_counter_unittest_.h - H:\3Pty\stlsoft\1.9.1-beta7\include\winstl\performance\unittest\multimedia_counter_unittest_.h - H:\3Pty\stlsoft\1.9.1-beta7\include\winstl\performance\unittest\performance_counter_unittest_.h - H:\3Pty\stlsoft\1.9.1-beta7\include\winstl\performance\unittest\processtimes_counter_unittest_.h - H:\3Pty\stlsoft\1.9.1-beta7\include\winstl\performance\unittest\systemtime_counter_unittest_.h - H:\3Pty\stlsoft\1.9.1-beta7\include\winstl\performance\unittest\threadtimes_counter_unittest_.h - H:\3Pty\stlsoft\1.9.1-beta7\include\winstl\performance\unittest\tick_counter_unittest_.h - H:\3Pty\stlsoft\1.9.1-beta7\include\winstl\synch\atomic_functions.h - H:\3Pty\stlsoft\1.9.1-beta7\include\winstl\synch\event.hpp - H:\3Pty\stlsoft\1.9.1-beta7\include\winstl\synch\exceptions.hpp - H:\3Pty\stlsoft\1.9.1-beta7\include\winstl\synch\functions.hpp - H:\3Pty\stlsoft\1.9.1-beta7\include\winstl\synch\process_mutex.hpp - H:\3Pty\stlsoft\1.9.1-beta7\include\winstl\synch\semaphore.hpp - H:\3Pty\stlsoft\1.9.1-beta7\include\winstl\synch\spin_mutex.hpp - H:\3Pty\stlsoft\1.9.1-beta7\include\winstl\synch\thread_mutex.hpp - H:\3Pty\stlsoft\1.9.1-beta7\include\winstl\synch\tss_index.hpp - H:\3Pty\stlsoft\1.9.1-beta7\include\winstl\synch\unittest\atomic_functions_unittest_.h - H:\3Pty\stlsoft\1.9.1-beta7\include\winstl\synch\unittest\event_unittest_.h - H:\3Pty\stlsoft\1.9.1-beta7\include\winstl\synch\unittest\exceptions_unittest_.h - H:\3Pty\stlsoft\1.9.1-beta7\include\winstl\synch\unittest\process_mutex_unittest_.h - H:\3Pty\stlsoft\1.9.1-beta7\include\winstl\synch\unittest\spin_mutex_unittest_.h - H:\3Pty\stlsoft\1.9.1-beta7\include\winstl\synch\unittest\thread_mutex_unittest_.h - - -============================================================================ - -Changes for 1.9.1 beta 6 (28th May 2006) - -Quite a few changes this time. Most are documentation changes, but there are -also several new components, and a couple of new libraries. - -The main changes are listed as follows: - -Additions: -========== - -+ atlstl::IDispatch2 and atlstl::IDispatch3 class templates - (atlstl/multiple_dispatch.hpp) - -+ atlstl::get_ConstantValue() (atlstl/property_method_helpers.hpp) - -+ comstl::set_error_info() overloads - -+ unixstl::dl_call() now can work with arbitrary types (by specialising - unixstl::is_valid_dl_call_arg - -+ winstl::dl_call() now can work with arbitrary types (by specialising - winstl::is_valid_dl_call_arg - -+ winstl::basic_path::pop_ext() - -+ WinSTL Control Panel library: - + winstl/control_panel/functions.h - + winstl/control_panel/exceptions.hpp - + winstl/control_panel/applet_module.hpp - + winstl::applet_module - + winstl::applet - -+ WinSTL ToolHelp library (written by Pablo Aguilar): - + winstl::heap_sequence (winstl/toolhelp/heap_sequence.hpp) - + winstl::module_sequence (winstl/toolhelp/module_sequence.hpp) - + winstl::process_sequence (winstl/toolhelp/process_sequence.hpp) - + winstl::thread_sequence (winstl/toolhelp/thread_sequence.hpp) - -+ winstl::module::get() - -+ winstl::basic_reg_key_sequence::get() - -+ winstl::basic_reg_value_sequence::get() - -Changes: -======== - -~ more shims for stlsoft::basic_simple_string - -~ more shims for stlsoft/time_string_access.hpp - -~ stlsoft::string_concatenator_iterator now works with Borland - -Removals: -========= - -Diffs: -====== - - root-dir-1: H:\3Pty\stlsoft\1.9.1-beta5\include - root-dir-2: H:\STLSoft\Releases\current\STLSoft\include -Items unchanged from H:\3Pty\stlsoft\1.9.1-beta5\include to H:\STLSoft\Releases\current\STLSoft\include: 622 -Items changed from H:\3Pty\stlsoft\1.9.1-beta5\include to H:\STLSoft\Releases\current\STLSoft\include: 368 -Items changed (major) from H:\3Pty\stlsoft\1.9.1-beta5\include to H:\STLSoft\Releases\current\STLSoft\include: 0 -Items changed (minor) from H:\3Pty\stlsoft\1.9.1-beta5\include to H:\STLSoft\Releases\current\STLSoft\include: 16 - atlstl\property_method_helpers.hpp 3.3.1.56 => 3.4.1.58 ; 25th March 2006 => 21st May 2006 - comstl\errorinfo_functions.h 3.1.1.27 => 3.2.2.29 ; 21st March 2006 => 8th May 2006 - stlsoft\internal\cccap\dmc.h 3.7.1.68 => 3.8.1.69 ; 21st March 2006 => 25th May 2006 - stlsoft\iterators\string_concatenator_iterator.hpp 2.1.9.28 => 2.2.2.30 ; 21st March 2006 => 25th May 2006 - stlsoft\simple_string.hpp 3.11.1.214 => 3.12.1.215 ; 25th March 2006 => 8th April 2006 - stlsoft\time_string_access.hpp 1.1.1.4 => 1.2.1.5 ; 21st March 2006 => 17th May 2006 - stlsoft_meta.h 3.19.2.117 => 3.21.1.119 ; 14th March 2006 => 7th April 2006 - unixstl\dl_call.hpp 1.3.3.14 => 1.4.1.16 ; 21st March 2006 => 26th May 2006 - unixstl\module.hpp 5.2.1.197 => 5.3.2.199 ; 21st March 2006 => 25th May 2006 - winstl\dl_call.hpp 1.4.2.15 => 1.5.1.18 ; 21st March 2006 => 26th May 2006 - winstl\exceptions.hpp 3.2.2.33 => 3.3.1.36 ; 21st March 2006 => 27th May 2006 - winstl\module.hpp 5.2.1.201 => 5.3.2.205 ; 21st March 2006 => 21st May 2006 - winstl\path.hpp 5.7.1.201 => 5.8.4.205 ; 25th March 2006 => 26th May 2006 - winstl\registry\reg_key_sequence.hpp 3.5.4.106 => 3.6.1.107 ; 24th March 2006 => 22nd May 2006 - winstl\registry\reg_value_sequence.hpp 3.3.4.98 => 3.4.1.99 ; 24th March 2006 => 22nd May 2006 - winstl\resource_string.hpp 3.2.1.61 => 3.3.3.65 ; 21st March 2006 => 21st May 2006 -Items changed (revision) from H:\3Pty\stlsoft\1.9.1-beta5\include to H:\STLSoft\Releases\current\STLSoft\include: 28 - atlstl\enhanced_window.hpp 3.1.1.19 => 3.1.2.20 ; 21st March 2006 => 24th May 2006 - comstl\acyclic_connector.hpp 1.1.1.2 => 1.1.2.4 ; 26th March 2006 => 26th May 2006 - mfcstl\window_access.hpp 3.1.1.29 => 3.1.2.30 ; 21st March 2006 => 28th March 2006 - platformstl\path.hpp 1.2.1.11 => 1.2.2.12 ; 5th February 2006 => 7th April 2006 - stlsoft\constraints.hpp 4.1.2.85 => 4.1.3.86 ; 21st March 2006 => 7th April 2006 - stlsoft\exception_string_access.hpp 1.3.1.18 => 1.3.2.19 ; 21st March 2006 => 12th May 2006 - stlsoft\first_class_promoter.hpp 3.2.1.37 => 3.2.2.38 ; 5th February 2006 => 25th May 2006 - stlsoft\internal\cccap\watcom.h 3.7.2.53 => 3.7.3.54 ; 21st March 2006 => 28th April 2006 - stlsoft\sap_cast.hpp 3.3.2.31 => 3.3.4.33 ; 21st March 2006 => 4th April 2006 - stlsoft\scoped_handle.hpp 4.4.1.645 => 4.4.2.646 ; 21st March 2006 => 25th May 2006 - stlsoft\stlsoft.h 3.5.3.268 => 3.5.5.273 ; 21st March 2006 => 25th May 2006 - stlsoft\string_split_functions.hpp 1.3.4.24 => 1.3.5.26 ; 21st March 2006 => 21st May 2006 - stlsoft\string_tokeniser.hpp 4.8.7.198 => 4.8.10.201 ; 24th February 2006 => 11th April 2006 - stlsoft\string_view.hpp 2.15.1.64 => 2.15.2.65 ; 25th March 2006 => 8th April 2006 - unixstl\unixstl.h 3.3.1.60 => 3.3.2.64 ; 21st March 2006 => 25th May 2006 - winstl\absolute_path.hpp 3.2.3.48 => 3.2.4.49 ; 21st March 2006 => 28th March 2006 - winstl\char_conversions.hpp 3.5.5.63 => 3.5.6.64 ; 24th March 2006 => 6th April 2006 - winstl\file_path_buffer.hpp 3.4.4.91 => 3.4.6.93 ; 24th March 2006 => 9th April 2006 - winstl\findfile_sequence.hpp 3.10.5.171 => 3.10.6.172 ; 24th March 2006 => 29th April 2006 - winstl\registry\exceptions.hpp 1.0.3.4 => 1.0.4.6 ; 21st March 2006 => 25th May 2006 - winstl\registry\reg_key.hpp 3.3.7.98 => 3.3.9.100 ; 28th March 2006 => 23rd May 2006 - winstl\registry\reg_traits.hpp 3.2.2.57 => 3.2.3.58 ; 21st March 2006 => 23rd May 2006 - winstl\registry\reg_value.hpp 3.0.4.74 => 3.0.6.76 ; 24th March 2006 => 22nd May 2006 - winstl\registry\registry.hpp 1.0.2.49 => 1.0.3.50 ; 21st March 2006 => 22nd May 2006 - winstl\registry\shared_handles.hpp 1.0.3.6 => 1.0.6.9 ; 21st March 2006 => 22nd May 2006 - winstl\version_info.hpp 4.4.3.94 => 4.4.6.98 ; 24th March 2006 => 21st May 2006 - winstl\winstl.h 3.3.2.142 => 3.3.3.146 ; 21st March 2006 => 26th May 2006 - winstl\zorder_sequences.hpp 1.0.3.4 => 1.0.4.5 ; 21st March 2006 => 2nd April 2006 -Items changed (edit) from H:\3Pty\stlsoft\1.9.1-beta5\include to H:\STLSoft\Releases\current\STLSoft\include: 33 -Items changed (unversioned) from H:\3Pty\stlsoft\1.9.1-beta5\include to H:\STLSoft\Releases\current\STLSoft\include: 293 - atlstl.h ... => ... ; => - atlstl_ccombstr_veneer.h 3.2.1.42 => ... ; 21st March 2006 => - atlstl_property_method_helpers.h 3.2.1.55 => ... ; 21st March 2006 => - atlstl_string_access.h 3.2.1.76 => ... ; 21st March 2006 => - atlstl_support_error_info.h 4.2.1.56 => ... ; 21st March 2006 => - atlstl_window_access.h 3.2.1.31 => ... ; 21st March 2006 => - comstl.h ... => ... ; => - comstl\coll_sequence.hpp 5.1.1.69 => ... ; 21st March 2006 => - comstl\enum_sequence.hpp 5.2.1.191 => ... ; 21st March 2006 => - comstl\enumerator_policies.hpp 5.2.1.23 => ... ; 21st March 2006 => - comstl\memory_functions.h 4.0.1.37 => ... ; 25th March 2006 => - comstl\task_allocator.hpp 4.0.1.72 => ... ; 25th March 2006 => - comstl_bad_interface_cast.h 3.3.1.21 => ... ; 21st March 2006 => - comstl_bstr_functions.h 3.2.1.62 => ... ; 21st March 2006 => - comstl_coll_sequence.h 4.2.1.56 => ... ; 21st March 2006 => - comstl_enum_sequence.h 4.2.1.180 => ... ; 21st March 2006 => - comstl_enumerator_policies.h 4.2.1.19 => ... ; 21st March 2006 => - comstl_errorinfo_functions.h 3.2.1.27 => ... ; 9th February 2006 => - comstl_functionals.h 3.2.1.55 => 3.2.1.55 ; 21st March 2006 => 25th May 2006 - comstl_initialisers.h 3.2.1.60 => ... ; 21st March 2006 => - comstl_interface_cast.h 3.2.1.82 => ... ; 21st March 2006 => - comstl_interface_ptr.h 5.2.1.470 => ... ; 21st March 2006 => - comstl_interface_traits.h 3.2.1.46 => ... ; 21st March 2006 => - comstl_interface_traits_std.h 3.2.1.33 => ... ; 21st March 2006 => - comstl_memory_functions.h 3.3.1.37 => ... ; 25th March 2006 => - comstl_olestring.h 3.3.1.128 => ... ; 21st March 2006 => - comstl_olestring_functions.h 4.2.1.141 => ... ; 21st March 2006 => - comstl_refcount_functions.h 3.2.1.46 => ... ; 21st March 2006 => - comstl_rot_functions.h 4.2.1.52 => ... ; 21st March 2006 => - comstl_safearray_sequence.h 3.2.1.34 => ... ; 21st March 2006 => - comstl_security_initialisers.h 4.2.1.36 => ... ; 21st March 2006 => - comstl_string_access.h 3.2.1.84 => ... ; 21st March 2006 => - comstl_task_allocator.h 3.2.1.70 => ... ; 25th March 2006 => - comstl_thread_marshal.h 3.2.1.45 => ... ; 21st March 2006 => - comstl_value_policies.h 4.2.1.152 => ... ; 21st March 2006 => - dotnetstl.h ... => ... ; => - dotnetstl_dispose_functions.h 3.2.1.25 => ... ; 21st March 2006 => - dotnetstl_object_enumerators.h 3.2.2.20 => ... ; 21st March 2006 => - dotnetstl_string_accessor.h 3.2.1.34 => ... ; 21st March 2006 => - inetstl.h ... => ... ; => - inetstl_connection.h 4.2.1.53 => ... ; 21st March 2006 => - inetstl_exceptions.h 3.2.1.24 => ... ; 21st March 2006 => - inetstl_filesystem_traits.h 3.2.1.51 => ... ; 21st March 2006 => - inetstl_functionals.h 2.3.1.22 => ... ; 21st March 2006 => - inetstl_searchspec_sequence.h 4.2.1.30 => ... ; 21st March 2006 => - inetstl_session.h 4.2.1.47 => ... ; 21st March 2006 => - mfcstl.h ... => ... ; => - mfcstl\afx_allocator.hpp 2.0.1.6 => ... ; 25th March 2006 => - mfcstl\array_adaptor.hpp ... => ... ; => - mfcstl\array_veneer.hpp ... => ... ; => - mfcstl_grab_cstring_buffer.h 3.2.1.49 => ... ; 21st March 2006 => - mfcstl_resource_string.h 3.2.1.63 => ... ; 21st March 2006 => - mfcstl_string_access.h 3.2.1.69 => ... ; 21st March 2006 => - mfcstl_window_access.h 3.2.1.33 => ... ; 21st March 2006 => - stlsoft.h ... => ... ; => - stlsoft\allocator_base.hpp 4.0.1.29 => ... ; 25th March 2006 => - stlsoft\allocator_selector.hpp 2.0.1.15 => ... ; 25th March 2006 => - stlsoft\contract_violation.hpp 2.0.1.12 => ... ; 12th February 2006 => - stlsoft\cstring_concatenator_iterator.hpp 2.0.1.10 => ... ; 21st March 2006 => - stlsoft\environment_block.hpp 4.0.1.26 => ... ; 12th February 2006 => - stlsoft\filter_iterator.hpp 4.0.3.20 => ... ; 17th January 2006 => - stlsoft\fixed_array.hpp 4.0.1.159 => ... ; 12th February 2006 => - stlsoft\frequency_map.hpp 2.0.1.6 => ... ; 12th February 2006 => - stlsoft\indexed_iterator.hpp 2.1.3.6 => ... ; 17th January 2006 => - stlsoft\indirect_reverse_iterator.hpp 2.1.2.13 => ... ; 21st March 2006 => - stlsoft\malloc_allocator.hpp 4.0.2.71 => ... ; 27th March 2006 => - stlsoft\member_selector_iterator.hpp 2.0.1.20 => ... ; 21st March 2006 => - stlsoft\member_traits.hpp 2.0.2.25 => ... ; 21st March 2006 => - stlsoft\new_allocator.hpp 4.0.1.69 => ... ; 25th March 2006 => - stlsoft\null_allocator.hpp 4.0.1.67 => ... ; 25th March 2006 => - stlsoft\pod_vector.hpp 4.0.1.54 => ... ; 12th February 2006 => - stlsoft\static_array.hpp 4.0.1.163 => ... ; 12th February 2006 => - stlsoft\tokeniser_functions.hpp 2.0.1.13 => ... ; 5th February 2006 => - stlsoft\type_traits.hpp 4.0.1.25 => ... ; 21st March 2006 => - stlsoft\unrecoverable.hpp 2.0.1.20 => ... ; 12th February 2006 => - stlsoft_64bit_integers.h 4.2.1.117 => ... ; 21st March 2006 => - stlsoft__undefs.h 3.0.1.14 => ... ; 9th February 2006 => - stlsoft_allocator_base.h 3.3.1.21 => ... ; 25th March 2006 => - stlsoft_any_caster.h 3.2.1.25 => ... ; 21st March 2006 => - stlsoft_argument_proxies.h 3.2.1.120 => ... ; 21st March 2006 => - stlsoft_array_policies.h 3.2.1.120 => ... ; 21st March 2006 => - stlsoft_array_proxy.h 3.0.1.42 => ... ; 9th February 2006 => - stlsoft_associative_container_veneer.h 3.2.1.28 => ... ; 21st March 2006 => - stlsoft_auto_buffer.h 3.2.1.107 => ... ; 21st March 2006 => - stlsoft_auto_destructor.h 4.2.1.58 => ... ; 21st March 2006 => - stlsoft_cc_obsolete.h 3.0.1.13 => ... ; 9th February 2006 => - stlsoft_cccap_borland.h 3.1.1.51 => ... ; 21st March 2006 => - stlsoft_cccap_como.h 3.1.1.41 => ... ; 21st March 2006 => - stlsoft_cccap_dmc.h 3.1.1.62 => ... ; 21st March 2006 => - stlsoft_cccap_gcc.h 3.1.1.47 => ... ; 21st March 2006 => - stlsoft_cccap_intel.h 3.1.1.49 => ... ; 21st March 2006 => - stlsoft_cccap_msvc.h 3.1.2.74 => ... ; 21st March 2006 => - stlsoft_cccap_mwerks.h 3.1.1.41 => ... ; 21st March 2006 => - stlsoft_cccap_unknown.h 3.1.1.39 => ... ; 21st March 2006 => - stlsoft_cccap_vectorc.h 3.1.1.31 => ... ; 21st March 2006 => - stlsoft_cccap_watcom.h 3.1.1.47 => ... ; 21st March 2006 => - stlsoft_char_alt_traits.h 3.2.1.29 => ... ; 21st March 2006 => - stlsoft_char_traits.h 3.3.1.57 => ... ; 9th February 2006 => - stlsoft_compiler_traits.h 3.3.1.17 => 3.3.1.17 ; 21st March 2006 => 25th May 2006 - stlsoft_constraints.h 4.2.1.82 => ... ; 21st March 2006 => - stlsoft_container_base.h 3.0.1.12 => ... ; 9th February 2006 => - stlsoft_container_veneers.h 3.3.1.31 => ... ; 21st March 2006 => - stlsoft_conversion_veneer.h 3.2.1.38 => ... ; 21st March 2006 => - stlsoft_cstring_maker.h 3.2.1.30 => ... ; 21st March 2006 => - stlsoft_environment_block.h 3.2.1.21 => ... ; 21st March 2006 => - stlsoft_exceptions.h 3.2.1.37 => ... ; 21st March 2006 => - stlsoft_explicit_cast.h 3.2.1.27 => ... ; 21st March 2006 => - stlsoft_explicit_cast_specialisations.h 3.2.1.17 => ... ; 9th February 2006 => - stlsoft_explicit_inheritance_veneer.h 3.2.1.28 => ... ; 21st March 2006 => - stlsoft_fast_string_concatenator.h 3.2.1.122 => ... ; 21st March 2006 => - stlsoft_field_properties.h 3.3.1.20 => ... ; 21st March 2006 => - stlsoft_filter_iterator.h 3.2.3.19 => ... ; 9th February 2006 => - stlsoft_first_class_promoter.h 3.2.1.33 => ... ; 21st March 2006 => - stlsoft_fixed_array.h 3.2.1.148 => ... ; 21st March 2006 => - stlsoft_fixed_substring.h 2.7.1.51 => ... ; 25th March 2006 => - stlsoft_frame_array.h 2.2.1.126 => ... ; 21st March 2006 => - stlsoft_frame_string.h 2.2.1.123 => ... ; 21st March 2006 => - stlsoft_inert.h 3.2.1.28 => ... ; 21st March 2006 => - stlsoft_inheritance_disambiguator.h 3.2.1.21 => ... ; 21st March 2006 => - stlsoft_integer_to_string.h 3.2.1.61 => ... ; 21st March 2006 => - stlsoft_iterator.h 3.2.1.82 => ... ; 21st March 2006 => - stlsoft_limit_traits.h 3.2.1.43 => ... ; 21st March 2006 => - stlsoft_literal_cast.h 3.2.1.31 => ... ; 21st March 2006 => - stlsoft_lock_scope.h 5.2.1.102 => ... ; 21st March 2006 => - stlsoft_malloc_allocator.h 3.3.1.67 => ... ; 25th March 2006 => - stlsoft_method_properties.h 3.3.1.41 => ... ; 21st March 2006 => - stlsoft_new_allocator.h 3.3.1.67 => ... ; 25th March 2006 => - stlsoft_null.h 3.2.1.42 => ... ; 21st March 2006 => - stlsoft_null_allocator.h 3.3.1.66 => ... ; 25th March 2006 => - stlsoft_null_mutex.h 3.2.1.33 => ... ; 21st March 2006 => - stlsoft_nulldef.h 3.2.1.21 => ... ; 21st March 2006 => - stlsoft_operator_bool.h 3.2.1.29 => ... ; 21st March 2006 => - stlsoft_outer_initialiser.h 3.2.1.16 => ... ; 21st March 2006 => - stlsoft_pair.h 4.2.1.46 => ... ; 21st March 2006 => - stlsoft_placement_aid.h 3.2.1.24 => ... ; 21st March 2006 => - stlsoft_pod_vector.h 3.2.1.45 => ... ; 21st March 2006 => - stlsoft_pod_veneer.h 3.2.1.39 => ... ; 21st March 2006 => - stlsoft_printf_traits.h 3.2.1.43 => ... ; 21st March 2006 => - stlsoft_proxy_ptr.h 3.0.2.56 => ... ; 9th February 2006 => - stlsoft_ptr_access.h 3.2.1.35 => ... ; 21st March 2006 => - stlsoft_ptr_cast.h 3.2.1.20 => ... ; 21st March 2006 => - stlsoft_remove_from_scope.h 3.2.1.30 => 3.2.1.30 ; 21st March 2006 => 25th May 2006 - stlsoft_sap_cast.h 3.2.1.27 => ... ; 21st March 2006 => - stlsoft_searchspec_sequence.h 3.2.1.34 => ... ; 21st March 2006 => - stlsoft_sequence_container_veneer.h 3.2.1.37 => ... ; 21st March 2006 => - stlsoft_shim_string.h 3.2.1.18 => ... ; 21st March 2006 => - stlsoft_sign_traits.h 3.2.1.34 => ... ; 21st March 2006 => - stlsoft_simple_string.h 3.2.1.189 => ... ; 21st March 2006 => - stlsoft_simple_type_converter.h 4.2.1.23 => ... ; 21st March 2006 => - stlsoft_size_traits.h 3.2.1.16 => ... ; 21st March 2006 => - stlsoft_static_array.h 3.2.1.153 => ... ; 21st March 2006 => - stlsoft_static_initialisers.h 3.2.1.206 => ... ; 21st March 2006 => - stlsoft_static_string.h 3.2.1.150 => ... ; 21st March 2006 => - stlsoft_string_access.h 3.2.1.71 => ... ; 21st March 2006 => - stlsoft_string_tokeniser.h 4.2.1.173 => ... ; 21st March 2006 => - stlsoft_string_traits.h 3.2.1.58 => ... ; 21st March 2006 => - stlsoft_true_typedef.h 3.2.1.64 => ... ; 21st March 2006 => - stlsoft_type_helpers.h 3.2.1.17 => ... ; 21st March 2006 => - stlsoft_type_traits.h 3.3.1.26 => ... ; 21st March 2006 => - stlsoft_typefixer_pointer.h 3.2.1.24 => ... ; 21st March 2006 => - stlsoft_typefixer_reference.h 3.2.1.24 => ... ; 21st March 2006 => - stlsoft_union_cast.h 4.2.1.42 => ... ; 21st March 2006 => - stlsoft_unittest.h 3.2.1.24 => ... ; 21st March 2006 => - stlsoft_unused_return_value_monitor.h 3.2.1.33 => ... ; 21st March 2006 => - stlsoft_zero.h 3.2.1.36 => ... ; 21st March 2006 => - stlsoft_zerodef.h 3.2.1.17 => ... ; 21st March 2006 => - unixstl.h ... => ... ; => - unixstl_atomic_functions.h 4.2.1.183 => ... ; 21st March 2006 => - unixstl_current_directory.h 3.2.1.36 => ... ; 21st March 2006 => - unixstl_current_directory_scope.h 4.2.1.93 => ... ; 21st March 2006 => - unixstl_environment_variable.h 3.2.1.46 => ... ; 21st March 2006 => - unixstl_exceptions.h 3.2.1.29 => ... ; 21st March 2006 => - unixstl_file_path_buffer.h 3.2.1.31 => ... ; 21st March 2006 => - unixstl_filesystem_traits.h 3.2.1.69 => ... ; 21st March 2006 => - unixstl_functionals.h 2.3.1.31 => 2.3.1.31 ; 21st March 2006 => 25th May 2006 - unixstl_glob_sequence.h 4.2.1.93 => ... ; 21st March 2006 => - unixstl_limits.h 3.1.1.23 => ... ; 21st January 2006 => - unixstl_module.h 5.2.1.197 => ... ; 21st March 2006 => - unixstl_path.h 5.2.1.175 => ... ; 21st March 2006 => - unixstl_performance_counter.h 3.2.1.46 => ... ; 21st March 2006 => - unixstl_pipe.h 3.2.1.26 => ... ; 21st March 2006 => - unixstl_process_mutex.h 3.2.1.42 => ... ; 21st March 2006 => - unixstl_readdir_sequence.h 4.2.1.79 => ... ; 21st March 2006 => - unixstl_spin_mutex.h 3.2.1.36 => ... ; 21st March 2006 => - unixstl_string_access.h 3.2.1.38 => ... ; 21st March 2006 => - unixstl_thread_mutex.h 3.2.1.33 => ... ; 9th February 2006 => - winstl.h ... => ... ; => - winstl\child_window_sequence.hpp 2.0.1.8 => ... ; 21st March 2006 => - winstl\combobox_sequence.hpp 4.0.1.51 => ... ; 21st March 2006 => - winstl\error_scope.hpp 3.1.1.13 => ... ; 21st March 2006 => - winstl\global_allocator.hpp 4.0.1.65 => ... ; 23rd March 2006 => - winstl\listbox_sequence.hpp 4.0.1.51 => ... ; 21st March 2006 => - winstl\processheap_allocator.hpp 4.0.1.69 => ... ; 23rd March 2006 => - winstl\reg_defs.hpp ... => ... ; => - winstl\reg_key.hpp ... => ... ; => - winstl\reg_key_sequence.hpp ... => ... ; => - winstl\reg_traits.hpp ... => ... ; => - winstl\reg_value.hpp ... => ... ; => - winstl\reg_value_sequence.hpp ... => ... ; => - winstl\registry\unittest\reg_value_unittest_.h ... => ... ; 24th February 2006 => 25th May 2006 - winstl\registry_functions.hpp 2.3.1.37 => ... ; 21st March 2006 => - winstl\shell_allocator.hpp 4.0.1.67 => ... ; 23rd March 2006 => - winstl\unittest\absolute_path_unittest_.h ... => ... ; => - winstl\unittest\resource_string_unittest_.h ... => ... ; => 25th May 2006 - winstl\window_peer_sequence.hpp 2.0.1.18 => ... ; 21st March 2006 => - winstl\windows_exceptions.hpp ... => ... ; => - winstl_absolute_path.h 3.2.1.44 => ... ; 21st March 2006 => - winstl_acl_sequence.h 3.2.1.18 => ... ; 21st March 2006 => - winstl_atomic_functions.h 4.2.1.189 => ... ; 21st March 2006 => - winstl_char_conversions.h 3.2.1.53 => ... ; 21st March 2006 => - winstl_clipboard_format_sequence.h 3.2.1.17 => ... ; 21st March 2006 => - winstl_clrs.h 3.2.1.19 => ... ; 21st March 2006 => - winstl_combobox_sequence.h 3.3.1.41 => ... ; 9th February 2006 => - winstl_commctrl_functionals.h 3.2.1.52 => ... ; 21st March 2006 => - winstl_commctrl_functions.h 3.2.1.33 => ... ; 21st March 2006 => - winstl_console_ctrl_handler_scope.h 3.2.1.16 => ... ; 21st March 2006 => - winstl_control_functionals.h 3.2.1.51 => ... ; 21st March 2006 => - winstl_control_functions.h 3.2.1.37 => ... ; 21st March 2006 => - winstl_current_directory.h 3.2.1.52 => ... ; 21st March 2006 => - winstl_current_directory_scope.h 4.2.1.98 => ... ; 21st March 2006 => - winstl_drophandle_sequence.h 3.2.1.60 => ... ; 21st March 2006 => - winstl_environment_block.h 3.2.1.33 => ... ; 21st March 2006 => - winstl_environment_sequence.h 3.2.1.44 => ... ; 21st March 2006 => - winstl_environment_variable.h 3.2.1.44 => ... ; 21st March 2006 => - winstl_error_desc.h 3.2.1.48 => ... ; 21st March 2006 => - winstl_error_scope.h 3.2.1.34 => ... ; 21st March 2006 => - winstl_event.h 3.2.1.36 => ... ; 9th February 2006 => - winstl_exceptions.h 3.2.1.27 => ... ; 9th February 2006 => - winstl_file_path_buffer.h 3.2.1.78 => ... ; 21st March 2006 => - winstl_filesystem_functions.h 3.2.1.24 => ... ; 21st March 2006 => - winstl_filesystem_traits.h 3.2.1.65 => ... ; 21st March 2006 => - winstl_findfile_sequence.h 3.2.1.129 => ... ; 21st March 2006 => - winstl_findvolume_sequence.h 3.2.1.76 => ... ; 21st March 2006 => - winstl_functions.h 3.2.1.50 => ... ; 21st March 2006 => - winstl_global_allocator.h 3.3.1.63 => ... ; 25th March 2006 => - winstl_heapwalk_sequence.h 3.2.1.43 => ... ; 21st March 2006 => - winstl_highperformance_counter.h 3.2.1.68 => ... ; 21st March 2006 => - winstl_last_error_scope.h 2.1.1.9 => ... ; 21st March 2006 => - winstl_listbox_sequence.h 3.13.1.41 => ... ; 9th February 2006 => - winstl_listview_sequence.h 3.2.1.41 => ... ; 21st March 2006 => - winstl_module.h 5.2.1.197 => ... ; 21st March 2006 => - winstl_module_directory.h 3.2.1.40 => ... ; 21st March 2006 => - winstl_module_filename.h 3.2.1.55 => ... ; 21st March 2006 => - winstl_multimedia_counter.h 3.2.1.32 => ... ; 21st March 2006 => - winstl_path.h 5.2.1.184 => ... ; 21st March 2006 => - winstl_performance_counter.h 3.2.1.12 => ... ; 21st March 2006 => - winstl_performance_counter_init.h 3.2.1.28 => ... ; 21st March 2006 => - winstl_performance_counter_scope.h 3.2.1.33 => ... ; 21st March 2006 => - winstl_pipe.h 3.2.1.24 => ... ; 21st March 2006 => - winstl_process_mutex.h 3.2.1.37 => ... ; 9th February 2006 => - winstl_processheap_allocator.h 3.3.1.68 => ... ; 25th March 2006 => - winstl_processtimes_counter.h 3.2.1.46 => ... ; 21st March 2006 => - winstl_reg_defs.h 3.0.1.47 => ... ; 9th February 2006 => - winstl_reg_key.h 3.0.1.84 => ... ; 9th February 2006 => - winstl_reg_key_sequence.h 3.0.1.92 => ... ; 9th February 2006 => - winstl_reg_traits.h 3.0.1.50 => ... ; 9th February 2006 => - winstl_reg_value.h 3.0.1.70 => ... ; 9th February 2006 => - winstl_reg_value_sequence.h 3.0.1.83 => ... ; 9th February 2006 => - winstl_scale_functions.h 3.2.1.35 => ... ; 21st March 2006 => - winstl_setcursor_scope.h 3.2.1.29 => ... ; 21st March 2006 => - winstl_setfocus_scope.h 3.2.1.27 => ... ; 21st March 2006 => - winstl_shell_allocator.h 3.3.1.63 => ... ; 25th March 2006 => - winstl_shell_browse.h 3.3.1.46 => ... ; 9th February 2006 => - winstl_spin_mutex.h 3.2.1.37 => ... ; 21st March 2006 => - winstl_string_access.h 3.2.1.89 => ... ; 21st March 2006 => - winstl_system_directory.h 3.2.1.51 => ... ; 21st March 2006 => - winstl_system_info.h 3.2.1.46 => ... ; 21st March 2006 => - winstl_system_version.h 3.2.1.44 => ... ; 21st March 2006 => - winstl_systemtime_counter.h 3.2.1.36 => ... ; 21st March 2006 => - winstl_thread_mutex.h 3.2.1.38 => ... ; 9th February 2006 => - winstl_threadtimes_counter.h 3.2.1.38 => ... ; 21st March 2006 => - winstl_tick_counter.h 3.2.1.36 => ... ; 21st March 2006 => - winstl_time_functions.h 4.2.1.33 => ... ; 21st March 2006 => - winstl_tls_index.h 2.2.1.14 => ... ; 21st March 2006 => - winstl_token_information.h 3.2.1.39 => ... ; 21st March 2006 => - winstl_treeview_sequence.h 3.2.1.47 => ... ; 21st March 2006 => - winstl_tss_index.h 3.2.1.20 => ... ; 21st March 2006 => - winstl_undocumented.h 3.2.1.32 => ... ; 21st March 2006 => - winstl_version_info.h 4.2.1.80 => ... ; 21st March 2006 => - winstl_window_access.h 3.2.1.38 => ... ; 21st March 2006 => - winstl_window_enable_scope.h 3.2.1.78 => ... ; 21st March 2006 => - winstl_window_functionals.h 3.2.1.26 => ... ; 21st March 2006 => - winstl_window_functions.h 3.2.1.39 => ... ; 21st March 2006 => - winstl_window_icon_scope.h 3.2.1.38 => ... ; 21st March 2006 => - winstl_window_redraw_scope.h 4.2.1.62 => ... ; 21st March 2006 => - winstl_window_text_scope.h 3.2.1.24 => ... ; 21st March 2006 => - winstl_window_traits.h 3.2.1.19 => ... ; 21st March 2006 => - winstl_window_update_scope.h 4.2.1.62 => ... ; 21st March 2006 => - winstl_window_visible_scope.h 3.2.1.25 => ... ; 21st March 2006 => - winstl_windows_directory.h 3.2.1.50 => ... ; 21st March 2006 => - winstl_windows_ident.h 3.2.1.31 => ... ; 21st March 2006 => - winstl_windows_type_conversions.h 3.2.1.28 => ... ; 9th February 2006 => - wtlstl.h ... => ... ; => -Items deleted from H:\3Pty\stlsoft\1.9.1-beta5\include: 0 -Items added to H:\STLSoft\Releases\current\STLSoft\include: 35 - H:\STLSoft\Releases\current\STLSoft\include\atlstl\multiple_dispatch.hpp - H:\STLSoft\Releases\current\STLSoft\include\debug - H:\STLSoft\Releases\current\STLSoft\include\platformstl\debug - H:\STLSoft\Releases\current\STLSoft\include\platformstl\debugunix - H:\STLSoft\Releases\current\STLSoft\include\platformstl\readdir_sequence.hpp - H:\STLSoft\Releases\current\STLSoft\include\readme.html - H:\STLSoft\Releases\current\STLSoft\include\release - H:\STLSoft\Releases\current\STLSoft\include\releasemt - H:\STLSoft\Releases\current\STLSoft\include\stlsoft\meta\is_integral_type.hpp - H:\STLSoft\Releases\current\STLSoft\include\stlsoft\meta\size_of.hpp - H:\STLSoft\Releases\current\STLSoft\include\stlsoft\meta\util\meta_.hpp - H:\STLSoft\Releases\current\STLSoft\include\stlsoft\unittest\scoped_handle_unittest_.h - H:\STLSoft\Releases\current\STLSoft\include\unixstl\unittest\dl_call_unittest_.h - H:\STLSoft\Releases\current\STLSoft\include\winstl\control_panel\applet_module.hpp - H:\STLSoft\Releases\current\STLSoft\include\winstl\control_panel\exceptions.hpp - H:\STLSoft\Releases\current\STLSoft\include\winstl\control_panel\functions.h - H:\STLSoft\Releases\current\STLSoft\include\winstl\control_panel\unittest\applet_module_unittest_.h - H:\STLSoft\Releases\current\STLSoft\include\winstl\control_panel\unittest\functions_unittest_.h - H:\STLSoft\Releases\current\STLSoft\include\winstl\controls\edit_line_sequence.hpp - H:\STLSoft\Releases\current\STLSoft\include\winstl\nt\lm\share.h - H:\STLSoft\Releases\current\STLSoft\include\winstl\nt\net\util.hpp - H:\STLSoft\Releases\current\STLSoft\include\winstl\registry\functions.hpp - H:\STLSoft\Releases\current\STLSoft\include\winstl\resources\resource_holders.hpp - H:\STLSoft\Releases\current\STLSoft\include\winstl\toolhelp\exceptions.hpp - H:\STLSoft\Releases\current\STLSoft\include\winstl\toolhelp\heap_sequence.hpp - H:\STLSoft\Releases\current\STLSoft\include\winstl\toolhelp\module_sequence.hpp - H:\STLSoft\Releases\current\STLSoft\include\winstl\toolhelp\process_sequence.hpp - H:\STLSoft\Releases\current\STLSoft\include\winstl\toolhelp\sequence_base.hpp - H:\STLSoft\Releases\current\STLSoft\include\winstl\toolhelp\sequence_value_traits.hpp - H:\STLSoft\Releases\current\STLSoft\include\winstl\toolhelp\thread_sequence.hpp - H:\STLSoft\Releases\current\STLSoft\include\winstl\unittest\dl_call_unittest_.h - H:\STLSoft\Releases\current\STLSoft\include\winstl\unittest\path_unittest_.h - H:\STLSoft\Releases\current\STLSoft\include\x\atlstl\about_dialog.hpp - H:\STLSoft\Releases\current\STLSoft\include\x\wtlstl_x_simple_help_window.h - H:\STLSoft\Releases\current\STLSoft\include\x\wtlstl_x_synesis_controls.h - - -============================================================================ - -Changes for 1.9.1 beta 5 (28th March 2006) - -There are a huge number of changes in the beta, far too many to cover -comprehensively. This is part of the strategy of refactoring the directory -structure for 1.9.1 proper. - -The main changes are listed as follows: - -Additions: -========== - -+ a heap of memory-related components now reside in /memory/ sub-directory, e.g. - comstl/task_allocator.hpp => comstl/memory/task_allocator.hpp - -+ same goes for many exceptions, e.g. - stlsoft/contract_violation.hpp => stlsoft/exceptions/contract_violation.hpp - -+ same goes for some containers, e.g. - stlsoft/frequency_map.hpp => stlsoft/containers/frequency_map.hpp - -+ same goes for WinSTL Registry library, which now resides in winstl/registry, - e.g. winstl/registry/reg_key_sequence.hpp - - -+ stlsoft::ref2ptr generator function for function object classes that translate - a reference into a pointer - - - a lot more function object classes and utilities will be incorporated when - writing of the second volume of Extended STL commences in earnest. - -+ stlsoft::contiguous_diluter_iterator - (stlsoft/iterators/contiguous_diluter_iterator.hpp) - "de-refines" iterators - -+ stlsoft::null_output_iterator - (stlsoft/iterators/null_output_iterator.hpp) - exactly what it says on the - tin. ;-) - -+ stlsoft::unsorted_map (stlsoft/containers/unsorted_map.hpp) - a map that - preserves the order of insertion - -+ atlstl/automation_collections.hpp - COM collection helper classes. Still a - bit of a work in progress - -+ atlstl/enumerators.hpp - one of the useful Synesis enumerator templates - moved over. There'll be more to come on this one. - -+ atlstl/property_method_helpers.hpp - more helpers, for getting prop value from - result of a method call on self, or member. - -+ atlstl/support_error_info.hpp - new SupportErrorInfoImpl4 class template - -+ comstl/acyclic_connector.hpp - comstl::acyclic_connector class template for - allowing communication between two COM objects while avoiding a ref-count - cycle. - -+ comstl/interface_function.h - useful functions brought over from Synesis COM - libs - -+ winstl::netapi_allocator (winstl/memory/netapi_allocator.hpp) - an allocator - that wraps the Windows Network Buffer API - -Changes: -======== - -~ stlsoft/ref_ptr.hpp - an important fix that facilitates more safe - heterogeneous assignment - -~ winstl::event - no throws if event cannot be created (unless not compiling - with exception-handling on) - -~ WinSTL Registry library has had a major reworking. - -Removals: -========= - -Diffs: -====== - - root-dir-1: H:\3Pty\stlsoft\1.9.1-beta4\include - root-dir-2: H:\3Pty\stlsoft\1.9.1-beta5\include -Items unchanged from H:\3Pty\stlsoft\1.9.1-beta4\include to H:\3Pty\stlsoft\1.9.1-beta5\include: 199 -Items changed from H:\3Pty\stlsoft\1.9.1-beta4\include to H:\3Pty\stlsoft\1.9.1-beta5\include: 725 -Items changed (major) from H:\3Pty\stlsoft\1.9.1-beta4\include to H:\3Pty\stlsoft\1.9.1-beta5\include: 24 - comstl\memory_functions.h 3.1.2.35 => 4.0.1.37 ; 22nd December 2005 => 25th March 2006 - comstl\task_allocator.hpp 3.2.1.69 => 4.0.1.72 ; 15th December 2005 => 25th March 2006 - mfcstl\afx_allocator.hpp 1.0.2.3 => 2.0.1.6 ; 22nd December 2005 => 25th March 2006 - stlsoft\allocator_base.hpp 3.4.1.24 => 4.0.1.29 ; 21st January 2006 => 25th March 2006 - stlsoft\allocator_selector.hpp 1.3.2.11 => 2.0.1.15 ; 21st January 2006 => 25th March 2006 - stlsoft\contract_violation.hpp 1.1.1.9 => 2.0.1.12 ; 18th December 2005 => 12th February 2006 - stlsoft\environment_block.hpp 3.2.1.24 => 4.0.1.26 ; 13th January 2006 => 12th February 2006 - stlsoft\fixed_array.hpp 3.6.1.155 => 4.0.1.159 ; 22nd January 2006 => 12th February 2006 - stlsoft\frequency_map.hpp 1.2.1.4 => 2.0.1.6 ; 11th January 2006 => 12th February 2006 - stlsoft\malloc_allocator.hpp 3.2.1.66 => 4.0.2.71 ; 22nd December 2005 => 27th March 2006 - stlsoft\new_allocator.hpp 3.2.2.66 => 4.0.1.69 ; 21st December 2005 => 25th March 2006 - stlsoft\null_allocator.hpp 3.2.1.64 => 4.0.1.67 ; 15th December 2005 => 25th March 2006 - stlsoft\pod_vector.hpp 3.5.1.50 => 4.0.1.54 ; 22nd January 2006 => 12th February 2006 - stlsoft\static_array.hpp 3.4.1.159 => 4.0.1.163 ; 22nd January 2006 => 12th February 2006 - stlsoft\unrecoverable.hpp 1.2.1.16 => 2.0.1.20 ; 22nd December 2005 => 12th February 2006 - winstl\global_allocator.hpp 3.3.1.62 => 4.0.1.65 ; 18th December 2005 => 23rd March 2006 - winstl\processheap_allocator.hpp 3.3.1.67 => 4.0.1.69 ; 18th December 2005 => 23rd March 2006 - winstl\shell_allocator.hpp 3.4.1.65 => 4.0.1.67 ; 22nd January 2006 => 23rd March 2006 - winstl_reg_defs.h 2.2.1.45 => 3.0.1.47 ; 21st January 2006 => 9th February 2006 - winstl_reg_key.h 2.5.2.80 => 3.0.1.84 ; 21st January 2006 => 9th February 2006 - winstl_reg_key_sequence.h 2.4.2.87 => 3.0.1.92 ; 26th January 2006 => 9th February 2006 - winstl_reg_traits.h 2.2.2.47 => 3.0.1.50 ; 21st January 2006 => 9th February 2006 - winstl_reg_value.h 2.4.2.66 => 3.0.1.70 ; 26th January 2006 => 9th February 2006 - winstl_reg_value_sequence.h 2.5.3.79 => 3.0.1.83 ; 26th January 2006 => 9th February 2006 -Items changed (minor) from H:\3Pty\stlsoft\1.9.1-beta4\include to H:\3Pty\stlsoft\1.9.1-beta5\include: 173 - acestl\acestl.hpp 1.5.1.20 => 1.6.2.22 ; 21st January 2006 => 8th February 2006 - acestl\inet_addr_string_access.hpp 1.5.1.19 => 1.6.1.21 ; 13th January 2006 => 25th March 2006 - acestl\message_block_functions.hpp 1.1.7.14 => 1.2.1.16 ; 22nd December 2005 => 21st March 2006 - acestl\message_queue_sequence.hpp 1.2.5.30 => 1.4.2.35 ; 26th January 2006 => 15th February 2006 - acestl\time_string_access.hpp 1.2.2.16 => 1.3.1.19 ; 22nd December 2005 => 20th February 2006 - atlstl\about_dialog.hpp 3.2.1.39 => 3.3.1.40 ; 31st January 2006 => 25th March 2006 - atlstl\atlstl.hpp 3.2.1.88 => 3.3.1.89 ; 21st January 2006 => 5th February 2006 - atlstl\ccombstr_veneer.hpp 4.1.1.44 => 4.2.2.47 ; 22nd December 2005 => 8th February 2006 - atlstl\property_method_helpers.hpp 3.2.1.53 => 3.3.1.56 ; 6th January 2006 => 25th March 2006 - atlstl\string_access.hpp 3.1.1.76 => 3.2.1.79 ; 22nd December 2005 => 9th February 2006 - atlstl\support_error_info.hpp 4.1.1.54 => 4.2.1.56 ; 30th January 2006 => 18th March 2006 - comstl\comstl.h 3.2.1.81 => 3.3.1.82 ; 21st January 2006 => 5th February 2006 - comstl\errorinfo_desc.hpp 0.2.2.8 => 0.3.1.10 ; 26th December 2005 => 5th February 2006 - comstl\interface_cast.hpp 3.2.1.84 => 3.3.1.86 ; 21st January 2006 => 13th March 2006 - comstl\interface_ptr.hpp 5.1.1.470 => 5.2.1.473 ; 22nd December 2005 => 21st March 2006 - comstl\olestring_functions.h 4.1.1.141 => 4.2.1.143 ; 22nd December 2005 => 25th March 2006 - comstl\string_access.hpp 4.1.1.88 => 4.2.2.90 ; 21st January 2006 => 8th February 2006 - comstl_memory_functions.h 3.2.1.34 => 3.3.1.37 ; 23rd December 2005 => 25th March 2006 - comstl_task_allocator.h 3.1.1.67 => 3.2.1.70 ; 23rd December 2005 => 25th March 2006 - dotnetstl\dotnetstl.hpp 3.2.1.31 => 3.3.1.32 ; 21st January 2006 => 8th February 2006 - inetstl\filesystem_functionals.hpp 3.1.2.19 => 3.2.1.21 ; 22nd December 2005 => 5th February 2006 - inetstl\filesystem_traits.hpp 3.2.1.51 => 3.3.1.52 ; 21st January 2006 => 5th February 2006 - inetstl\findfile_sequence.hpp 2.10.5.98 => 2.11.3.102 ; 27th January 2006 => 21st March 2006 - inetstl\ftpdir_sequence.hpp 1.1.2.6 => 1.2.1.8 ; 26th January 2006 => 21st March 2006 - inetstl\inetstl.h 3.2.1.25 => 3.3.1.26 ; 21st January 2006 => 8th February 2006 - mfcstl\carray_adaptors.hpp 3.4.2.48 => 3.8.1.62 ; 31st January 2006 => 25th March 2006 - mfcstl\cstring_adaptors.hpp 3.1.3.61 => 3.3.1.66 ; 27th January 2006 => 25th March 2006 - mfcstl\mfcstl.hpp 3.2.1.74 => 3.3.1.75 ; 21st January 2006 => 5th February 2006 - mfcstl\resource_string.hpp 3.2.2.62 => 3.3.1.64 ; 26th January 2006 => 5th February 2006 - mfcstl\string_access.hpp 3.1.1.67 => 3.3.1.70 ; 22nd December 2005 => 6th February 2006 - mfcstl_array_adaptor.h 3.3.4.47 => 3.4.1.49 ; 31st January 2006 => 5th February 2006 - mfcstl_array_veneer.h 3.3.4.47 => 3.4.1.49 ; 31st January 2006 => 5th February 2006 - mfcstl_cstring_veneer.h 3.0.2.56 => 3.1.1.58 ; 26th January 2006 => 8th February 2006 - mfcstl_list_adaptor.h 2.4.3.43 => 2.5.1.44 ; 26th January 2006 => 5th February 2006 - platformstl\current_directory.hpp 1.0.4.5 => 1.1.2.7 ; 4th January 2006 => 8th February 2006 - platformstl\environment_variable_traits.hpp 1.2.2.7 => 1.3.1.9 ; 21st January 2006 => 21st March 2006 - platformstl\file_path_buffer.hpp 1.1.2.12 => 1.2.1.13 ; 21st January 2006 => 5th February 2006 - platformstl\path.hpp 1.1.1.10 => 1.2.1.11 ; 21st January 2006 => 5th February 2006 - platformstl\platformstl.h 1.8.1.13 => 1.9.2.15 ; 6th January 2006 => 8th February 2006 - rangelib\associative_range.hpp 1.3.2.16 => 1.4.1.18 ; 21st January 2006 => 21st March 2006 - rangelib\iterator_range.hpp 2.5.2.27 => 2.6.1.29 ; 31st December 2005 => 5th February 2006 - rangelib\sequence_range.hpp 2.10.2.49 => 2.11.1.50 ; 20th January 2006 => 5th February 2006 - stlsoft\64bit_integers.hpp 4.2.1.116 => 4.3.1.118 ; 18th December 2005 => 5th February 2006 - stlsoft\access_predicates.hpp 1.2.1.12 => 1.3.1.14 ; 18th December 2005 => 5th February 2006 - stlsoft\algorithms.hpp 1.5.1.18 => 1.6.1.22 ; 22nd December 2005 => 21st March 2006 - stlsoft\array_policies.hpp 3.1.1.118 => 3.2.1.120 ; 22nd December 2005 => 5th February 2006 - stlsoft\array_proxy.hpp 3.0.1.41 => 3.1.1.42 ; 19th January 2006 => 5th February 2006 - stlsoft\associative_container_veneer.hpp 3.2.1.32 => 3.3.1.33 ; 21st January 2006 => 5th February 2006 - stlsoft\auto_buffer.hpp 4.2.1.125 => 4.5.1.134 ; 30th January 2006 => 25th March 2006 - stlsoft\char_traits.hpp 3.1.2.57 => 3.2.2.59 ; 29th January 2006 => 8th February 2006 - stlsoft\cstring_functions.hpp 1.1.1.13 => 1.3.1.15 ; 2nd January 2006 => 25th March 2006 - stlsoft\cstring_maker.hpp 3.2.1.32 => 3.4.1.36 ; 24th December 2005 => 25th March 2006 - stlsoft\exceptions.hpp 3.1.1.35 => 3.2.2.38 ; 18th December 2005 => 20th February 2006 - stlsoft\fast_string_concatenator.hpp 3.1.1.121 => 3.2.2.124 ; 22nd December 2005 => 8th February 2006 - stlsoft\first_class_promoter.hpp 3.1.1.36 => 3.2.1.37 ; 21st January 2006 => 5th February 2006 - stlsoft\inert.hpp 3.1.1.25 => 3.2.2.28 ; 18th December 2005 => 8th February 2006 - stlsoft\integer_to_string.hpp 3.1.1.59 => 3.3.2.63 ; 18th December 2005 => 8th February 2006 - stlsoft\internal\_undefs.h 2.2.1.13 => 2.3.1.16 ; 22nd January 2006 => 21st March 2006 - stlsoft\internal\cccap\borland.h 3.6.1.54 => 3.7.2.57 ; 30th January 2006 => 21st March 2006 - stlsoft\internal\cccap\como.h 3.6.1.44 => 3.7.1.46 ; 30th January 2006 => 21st March 2006 - stlsoft\internal\cccap\dmc.h 3.6.1.66 => 3.7.1.68 ; 30th January 2006 => 21st March 2006 - stlsoft\internal\cccap\gcc.h 3.6.1.50 => 3.7.1.52 ; 30th January 2006 => 21st March 2006 - stlsoft\internal\cccap\intel.h 3.6.1.53 => 3.7.1.55 ; 30th January 2006 => 21st March 2006 - stlsoft\internal\cccap\msvc.h 3.6.1.76 => 3.8.1.81 ; 30th January 2006 => 21st March 2006 - stlsoft\internal\cccap\mwerks.h 3.6.1.44 => 3.7.2.48 ; 30th January 2006 => 21st March 2006 - stlsoft\internal\cccap\unknown.h 3.6.1.42 => 3.7.2.45 ; 30th January 2006 => 21st March 2006 - stlsoft\internal\cccap\vectorc.h 3.6.1.34 => 3.7.2.37 ; 30th January 2006 => 21st March 2006 - stlsoft\internal\cccap\watcom.h 3.6.1.50 => 3.7.2.53 ; 30th January 2006 => 21st March 2006 - stlsoft\internal\explicit_cast_specialisations.hpp 3.0.2.12 => 3.1.1.15 ; 15th November 2005 => 21st March 2006 - stlsoft\limit_traits.h 3.1.1.40 => 3.2.1.43 ; 18th December 2005 => 21st March 2006 - stlsoft\lock_scope.hpp 5.1.1.100 => 5.2.1.102 ; 18th December 2005 => 5th February 2006 - stlsoft\meta\base_type_traits.hpp 4.1.2.26 => 4.2.1.29 ; 30th December 2005 => 21st March 2006 - stlsoft\meta\is_same_type.hpp 4.1.2.109 => 4.2.1.111 ; 17th January 2006 => 21st March 2006 - stlsoft\obsolete\conversion_veneer.hpp 3.1.1.37 => 3.2.1.39 ; 4th January 2006 => 21st March 2006 - stlsoft\obsolete\outer_initialiser.hpp 3.1.1.16 => 3.2.1.18 ; 4th January 2006 => 21st March 2006 - stlsoft\options_verifier.hpp 1.3.4.26 => 1.4.1.28 ; 22nd December 2005 => 5th February 2006 - stlsoft\ref_ptr.hpp 4.5.3.469 => 4.6.1.471 ; 20th December 2005 => 28th March 2006 - stlsoft\scoped_handle.hpp 4.3.1.641 => 4.4.1.645 ; 18th December 2005 => 21st March 2006 - stlsoft\shared_ptr.hpp 2.3.1.16 => 2.4.2.20 ; 2nd January 2006 => 21st March 2006 - stlsoft\shim_string.hpp 2.3.1.21 => 2.4.1.22 ; 13th January 2006 => 25th March 2006 - stlsoft\sign_traits.hpp 3.1.1.32 => 3.2.1.34 ; 22nd December 2005 => 5th February 2006 - stlsoft\simple_string.hpp 3.8.1.206 => 3.11.1.214 ; 22nd January 2006 => 25th March 2006 - stlsoft\static_initialisers.hpp 3.1.1.204 => 3.2.2.208 ; 18th December 2005 => 20th February 2006 - stlsoft\static_string.hpp 3.6.1.162 => 3.8.1.168 ; 22nd January 2006 => 25th March 2006 - stlsoft\stlsoft.h 3.3.1.261 => 3.5.3.268 ; 30th January 2006 => 21st March 2006 - stlsoft\string_access.hpp 3.2.3.73 => 3.3.2.76 ; 29th January 2006 => 8th February 2006 - stlsoft\string_tokeniser.hpp 4.7.1.191 => 4.8.7.198 ; 31st January 2006 => 24th February 2006 - stlsoft\string_traits.hpp 3.2.2.63 => 3.3.1.66 ; 14th January 2006 => 21st March 2006 - stlsoft\string_traits_fwd.hpp 1.4.2.8 => 1.5.1.9 ; 20th December 2005 => 6th February 2006 - stlsoft\string_trim_functions.hpp 1.2.1.17 => 1.3.2.21 ; 2nd January 2006 => 21st March 2006 - stlsoft\string_view.hpp 2.13.1.58 => 2.15.1.64 ; 22nd January 2006 => 25th March 2006 - stlsoft\tokenising\charset_tokeniser.hpp 1.0.3.6 => 1.1.4.15 ; 31st January 2006 => 21st March 2006 - stlsoft\true_typedef.hpp 3.1.1.61 => 3.2.1.63 ; 18th December 2005 => 5th February 2006 - stlsoft\util\exception_string.hpp 1.1.1.5 => 1.2.1.7 ; 13th January 2006 => 25th March 2006 - stlsoft\util\std\algorithm.hpp 3.1.1.65 => 3.2.1.67 ; 2nd January 2006 => 21st March 2006 - stlsoft\util\std\utility.hpp 3.1.1.63 => 3.2.1.65 ; 2nd January 2006 => 21st March 2006 - stlsoft\util\std_swap.hpp 1.1.1.6 => 1.2.2.10 ; 18th December 2005 => 21st March 2006 - stlsoft\zero.hpp 3.1.1.33 => 3.2.1.35 ; 18th December 2005 => 5th February 2006 - stlsoft_allocator_base.h 3.2.1.18 => 3.3.1.21 ; 23rd December 2005 => 25th March 2006 - stlsoft_char_traits.h 3.2.1.54 => 3.3.1.57 ; 23rd December 2005 => 9th February 2006 - stlsoft_fixed_substring.h 2.5.1.49 => 2.7.1.51 ; 21st January 2006 => 25th March 2006 - stlsoft_functionals.h 2.1.1.36 => 2.2.1.37 ; 22nd December 2005 => 6th February 2006 - stlsoft_malloc_allocator.h 3.2.1.64 => 3.3.1.67 ; 23rd December 2005 => 25th March 2006 - stlsoft_meta.h 3.16.1.112 => 3.19.2.117 ; 11th January 2006 => 14th March 2006 - stlsoft_new_allocator.h 3.2.1.64 => 3.3.1.67 ; 23rd December 2005 => 25th March 2006 - stlsoft_null_allocator.h 3.2.1.63 => 3.3.1.66 ; 23rd December 2005 => 25th March 2006 - stlsoft_proxy_iterator.h 2.4.2.38 => 2.5.2.41 ; 22nd December 2005 => 8th February 2006 - stlsoft_proxy_sequence.h 2.4.1.23 => 2.5.1.25 ; 11th January 2006 => 5th February 2006 - stlsoft_simple_algorithms.h 2.3.2.65 => 2.4.1.67 ; 29th December 2005 => 21st March 2006 - unittest\simple_unittester.cpp 2.4.1.18 => 2.5.2.20 ; 22nd December 2005 => 8th February 2006 - unittest\simple_unittester.h 1.2.1.10 => 1.3.1.13 ; 22nd December 2005 => 21st March 2006 - unixstl\current_directory.hpp 3.2.1.35 => 3.3.1.38 ; 22nd December 2005 => 21st March 2006 - unixstl\current_directory_scope.hpp 4.1.1.91 => 4.2.2.95 ; 22nd December 2005 => 21st March 2006 - unixstl\environment_variable.hpp 3.3.1.48 => 3.5.1.51 ; 13th January 2006 => 25th March 2006 - unixstl\file_path_buffer.hpp 3.4.1.38 => 3.6.1.42 ; 13th January 2006 => 25th March 2006 - unixstl\filesystem_functionals.hpp 3.2.1.32 => 3.3.1.35 ; 22nd December 2005 => 21st March 2006 - unixstl\glob_sequence.hpp 4.11.2.114 => 4.12.1.118 ; 26th January 2006 => 25th March 2006 - unixstl\path.hpp 5.5.2.187 => 5.8.1.195 ; 19th January 2006 => 25th March 2006 - unixstl\unixstl.h 3.2.1.58 => 3.3.1.60 ; 6th January 2006 => 21st March 2006 - winstl\absolute_path.hpp 3.1.1.43 => 3.2.3.48 ; 22nd December 2005 => 21st March 2006 - winstl\char_conversions.hpp 3.4.1.56 => 3.5.5.63 ; 13th January 2006 => 24th March 2006 - winstl\clipboard_scope.hpp 1.2.1.9 => 1.5.1.14 ; 22nd December 2005 => 25th March 2006 - winstl\commctrl_functionals.hpp 3.1.1.53 => 3.2.3.58 ; 22nd December 2005 => 21st March 2006 - winstl\control_functionals.hpp 3.2.1.56 => 3.3.1.59 ; 22nd December 2005 => 21st March 2006 - winstl\controls\listbox_const_iterator.hpp 4.0.2.50 => 4.1.2.55 ; 31st January 2006 => 24th March 2006 - winstl\current_directory.hpp 3.2.1.51 => 3.3.1.54 ; 22nd December 2005 => 21st March 2006 - winstl\current_directory_scope.hpp 4.2.1.97 => 4.3.3.101 ; 22nd January 2006 => 21st March 2006 - winstl\directory_functions.hpp 3.1.1.26 => 3.2.1.32 ; 31st January 2006 => 25th March 2006 - winstl\drophandle_sequence.hpp 3.2.4.67 => 3.3.2.72 ; 26th January 2006 => 24th March 2006 - winstl\environment_block.hpp 3.2.1.34 => 3.4.2.40 ; 13th January 2006 => 24th March 2006 - winstl\environment_variable.hpp 3.2.1.45 => 3.3.3.50 ; 13th January 2006 => 24th March 2006 - winstl\error_desc.hpp 3.2.1.48 => 3.3.1.51 ; 30th January 2006 => 21st March 2006 - winstl\event.hpp 3.2.1.37 => 3.4.1.40 ; 16th January 2006 => 21st March 2006 - winstl\file_path_buffer.hpp 3.3.1.84 => 3.4.4.91 ; 13th January 2006 => 24th March 2006 - winstl\filesystem_functionals.hpp 3.1.1.62 => 3.2.1.66 ; 22nd December 2005 => 21st March 2006 - winstl\findfile_sequence.hpp 3.9.2.164 => 3.10.5.171 ; 29th January 2006 => 24th March 2006 - winstl\findvolume_sequence.hpp 3.2.5.83 => 3.3.1.86 ; 27th January 2006 => 21st March 2006 - winstl\highperformance_counter.hpp 3.1.1.67 => 3.2.3.71 ; 22nd December 2005 => 21st March 2006 - winstl\listview_sequence.hpp 3.3.2.48 => 3.4.2.53 ; 26th January 2006 => 24th March 2006 - winstl\memory_mapped_file.hpp 3.3.1.57 => 3.4.1.59 ; 22nd January 2006 => 21st March 2006 - winstl\module_directory.hpp 3.2.1.39 => 3.3.2.42 ; 22nd January 2006 => 21st March 2006 - winstl\module_filename.hpp 3.1.1.55 => 3.2.2.59 ; 22nd December 2005 => 21st March 2006 - winstl\path.hpp 5.4.2.192 => 5.7.1.201 ; 26th January 2006 => 25th March 2006 - winstl\performance_counter.hpp 3.1.1.11 => 3.2.2.14 ; 22nd December 2005 => 21st March 2006 - winstl\registry_functions.hpp 2.2.1.35 => 2.3.1.37 ; 18th December 2005 => 21st March 2006 - winstl\resource_string.hpp 3.1.1.57 => 3.2.1.61 ; 22nd December 2005 => 21st March 2006 - winstl\searchpath_sequence.hpp 3.5.2.66 => 3.6.3.72 ; 26th January 2006 => 24th March 2006 - winstl\setcursor_scope.hpp 3.1.1.28 => 3.2.3.33 ; 22nd December 2005 => 21st March 2006 - winstl\setfocus_scope.hpp 3.1.1.26 => 3.2.2.30 ; 22nd December 2005 => 21st March 2006 - winstl\shell\browse_for_folder.hpp 4.0.1.45 => 4.1.1.48 ; 20th January 2006 => 25th March 2006 - winstl\shell\file_operations.hpp 2.0.3.74 => 2.1.1.77 ; 29th January 2006 => 25th March 2006 - winstl\string_access.hpp 3.1.1.89 => 3.2.1.92 ; 22nd December 2005 => 21st March 2006 - winstl\system_directory.hpp 3.1.1.49 => 3.2.1.52 ; 22nd December 2005 => 21st March 2006 - winstl\time_conversion_functions.h 3.1.1.31 => 3.2.1.33 ; 18th December 2005 => 21st March 2006 - winstl\time_format_functions.h 3.2.2.36 => 3.3.2.40 ; 22nd January 2006 => 24th March 2006 - winstl\token_information.hpp 3.1.1.38 => 3.2.2.42 ; 22nd December 2005 => 24th March 2006 - winstl\version_info.hpp 4.3.2.90 => 4.4.3.94 ; 26th January 2006 => 24th March 2006 - winstl\window_enable_scope.hpp 3.1.1.76 => 3.2.1.79 ; 22nd December 2005 => 21st March 2006 - winstl\window_functionals.hpp 3.1.1.25 => 3.2.1.27 ; 22nd December 2005 => 21st March 2006 - winstl\window_functions.h 3.2.1.42 => 3.3.1.45 ; 31st January 2006 => 21st March 2006 - winstl\window_icon_scope.hpp 3.1.1.36 => 3.2.1.39 ; 22nd December 2005 => 21st March 2006 - winstl\window_redraw_scope.hpp 4.1.1.60 => 4.2.1.64 ; 22nd December 2005 => 21st March 2006 - winstl\window_text_scope.hpp 3.2.1.24 => 3.3.2.27 ; 13th January 2006 => 24th March 2006 - winstl\window_traits.hpp 3.1.1.17 => 3.2.2.21 ; 22nd December 2005 => 21st March 2006 - winstl\window_update_scope.hpp 4.1.1.60 => 4.2.1.64 ; 22nd December 2005 => 21st March 2006 - winstl\window_visible_scope.hpp 3.1.1.24 => 3.2.1.27 ; 22nd December 2005 => 21st March 2006 - winstl\windows_directory.hpp 3.1.1.48 => 3.2.1.51 ; 22nd December 2005 => 21st March 2006 - winstl\windows_ident.hpp 3.2.1.31 => 3.3.3.36 ; 13th January 2006 => 21st March 2006 - winstl\winstl.h 3.2.1.138 => 3.3.2.142 ; 6th January 2006 => 21st March 2006 - winstl_global_allocator.h 3.2.1.60 => 3.3.1.63 ; 23rd December 2005 => 25th March 2006 - winstl_processheap_allocator.h 3.2.1.65 => 3.3.1.68 ; 23rd December 2005 => 25th March 2006 - winstl_shell_allocator.h 3.2.1.60 => 3.3.1.63 ; 23rd December 2005 => 25th March 2006 - wtlstl\wtlstl.hpp 2.2.1.24 => 2.3.1.27 ; 6th January 2006 => 21st March 2006 -Items changed (revision) from H:\3Pty\stlsoft\1.9.1-beta4\include to H:\3Pty\stlsoft\1.9.1-beta5\include: 55 - acestl\custom_event_handler.hpp 1.5.7.34 => 1.5.8.38 ; 22nd December 2005 => 21st March 2006 - comstl\enumerator_sequence.hpp 5.6.3.209 => 5.6.5.212 ; 30th January 2006 => 21st March 2006 - comstl\exceptions.hpp 1.2.2.21 => 1.2.5.26 ; 26th December 2005 => 21st March 2006 - comstl\safearray_sequence.hpp 3.3.2.36 => 3.3.4.38 ; 26th January 2006 => 8th February 2006 - dotnetstl_object_enumerators.h 3.2.1.17 => 3.2.2.20 ; 23rd December 2005 => 21st March 2006 - inetstl\exceptions.hpp 3.3.1.23 => 3.3.3.26 ; 22nd January 2006 => 21st March 2006 - inetstl\searchspec_sequence.hpp 4.3.2.32 => 4.3.3.35 ; 26th January 2006 => 9th February 2006 - platformstl\environment_map.hpp 1.7.4.30 => 1.7.5.32 ; 26th January 2006 => 21st March 2006 - platformstl\platformstl.hpp 1.1.1.8 => 1.1.2.9 ; 6th January 2006 => 8th February 2006 - rangelib\exceptions.hpp 1.0.1.1 => 1.0.4.5 ; 31st December 2005 => 21st March 2006 - rangelib\indexed_range.hpp 2.3.2.22 => 2.3.4.25 ; 20th January 2006 => 24th February 2006 - stlsoft\array_view.hpp 3.5.1.49 => 3.5.3.51 ; 22nd January 2006 => 8th February 2006 - stlsoft\associative_key_sequence.hpp 1.2.1.11 => 1.2.2.12 ; 11th January 2006 => 5th February 2006 - stlsoft\associative_value_sequence.hpp 1.2.1.12 => 1.2.2.13 ; 11th January 2006 => 5th February 2006 - stlsoft\auto_destructor.hpp 4.1.1.56 => 4.1.2.58 ; 18th December 2005 => 21st March 2006 - stlsoft\constraints.hpp 4.1.1.82 => 4.1.2.85 ; 21st January 2006 => 21st March 2006 - stlsoft\container_access.hpp 1.3.1.18 => 1.3.2.20 ; 22nd December 2005 => 21st March 2006 - stlsoft\explicit_cast.hpp 3.2.1.27 => 3.2.2.28 ; 31st January 2006 => 8th February 2006 - stlsoft\iterator.hpp 4.3.2.86 => 4.3.6.91 ; 29th January 2006 => 20th February 2006 - stlsoft\iterators\member_selector_iterator.hpp 2.3.3.32 => 2.3.5.37 ; 31st January 2006 => 27th March 2006 - stlsoft\literal_cast.hpp 3.2.1.31 => 3.2.2.33 ; 29th December 2005 => 5th March 2006 - stlsoft\meta\add_qualifier.hpp 1.1.1.2 => 1.1.2.4 ; 2nd January 2006 => 21st March 2006 - stlsoft\meta\member_traits.hpp 2.0.1.23 => 2.0.2.26 ; 28th December 2005 => 21st March 2006 - stlsoft\method_properties.hpp 3.3.1.43 => 3.3.2.44 ; 12th January 2006 => 8th February 2006 - stlsoft\pod_veneer.hpp 3.1.1.38 => 3.1.2.40 ; 22nd December 2005 => 21st March 2006 - stlsoft\printf_traits.hpp 3.3.2.46 => 3.3.3.47 ; 19th January 2006 => 8th February 2006 - stlsoft\ptr_cast.hpp 3.2.1.20 => 3.2.2.22 ; 29th December 2005 => 21st March 2006 - stlsoft\sap_cast.hpp 3.3.1.29 => 3.3.2.31 ; 29th December 2005 => 21st March 2006 - stlsoft\searchspec_sequence.hpp 3.2.1.36 => 3.2.2.38 ; 11th January 2006 => 8th February 2006 - stlsoft\sequence_container_veneer.hpp 3.2.1.36 => 3.2.3.38 ; 11th January 2006 => 8th February 2006 - stlsoft\string_container_slice_functions.hpp 1.3.1.8 => 1.3.2.11 ; 18th December 2005 => 21st March 2006 - stlsoft\string_split_functions.hpp 1.3.3.22 => 1.3.4.24 ; 26th December 2005 => 21st March 2006 - stlsoft\util\std\iterator_generators.hpp 3.1.2.83 => 3.1.4.86 ; 3rd January 2006 => 21st March 2006 - stlsoft\util\std\library_discriminator.hpp 4.2.2.87 => 4.2.3.90 ; 29th January 2006 => 21st March 2006 - stlsoft_cccap_msvc.h 3.1.1.71 => 3.1.2.74 ; 23rd December 2005 => 21st March 2006 - unixstl\dl_call.hpp 1.3.2.10 => 1.3.3.14 ; 20th December 2005 => 21st March 2006 - unixstl\exceptions.hpp 3.3.1.30 => 3.3.3.34 ; 26th December 2005 => 21st March 2006 - unixstl\spin_mutex.hpp 3.2.1.39 => 3.2.2.41 ; 16th January 2006 => 21st March 2006 - winstl\atomic_functions.h 4.1.1.186 => 4.1.2.188 ; 18th December 2005 => 21st March 2006 - winstl\commandline_parser.hpp 1.3.1.17 => 1.3.2.19 ; 13th January 2006 => 24th March 2006 - winstl\controls\combobox_sequence.hpp 3.3.2.48 => 3.3.3.50 ; 30th January 2006 => 21st March 2006 - winstl\controls\listbox_sequence.hpp 4.0.1.49 => 4.0.2.51 ; 30th January 2006 => 21st March 2006 - winstl\dl_call.hpp 1.4.1.11 => 1.4.2.15 ; 18th December 2005 => 21st March 2006 - winstl\environment_sequence.hpp 3.6.2.56 => 3.6.5.61 ; 26th January 2006 => 24th March 2006 - winstl\exceptions.hpp 3.2.1.31 => 3.2.2.33 ; 2nd January 2006 => 21st March 2006 - winstl\file_functions.hpp 1.5.1.22 => 1.5.3.26 ; 21st January 2006 => 24th March 2006 - winstl\filesystem_traits.hpp 3.7.1.83 => 3.7.2.86 ; 22nd January 2006 => 21st March 2006 - winstl\pid_sequence.hpp 1.7.2.24 => 1.7.4.28 ; 26th January 2006 => 24th March 2006 - winstl\process_module_sequence.hpp 1.6.2.22 => 1.6.4.26 ; 26th January 2006 => 24th March 2006 - winstl\process_mutex.hpp 3.2.1.36 => 3.2.2.38 ; 16th January 2006 => 21st March 2006 - winstl\spin_mutex.hpp 3.2.1.37 => 3.2.2.40 ; 16th January 2006 => 21st March 2006 - winstl\system_info.hpp 3.1.1.45 => 3.1.2.47 ; 18th December 2005 => 21st March 2006 - winstl\thread_mutex.hpp 3.2.1.37 => 3.2.2.39 ; 16th January 2006 => 21st March 2006 - winstl\time_string_access.hpp 1.3.2.21 => 1.3.3.24 ; 29th December 2005 => 21st March 2006 - winstl\winstl_int_to_string.h 1.5.1.24 => 1.5.2.26 ; 22nd January 2006 => 21st March 2006 -Items changed (edit) from H:\3Pty\stlsoft\1.9.1-beta4\include to H:\3Pty\stlsoft\1.9.1-beta5\include: 419 -Items changed (unversioned) from H:\3Pty\stlsoft\1.9.1-beta4\include to H:\3Pty\stlsoft\1.9.1-beta5\include: 54 - acestl\unittest\message_block_functions_unittest_.h ... => ... ; => - atlstl.h ... => ... ; => - atlstl\unittest\ccombstr_veneer_unittest_.h ... => ... ; => - atlstl\unittest\string_access_unittest_.h ... => ... ; => - comstl.h ... => ... ; => - comstl\unittest\safearray_sequence_unittest_.h ... => ... ; => 5th February 2006 - comstl\unittest\thread_marshal_unittest_.h ... => ... ; 19th September 2005 => 21st March 2006 - dotnetstl.h ... => ... ; => - inetstl.h ... => ... ; => - inetstl\unittest\findfile_sequence_unittest_.h ... => ... ; 23rd January 2006 => 21st March 2006 - inetstl\unittest\ftpdir_sequence_unittest_.h ... => ... ; 20th January 2006 => 21st March 2006 - mfcstl.h ... => ... ; => - mfcstl\unittest\carray_adaptors_unittest_.h ... => ... ; 20th December 2005 => 21st March 2006 - rangelib\unittest\iterator_range_unittest_.h ... => ... ; => - rangelib\unittest\sequence_range_unittest_.h ... => ... ; => - stlsoft.h ... => ... ; => - stlsoft\iterators\unittest\cstring_concatenator_iterator_unittest_.h ... => ... ; 27th December 2005 => 21st March 2006 - stlsoft\iterators\unittest\member_selector_iterator_unittest_.h ... => ... ; => - stlsoft\iterators\unittest\ostream_iterator_unittest_.h ... => ... ; 14th January 2006 => 21st March 2006 - stlsoft\iterators\unittest\transform_iterator_unittest_.h ... => ... ; 18th December 2005 => 21st March 2006 - stlsoft\meta\unittest\base_type_traits_unittest_.h ... => ... ; 29th December 2005 => 5th February 2006 - stlsoft\meta\unittest\is_same_type_unittest_.h ... => ... ; 31st December 2005 => 5th March 2006 - stlsoft\skip_iterator.hpp ... => ... ; 13th December 2005 => 21st March 2006 - stlsoft\unittest\auto_buffer_unittest_.h ... => ... ; 14th January 2006 => 21st March 2006 - stlsoft\unittest\integer_to_string_unittest_.h ... => ... ; => - stlsoft\unittest\printf_traits_unittest_.h ... => ... ; 19th January 2006 => 5th February 2006 - stlsoft\unittest\ref_ptr_unittest_.h ... => ... ; 20th December 2005 => 28th March 2006 - stlsoft\unittest\simple_string_unittest_.h ... => ... ; 22nd January 2006 => 5th February 2006 - stlsoft\unittest\static_string_unittest_.h ... => ... ; 17th September 2005 => 5th February 2006 - stlsoft\unittest\string_tokeniser_unittest_.h ... => ... ; 29th January 2006 => 21st March 2006 - stlsoft\unittest\string_traits_unittest_.h ... => ... ; => - stlsoft\unittest\string_view_unittest_.h ... => ... ; 22nd January 2006 => 5th February 2006 - unixstl.h ... => ... ; => - unixstl\unittest\filesystem_traits_unittest_.h ... => ... ; 2nd September 2005 => 5th February 2006 - unixstl\unittest\glob_sequence_unittest_.h ... => ... ; 30th August 2005 => 21st March 2006 - winstl.h ... => ... ; => - winstl\reg_defs.hpp ... => ... ; => - winstl\reg_key.hpp ... => ... ; => - winstl\reg_key_sequence.hpp ... => ... ; => - winstl\reg_traits.hpp ... => ... ; => - winstl\reg_value.hpp ... => ... ; => - winstl\reg_value_sequence.hpp ... => ... ; => - winstl\unittest\absolute_path_unittest_.h ... => ... ; => - winstl\unittest\current_directory_scope_unittest_.h ... => ... ; => - winstl\unittest\current_directory_unittest_.h ... => ... ; => - winstl\unittest\drophandle_sequence_unittest_.h ... => ... ; 5th October 2005 => 24th February 2006 - winstl\unittest\environment_sequence_unittest_.h ... => ... ; 4th October 2005 => 5th February 2006 - winstl\unittest\filesystem_traits_unittest_.h ... => ... ; 16th September 2005 => 5th February 2006 - winstl\unittest\findfile_sequence_unittest_.h ... => ... ; 23rd January 2006 => 21st March 2006 - winstl\unittest\module_filename_unittest_.h ... => ... ; => - winstl\unittest\string_access_unittest_.h ... => ... ; 19th September 2005 => 5th February 2006 - winstl\unittest\time_format_functions_unittest_.h ... => ... ; 22nd January 2006 => 5th February 2006 - winstl\unittest\windows_directory_unittest_.h ... => ... ; => - wtlstl.h ... => ... ; => -Items deleted from H:\3Pty\stlsoft\1.9.1-beta4\include: 15 -Items added to H:\3Pty\stlsoft\1.9.1-beta5\include: 70 - - -============================================================================ - -Changes for 1.9.1 beta 4 (31st January 2006) - -There are a few minor directory changes, a few bug fixes, and several -new components. - -Extended STL -============ - -Many of the additions in this beta pertain to concepts and components introduced -in my forthcoming book "Extended STL, Volume 1" (see http://extendedstl.com/), -to be published by Addison-Wesley later this year. Obviously some of these are -without publicly accessible explanations at the moment, but as the book -publication draws near, some, at least, will receive publicly accessible -treatments. As for the rest, well you'll have to invest in "Extended STL". ;-) - -Additions: -========== - -+ stlsoft::charset_tokeniser (stlsoft/charset_tokeniser.hpp) - a "refinement" of - stlsoft::string_tokeniser, making it easy to tokenise using charsets (a la - strtok()) without the mess of using custom comparators with string_tokeniser - (which can be something of a drag). - -+ comstl::cloneable_cloning_policy (comstl/enumeration_policies.hpp) - a policy - that enables comstl::enumerator_sequence to be used with enumerators that may, - or may not, be cloneable. - -+ winstl::listbox_const_iterator (winstl/listbox_const_iterator.hpp) - an - iterator class that is used in the refactored versions of - winstl::listbox_sequence and winstl::combobox_sequence. - -+ winstl::shell_delete() function suite - -Changes: -======== - -~ stlsoft/tokeniser_functions.hpp => stlsoft/tokenising/tokeniser_functions.hpp - -~ stlsoft::string_tokeniser (stlsoft/string_tokeniser.hpp) - ~ now uses c_str_data() and c_str_len() shims, rather than c_str_ptr() - + new skip_blank_tokens, that supercedes string_tokeniser_ignore_blanks - - string_tokeniser_ignore_blanks deprecated - ~ lots of general tidying up - -~ comstl::enumerator_sequence now properly handles enumerators that may or may - not be cloneable, by deferring a Clone() until the second time the sequence - needs to be enumerated. - -~ inetstl::basic_findfile_sequence - moved exception policy to third template - parameter, rather than second. - -~ winstl/listbox_sequence.hpp => winstl/controls/listbox_sequence.hpp - -~ winstl/combobox_sequence.hpp => winstl/controls/combobox_sequence.hpp - -~ winstl/shell_browse.hpp => winstl/shell/browse_for_folder.hpp. - winstl::shell_browse() => winstl::browse_for_folder() - -Removals: -========= - -- comstl::degenerate_cloning_policy - -Diffs: -====== - - root-dir-1: H:\3Pty\stlsoft\1.9.1-beta3\include - root-dir-2: H:\3Pty\stlsoft\1.9.1-beta4\include -Items unchanged from H:\3Pty\stlsoft\1.9.1-beta3\include to H:\3Pty\stlsoft\1.9.1-beta4\include: 779 -Items changed from H:\3Pty\stlsoft\1.9.1-beta3\include to H:\3Pty\stlsoft\1.9.1-beta4\include: 146 -Items changed (major) from H:\3Pty\stlsoft\1.9.1-beta3\include to H:\3Pty\stlsoft\1.9.1-beta4\include: 4 - stlsoft\tokeniser_functions.hpp 1.1.1.11 => 2.0.1.12 ; 22nd December 2005 => 30th January 2006 - winstl\combobox_sequence.hpp 3.3.1.47 => 4.0.1.49 ; 13th January 2006 => 30th January 2006 - winstl\listbox_sequence.hpp 3.3.1.46 => 4.0.1.49 ; 13th January 2006 => 30th January 2006 - winstl\shell_browse.hpp 3.1.1.44 => 4.0.1.46 ; 22nd December 2005 => 21st January 2006 -Items changed (minor) from H:\3Pty\stlsoft\1.9.1-beta3\include to H:\3Pty\stlsoft\1.9.1-beta4\include: 60 - comstl\collection_sequence.hpp 5.4.2.73 => 5.5.2.75 ; 13th January 2006 => 26th January 2006 - comstl\enumeration_policies.hpp 5.5.1.26 => 5.9.1.30 ; 12th January 2006 => 25th January 2006 - comstl\enumerator_sequence.hpp 5.4.6.200 => 5.6.3.209 ; 17th January 2006 => 30th January 2006 - comstl\guid.hpp 3.2.2.23 => 3.3.1.24 ; 2nd January 2006 => 22nd January 2006 - comstl\safearray_sequence.hpp 3.2.1.34 => 3.3.2.36 ; 11th January 2006 => 26th January 2006 - comstl\value_policies.hpp 4.1.1.149 => 4.2.1.151 ; 22nd December 2005 => 25th January 2006 - inetstl\connection.hpp 4.2.1.53 => 4.3.1.54 ; 17th January 2006 => 22nd January 2006 - inetstl\exceptions.hpp 3.2.2.22 => 3.3.1.23 ; 18th January 2006 => 22nd January 2006 - inetstl\findfile_sequence.hpp 2.8.1.91 => 2.10.5.98 ; 18th January 2006 => 27th January 2006 - inetstl\ftpdir_sequence.hpp 1.0.3.3 => 1.1.2.6 ; 20th January 2006 => 26th January 2006 - inetstl\session.hpp 4.2.1.47 => 4.3.1.48 ; 17th January 2006 => 22nd January 2006 - mfcstl\carray_adaptors.hpp 3.3.2.45 => 3.4.2.48 ; 19th January 2006 => 31st January 2006 - mfcstl\containers\carray_swap.hpp 1.0.1.1 => 1.1.2.3 ; 15th December 2005 => 29th January 2006 - mfcstl\cstring_adaptors.hpp 3.0.3.56 => 3.1.3.61 ; 20th January 2006 => 27th January 2006 - stlsoft\array_view.hpp 3.3.1.46 => 3.5.1.49 ; 11th January 2006 => 22nd January 2006 - stlsoft\auto_buffer.hpp 4.1.4.123 => 4.2.1.125 ; 17th January 2006 => 30th January 2006 - stlsoft\fixed_array.hpp 3.4.1.153 => 3.6.1.155 ; 11th January 2006 => 22nd January 2006 - stlsoft\internal\_undefs.h 2.1.1.12 => 2.2.1.13 ; 29th December 2005 => 22nd January 2006 - stlsoft\internal\cccap\borland.h 3.4.1.52 => 3.6.1.54 ; 16th January 2006 => 30th January 2006 - stlsoft\internal\cccap\como.h 3.4.1.42 => 3.6.1.44 ; 16th January 2006 => 30th January 2006 - stlsoft\internal\cccap\dmc.h 3.4.1.64 => 3.6.1.66 ; 16th January 2006 => 30th January 2006 - stlsoft\internal\cccap\gcc.h 3.4.1.48 => 3.6.1.50 ; 16th January 2006 => 30th January 2006 - stlsoft\internal\cccap\intel.h 3.4.1.51 => 3.6.1.53 ; 16th January 2006 => 30th January 2006 - stlsoft\internal\cccap\msvc.h 3.4.1.74 => 3.6.1.76 ; 16th January 2006 => 30th January 2006 - stlsoft\internal\cccap\mwerks.h 3.4.1.42 => 3.6.1.44 ; 16th January 2006 => 30th January 2006 - stlsoft\internal\cccap\unknown.h 3.4.1.40 => 3.6.1.42 ; 16th January 2006 => 30th January 2006 - stlsoft\internal\cccap\vectorc.h 3.4.1.32 => 3.6.1.34 ; 16th January 2006 => 30th January 2006 - stlsoft\internal\cccap\watcom.h 3.4.1.48 => 3.6.1.50 ; 16th January 2006 => 30th January 2006 - stlsoft\iterator.hpp 4.2.1.84 => 4.3.2.86 ; 29th December 2005 => 29th January 2006 - stlsoft\pod_vector.hpp 3.4.1.49 => 3.5.1.50 ; 13th January 2006 => 22nd January 2006 - stlsoft\simple_string.hpp 3.6.1.204 => 3.8.1.206 ; 13th January 2006 => 22nd January 2006 - stlsoft\static_array.hpp 3.2.1.157 => 3.4.1.159 ; 11th January 2006 => 22nd January 2006 - stlsoft\static_string.hpp 3.4.1.160 => 3.6.1.162 ; 13th January 2006 => 22nd January 2006 - stlsoft\stlsoft.h 3.2.1.259 => 3.3.1.261 ; 6th January 2006 => 30th January 2006 - stlsoft\string_tokeniser.hpp 4.5.2.180 => 4.7.1.191 ; 13th January 2006 => 31st January 2006 - stlsoft\string_view.hpp 2.11.1.56 => 2.13.1.58 ; 11th January 2006 => 22nd January 2006 - stlsoft\union_cast.hpp 4.2.1.44 => 4.3.2.46 ; 29th December 2005 => 21st January 2006 - unixstl\glob_sequence.hpp 4.9.1.111 => 4.11.2.114 ; 13th January 2006 => 26th January 2006 - unixstl\memory_mapped_file.hpp 3.2.1.58 => 3.3.1.59 ; 15th December 2005 => 22nd January 2006 - unixstl\module.hpp 5.1.1.195 => 5.2.1.196 ; 15th December 2005 => 22nd January 2006 - unixstl\process_mutex.hpp 3.2.2.43 => 3.3.1.44 ; 19th January 2006 => 22nd January 2006 - unixstl\readdir_sequence.hpp 4.6.3.95 => 4.7.4.99 ; 19th January 2006 => 27th January 2006 - winstl\current_directory_scope.hpp 4.1.1.96 => 4.2.1.97 ; 22nd December 2005 => 22nd January 2006 - winstl\environment_sequence.hpp 3.5.1.54 => 3.6.2.56 ; 13th January 2006 => 26th January 2006 - winstl\filesystem_traits.hpp 3.6.3.82 => 3.7.1.83 ; 13th January 2006 => 22nd January 2006 - winstl\findfile_sequence.hpp 3.6.2.154 => 3.9.2.164 ; 17th January 2006 => 29th January 2006 - winstl\memory_mapped_file.hpp 3.2.1.56 => 3.3.1.57 ; 18th December 2005 => 22nd January 2006 - winstl\module.hpp 5.1.1.198 => 5.2.1.199 ; 22nd December 2005 => 22nd January 2006 - winstl\module_directory.hpp 3.1.1.38 => 3.2.1.39 ; 22nd December 2005 => 22nd January 2006 - winstl\pid_sequence.hpp 1.5.1.21 => 1.7.2.24 ; 13th January 2006 => 26th January 2006 - winstl\process_module_sequence.hpp 1.4.1.19 => 1.6.2.22 ; 13th January 2006 => 26th January 2006 - winstl\searchpath_sequence.hpp 3.4.1.64 => 3.5.2.66 ; 13th January 2006 => 26th January 2006 - winstl\shell_allocator.hpp 3.3.1.64 => 3.4.1.65 ; 22nd December 2005 => 22nd January 2006 - winstl\tss_index.hpp 3.1.1.21 => 3.2.1.22 ; 22nd December 2005 => 22nd January 2006 - winstl\version_info.hpp 4.2.2.88 => 4.3.2.90 ; 13th January 2006 => 26th January 2006 - winstl\windows_type_conversions.hpp 3.1.1.27 => 3.2.1.28 ; 2nd January 2006 => 20th January 2006 - winstl\winstl_int_to_string.h 1.4.1.23 => 1.5.1.24 ; 22nd December 2005 => 22nd January 2006 - winstl_combobox_sequence.h 3.2.1.39 => 3.3.1.40 ; 23rd December 2005 => 30th January 2006 - winstl_listbox_sequence.h 3.12.1.39 => 3.13.1.40 ; 23rd December 2005 => 30th January 2006 - winstl_shell_browse.h 3.2.1.44 => 3.3.1.45 ; 23rd December 2005 => 21st January 2006 -Items changed (revision) from H:\3Pty\stlsoft\1.9.1-beta3\include to H:\3Pty\stlsoft\1.9.1-beta4\include: 31 -Items changed (edit) from H:\3Pty\stlsoft\1.9.1-beta3\include to H:\3Pty\stlsoft\1.9.1-beta4\include: 40 -Items changed (unversioned) from H:\3Pty\stlsoft\1.9.1-beta3\include to H:\3Pty\stlsoft\1.9.1-beta4\include: 11 - acestl\unittest\message_queue_sequence_unittest_.h ... => ... ; => - comstl\unittest\enumerator_sequence_unittest_.h ... => ... ; 13th January 2006 => 31st January 2006 - comstl\unittest\guid_unittest_.h ... => ... ; => - inetstl\unittest\findfile_sequence_unittest_.h ... => ... ; 17th January 2006 => 23rd January 2006 - stlsoft\unittest\ptr_proxy_unittest_.h ... => ... ; 20th January 2006 => 20th January 2006 - stlsoft\unittest\simple_string_unittest_.h ... => ... ; 19th January 2006 => 22nd January 2006 - stlsoft\unittest\string_tokeniser_unittest_.h ... => ... ; 31st December 2005 => 29th January 2006 - stlsoft\unittest\string_view_unittest_.h ... => ... ; 16th November 2005 => 22nd January 2006 - unixstl\unittest\process_mutex_unittest_.h ... => ... ; 16th January 2006 => 22nd January 2006 - unixstl\unittest\readdir_sequence_unittest_.h ... => ... ; 10th September 2005 => 23rd January 2006 - winstl\unittest\findfile_sequence_unittest_.h ... => ... ; 17th January 2006 => 23rd January 2006 -Items deleted from H:\3Pty\stlsoft\1.9.1-beta3\include: 3 - H:\3Pty\stlsoft\1.9.1-beta3\include\STLSoft-ReleaseNotes-1.9.1-beta3.txt - H:\3Pty\stlsoft\1.9.1-beta3\include\winstl\unittest\combobox_sequence_unittest_.h - H:\3Pty\stlsoft\1.9.1-beta3\include\winstl\unittest\listbox_sequence_unittest_.h -Items added to H:\3Pty\stlsoft\1.9.1-beta4\include: 14 - H:\3Pty\stlsoft\1.9.1-beta4\include\STLSoft-ReleaseNotes-1.9.1-beta4.txt - H:\3Pty\stlsoft\1.9.1-beta4\include\stlsoft\tokenising\charset_tokeniser.hpp - H:\3Pty\stlsoft\1.9.1-beta4\include\stlsoft\tokenising\tokeniser_functions.hpp - H:\3Pty\stlsoft\1.9.1-beta4\include\stlsoft\tokenising\unittest\tokeniser_functions_unittest_.h - H:\3Pty\stlsoft\1.9.1-beta4\include\winstl\controls\combobox_sequence.hpp - H:\3Pty\stlsoft\1.9.1-beta4\include\winstl\controls\listbox_const_iterator.hpp - H:\3Pty\stlsoft\1.9.1-beta4\include\winstl\controls\listbox_sequence.hpp - H:\3Pty\stlsoft\1.9.1-beta4\include\winstl\controls\unittest\combobox_sequence_unittest_.h - H:\3Pty\stlsoft\1.9.1-beta4\include\winstl\controls\unittest\listbox_sequence_unittest_.h - H:\3Pty\stlsoft\1.9.1-beta4\include\winstl\shell\browse_for_folder.hpp - H:\3Pty\stlsoft\1.9.1-beta4\include\winstl\shell\file_operations.hpp - H:\3Pty\stlsoft\1.9.1-beta4\include\winstl\shell\unittest\browse_for_folder_unittest_.h - H:\3Pty\stlsoft\1.9.1-beta4\include\winstl\shell\unittest\file_operations_unittest_.h - H:\3Pty\stlsoft\1.9.1-beta4\include\winstl\unittest\time_format_functions_unittest_.h - - -============================================================================ - -Changes for 1.9.1 beta 3 (20th January 2006) - -There are a few minor directory changes, a few bug fixes, and quite a lot of -new components. - -Extended STL -============ - -Many of the additions in this beta pertain to concepts and components introduced -in my forthcoming book "Extended STL, Volume 1" (see http://extendedstl.com/), -to be published by Addison-Wesley later this year. Obviously some of these are -without publicly accessible explanations at the moment, but as the book -publication draws near, some, at least, will receive publicly accessible -treatments. As for the rest, well you'll have to invest in "Extended STL". ;-) - -Additions: -========== - -+ stlsoft/collections.hpp: contains new collection concept tags - -+ stlsoft::external_iterator_invalidation - (stlsoft/exceptions/external_iterator_invalidation.hpp): new exception class - for representing iterator interruption by external agents - -+ stlsoft::iteration_interruption - (stlsoft/exceptions/iteration_interruption.hpp): a new exception class that - acts as the base for iterator interruption - -+ stlsoft::adapted_iterator_traits (stlsoft/adapted_iterator_traits.hpp): an - omniscient iterator adaptor class that can detect iterator category, - mutability, and element reference category (a new concept that is introduced - in "Extended STL"). - -+ stlsoft::filter_iterator (stlsoft/filter_iterator.hpp): an - iterator adaptor class that can be used to filter out elements based on a - predicate. - -+ stlsoft/transform_filter_iterator.hpp and - stlsoft/filter_transform_iterator.hpp: contains creator functions for - mixing filter_iterator and transform_iterator iterator adaptors. +* UNIXSTL components spin_mutex and the atomic_???() function suite are now compatible with both architectures (PPC + Intel) on MAC OSX; -+ several new components for detecting standard library features, and assisting - with handling iterator categories, in: - stlsoft\util\std\dinkumware_iterator_traits.hpp - stlsoft\util\std\iterator_category_limiters.hpp - stlsoft\util\std\stdio_overload_detectors.hpp -+ inetstl::basic_ftpdir_sequence (inetstl/ftpdir_sequence.hpp): a new collection - class that provides a vector-like interface over the contents of an FTP server - directory; implemented in terms of inetstl::basic_findfile_sequence +## 1.9.1 beta 29 - 27th November 2006 -+ mfcstl::CString_cadaptor and mfcstl::CString_iadaptor - (mfcstl/cstring_adaptors.hpp): class and instance - adaptors for CString, dragging it kicking and screaming into conformance with - std::basic_string +* atlstl::Window class - a string access shim-aware enhancement to ATLs' Window class; +* COMSTL value policies throw exceptions if fail to copy; +* UNIXSTL and WinSTL spin_mutex is made into a template, and takes a policy that determines whether it yields on the spin. Use spin_mutex_yield for yielding, spin_mutex_no_yield for no yielding. spin_mutex is now a typedef for spin_mutex_no_yield. The old behaviour can be obtained by #define-ing the symbol STLSOFT_OLD_SPIN_MUTEX_BEHAVIOUR, in which case spin_mutex is a typedef for spin_mutex_yield; +* WinSTL's pid_sequence and process_module_sequence classes have been rendered slightly more efficient; -+ rangelib::range_exception and rangelib::empty_range_exception - (rangelib/exceptions.hpp): new exception classes used by RangeLib components -+ rangelib::filter_sequence (rangelib/filtered_sequence.hpp): a new creator - function that returns an instance of range_lib::filtered_range specialised - with a rangelib::sequence_range applied to the given STL sequence. +## 1.9.1 beta 28 - 29th October 2006 -+ rangelib::iterator_range (rangelib/iterator_range.hpp): a new class that - adapts a pair of iterators to the Range concept +* stlsoft::a2w() and stlsoft::w2a() char conversion functions (functionally the same as the WinSTL ones); +* fixed bug in winstl/shims/access/string/time.hpp that breaks Pantheios in UNICODE builds; -+ winstl::child_window_sequence (winstl/child_window_sequence.hpp): a new class - that presents an STL collection over the set of child windows of a given - window. -Changes: -======== +## 1.9.1 beta 27 - 22nd October 2006 -~ stlsoft::auto_buffer has the 2nd and 3rd template parameters reversed. The - internal array size parameter is now 2nd, and the allocator parameter is now - 3rd. All STLSoft components are updated accordingly. Backwards compatibility - is provided in the form of stlsoft::auto_buffer_old +* stlsoft::trip_bool class template; +* stlsoft/functional/function_adaptors.hpp does not include stlsoft/functional/method_adaptors.hpp for GCC < 3.3; +* minor general changes in makefile structure; +* fixed for UNIX makefiles; -~ stlsoft::proxy_ptr is renamed to stlsoft::ptr_proxy. The old form is available - for backwards compatibility -~ winstl::window_peer_sequence is now implemented in terms of new - zorder_sequence_base, as discussed in the chapter "Travelling Back and Forth - on the Z-Plane" from "Extended STL". +## 1.9.1 beta 26 - 21st October 2006 -Removals: -========= +* stlsoft::scoped_handle specialisation for scoping APIs with 0 params; +* string access shims (in InetSTL) for struct in_addr; +* VC5 compatibility in ~50 files. (You may find it strange that VC5 compat is even an issue, but we have some older products that require VC5 compilation, and we want to put Pantheios into it. So, STLSoft has to be made to work with it ...); +* fix to stlsoft::integer_to_string() overloads to handle (unsigned) long in addition to all the others; -- mfcstl::cstring_veneer (mfcstl_cstring_veneer.h) is now deprecated, in favour - of the new mfcstl::CString_cadaptor -Directory structure changes: -============================ +## 1.9.1 beta 25 - 5th October 2006 -~ stlsoft/filter_iterator.hpp => stlsoft/iterators/filter_iterator.hpp +* fixed #include omission stlsoft/conversion/byte_format_functions.hpp; +* fixed method omissions in stlsoft::special_string_instance_1; +* fixed bug in comstl::IDispatchImpl3::Invoke(); +* winstl/util/struct_initialisers.hpp now handles case where WIN32_LEAN_AND_MEAN may have been defined; -~ stlsoft/member_traits.hpp => stlsoft/meta/member_traits.hpp -~ stlsoft/type_traits.hpp => stlsoft/meta/base_type_traits.hpp +## 1.9.1 beta 24 - 24th September 2006 -~ stlsoft_array_proxy.h => stlsoft/array_proxy.hpp +* stlsoft::basic_shim_string::internal_size(); +* unixstl::process_mutex now allows for wrapping of an externally created pthread_mutex_t*; +* unixstl::thread_mutex now allows for wrapping of an externally created pthread_mutex_t*; +* fix minor bug in stlsoft::c_str_data_a(struct tm const *t) (located in stlsoft/shims/access/string/std/time.hpp) that resulted in heap allocation every time; +* fixed bug that prevented C-only compilation of platformstl/platformstl.h; +* unixstl/synch/atomic_functions.h now contains various feature detection symbols, e.g. UNIXSTL_HAS_ATOMIC_PREINCREMENT, UNIXSTL_HAS_ATOMIC_PREADD; +* tidying up of exception-safety in unixstl::process_mutex; +* introduction of exception throwing in unixstl::thread_mutex, to be conformant with unixstl::process_mutex; +* unixstl::spin_mutex now discriminates on the (new) symbol UNIXSTL_HAS_ATOMIC_WRITE; +* platformstl/synch/atomic_functions.h now contains various feature detection symbols, e.g. PLATFORMSTL_HAS_ATOMIC_PREINCREMENT, PLATFORMSTL_HAS_ATOMIC_PREADD; -~ stlsoft_container_base.h => stlsoft/obsolete/container_base.hpp -~ stlsoft_proxy_ptr.h => stlsoft/ptr_proxy.hpp +## 1.9.1 beta 23 - 17th September 2006 +* mfcstl/collections/clist_adaptors.hpp: mfcstl::CList_iadaptor replaces the old mfcstl::list_adaptor class template; +* a whole load more directory changes. Very few now remain, and 1.9.1 proper is very close; -Diffs: -====== - root-dir-2: H:\3Pty\stlsoft\1.9.1-beta2 - root-dir-2: H:\3Pty\stlsoft\1.9.1-beta3 +## 1.9.1 beta 22 - 13th September 2006 +* the following files were "moved" into stlsoft/util: options_verifier.hpp printf_traits.hpp true_typedef.hpp argument_proxies.hpp compiler_optimisation_traits.hpp constraints.hpp limit_traits.h sign_traits.hpp size_traits.hpp static_initialisers.hpp; +* the following files were "moved" into stlsoft/obsolete: first_class_promoter.hpp explicit_inheritance_veneer.hpp; +* fix of version numbers in stlsoft/stlsoft.h; -============================================================================ +## 1.9.1 beta 21 - 7th September 2006 -Changes for 1.9.1 beta 2 (27th December 2005) +* fix bug in stlsoft::member_selector_iterator (which crops up when compiling Pantheios with Visual C++ 8); -Lots of minor code format / directory structure changes +## 1.9.1 beta 20 - 2nd September 2006 -Additions: -========== +* comstl::bstr (comstl/string/bstr.hpp) - facade for BSTR; +* comstl::variant (comstl/util/variant.hpp) - facade for VARIANT; +* comstl::bstr_compare(); +* new overloads of comstl::co_create_instance(), which takes a string, and attempts to resolve it with CLSIDFromProgID(), or CLSIDFromString(); +* winstl::reg_get_dword_value() - retrieves a DWORD value from a reg key; -+ stlsoft::exception_string class. (Replaces simple_string in exception classes) -+ stlsoft::string_concatenator_iterator +## 1.9.1 beta 19 - 9th August 2006 -Removals: -========= +* dotnetstl::check_cast custom cast function template (dotnetstl/conversion/check_cast.hpp); -- stlsoft::tref_reverse_iterator +## 1.9.1 beta 18 - 7th August 2006 -Diffs: -====== +* stlsoft/string/special_string_instance.hpp: string access shims for stlsoft::special_string_instance_1 class template are now defined; +* atlstl/automation/automation_collections.hpp: atlstl::generic_automation_collection (and atlstl::generic_collection_base) now both can accept a template param for the (dual) interface from which they inherit - they used to inherit from IDispatch; - root-dir-2: H:\3Pty\stlsoft\1.9.1-beta1 - root-dir-2: H:\3Pty\stlsoft\1.9.1-beta2 +## 1.9.1 beta 17 - 5th August 2006 +* winstl/controls/dialog_functions.hpp: winstl::dialog_button_id_check unary function class; +* The method form of atlstl::get_MemberValue() now is a bit more flexible, in that the returned type and the method return value may be different (but must still be compatible); +* rangelib::integral_range now accepts [from,to) where to < from, and swaps the increment (if +ve) accordingly; +* big changes to winstl/util/struct_initialisers, which now cater to a large number of the Win32 API structures. (More to be added later, once I've written a Ruby script to do the rest automatically.); +* winstl::load_text_file() now throws an exception if the file cannot be opened; -============================================================================ -Changes for 1.9.1 beta 1 (20th December 2005) +## 1.9.1 beta 16 - 25th July 2006 -STLSoft -======= +* stlsoft::byte_format() - powerful binary=>text formatting function; +* winstl::console_colour_scope - scoping class for Win32 console soon to be released; http://pantheios.org/); +* acestl::message_queue_sequence uses optimised scatter/slice IO technique described in "Extended STL, volume 1" (to be published at the end of the year, or early 2007), for faster processing of block copy operations; -- includes alpha version of new XMLSTL sub-project -- (nearly) completes the change of directory structure, e.g. from - winstl_shell_allocator.h => winstl/shell_allocator.hpp -- several new components +## 1.9.1 beta 15 - 18th July 2006 -Additions: -========== +* More directory changes, particularly for the Template Meta-programming library; +* New container class: platformstl::cwd_stack - which is used to store current working directory checkpoints (via push(), and restore them via pop() - future enhancements to internals are planned, but interface likely to remain unchanged; +* A whole host of algorithms that've been hiding in the research branch for over a year are now brought into the main trunk, under include/stlsoft/algorithms/..; -+ STLSOFT_CDECL_VALUE (1), STLSOFT_FASTCALL_VALUE(2) and - STLSOFT_STDCALL_VALUE (3) to stlsoft.h -+ More operating systems detected in unixstl.h -+ Operating system family detection in unixstl.h -+ stlsoft::active_end_iterator_exhaustion (stlsoft/exceptions/active_end_iterator_exhaustion.hpp) +## 1.9.1 beta 14 - 15th July 2006 -+ stlsoft::ostream_iterator (stlsoft/iterators/ostream_iterator.hpp) - an - enhancement to std::ostream_iterator, which supports prefix and suffix +* More directory refactoring, particularly for the string access shims, /shims/access/string.hpp; +* Function/method pointer adaptors now cope with void/non-void return, const/non-const methods, and cdecl/fastcall/stdcall calling conventions Note: Please make sure that you delete directory include/stlsoft/typefixer; -+ stlsoft::transform_iterator.hpp (stlsoft/iterators/transform_iterator.hpp) -+ comstl/stream_functions.h +## 1.9.1 beta 13 - 12th July 2006 -+ mfcstl::CArray_cadaptor / mfcstl::CArray_iadaptor - class and instance - adaptors for the MFC CArray family of containers to STL interfaces. +* A massive amount of refactoring of the string access shims and their documentation; +* unixstl::module / winstl::module get_handle() method removed, replaced with get_module_handle(); +* unixstl::process_mutex now throws exceptions (when compiled with exception-handling on) if any of the PThreads methods fail; -+ platformstl::environment_map (platformstl/environment_map.hpp) -+ winstl::dl_call() - Extremely powerful Dynamic Library Function invocation +## 1.9.1 beta 12 - 8th July 2006 -+ winstl/console_functions.h +* stlsoft::special_string_instance, which supports the "Special String Instance" pattern (see online docs for expl); +* unixstl::current_directory, winstl::current_directory, winstl::absolute_path, winstl::module_directory, winstl::module_filename, winstl::system_directory, winstl::windows_directory, are no longer separate classes, but rather specialisations (with different policies, as appropriate) of stlsoft::special_string_instance; +* stlsoft::is_same_type now works correctly in all circumstances with Borland, thanks to some work by Pablo Aguilar; +* unixstl::system_traits (unixstl/system/system_traits.hpp), containing non file-system related elements previously in unixstl::filesystem_traits; +* winstl::system_traits (winstl/system/system_traits.hpp), containing non file-system related elements previously in winstl::filesystem_traits; +* unixstl::filesystem_traits (unixstl/filesystem/filesystem_traits.hpp) now derives from unixstl::system_traits; +* winstl::filesystem_traits (winstl/filesystem/filesystem_traits.hpp) now derives from winstl::system_traits; +* lots and lots more directory re-arrangements, and addition of "better" documentation (to be seen currently at http://stlsoft.org/doc-1.9); -+ unixstl::dl_call() - Extremely powerful Dynamic Library Function invocation +## 1.9.1 beta 11 - 25th June 2006 -Changes: -======== +* no changes; -ATLSTL 1.4.3 => 1.4.4 -COMSTL 1.5.4 => 1.6.1 -.netSTL 1.2.2 => 1.2.3 -InetSTL 1.1.3 => 1.1.4 -MFCSTL 1.4.2 => 1.4.3 -PlatformSTL 1.3.1 => 1.4.1 -UNIXSTL 1.5.1 => 1.6.1 -WinSTL 1.7.1 => 1.8.1 +## 1.9.1 beta 10 - 18th June 2006 -+ dotnetstl/string_access.hpp and dotnetstl/string_accessor.hpp have been - updated to support VC++ 8 hat syntax +* stlsoft/string/copy_functions.hpp; +* atlstl::SupportErrorInfoImpl5 class template; +* platformstl/path_functions.hpp; +* unixstl/path_functions.hpp; +* winstl/path_functions.hpp; +* platformstl/sleep_functions.h; +* unixstl/sleep_functions.h; +* winstl/sleep_functions.h; +* unixstl::basic_file_path_buffer::copy() method; +* winstl::basic_file_path_buffer::copy() method; +* unixstl::filesystem_traits methods: str_pbrk(), str_end(), is_root_designator(), and various feature adjustments; +* unixstl::basic_path methods: clear(), operator [], copy(); +* winstl::basic_path methods: clear(), operator [], copy(); +* winstl::basic_findfile_sequence: new flags skipHiddenFiles and skipHiddenDirs; +* atlstl/string_access.hpp - bug fix in shim using declarations; +* stlsoft/system/commandline_parser.hpp - minor bug fix; -+ stlsoft::ref_ptr now supports equality comparison -+ stlsoft::shared_ptr::use_count() -+ stlsoft::shared_ptr contract enforcements +## 1.9.1 beta 9 - 11th June 2006 -+ winstl::pid_sequence now supports reverse iteration -+ winstl::process_module_sequence now supports reverse iteration +* no changes; -~ -Fixes: -====== +## 1.9.1 beta 8 - 7th June 2006 -~ stlsoft::string_tokeniser::const_iterator declared as forward iterator +* no changes; -~ winstl/find_file_sequence.hpp - fix for bug when zero-length sub-path matched -~ +## 1.9.1 beta 7 - 1st June 2006 -Diffs: -====== +* no changes; - root-dir-1: H:\3Pty\stlsoft\1.8.3\include - root-dir-2: H:\3Pty\stlsoft\1.8.4-beta1 -=============================== end of file ================================ +## 1.9.1 beta 6 - 28th May 2006 +* atlstl::IDispatch2 and atlstl::IDispatch3 class templates (atlstl/multiple_dispatch.hpp); +* atlstl::get_ConstantValue() (atlstl/property_method_helpers.hpp); +* comstl::set_error_info() overloads; +* unixstl::dl_call() now can work with arbitrary types (by specialising unixstl::is_valid_dl_call_arg; +* winstl::dl_call() now can work with arbitrary types (by specialising winstl::is_valid_dl_call_arg; +* winstl::basic_path::pop_ext(); +* WinSTL Control Panel library:; +* winstl/control_panel/functions.h; +* winstl/control_panel/exceptions.hpp; +* winstl/control_panel/applet_module.hpp; +* winstl::applet_module; +* winstl::applet; +* WinSTL ToolHelp library (written by Pablo Aguilar):; +* winstl::heap_sequence (winstl/toolhelp/heap_sequence.hpp); +* winstl::module_sequence (winstl/toolhelp/module_sequence.hpp); +* winstl::process_sequence (winstl/toolhelp/process_sequence.hpp); +* winstl::thread_sequence (winstl/toolhelp/thread_sequence.hpp); +* winstl::module::get(); +* winstl::basic_reg_key_sequence::get(); +* winstl::basic_reg_value_sequence::get(); +* more shims for stlsoft::basic_simple_string; +* more shims for stlsoft/time_string_access.hpp; +* stlsoft::string_concatenator_iterator now works with Borland; + + +## 1.9.1 beta 5 - 28th March 2006 + +* a heap of memory-related components now reside in /memory/ sub-directory, e.g. comstl/task_allocator.hpp => comstl/memory/task_allocator.hpp; +* same goes for many exceptions, e.g. stlsoft/contract_violation.hpp => stlsoft/exceptions/contract_violation.hpp; +* same goes for some containers, e.g. stlsoft/frequency_map.hpp => stlsoft/containers/frequency_map.hpp; +* same goes for WinSTL Registry library, which now resides in winstl/registry, e.g. winstl/registry/reg_key_sequence.hpp; +* stlsoft::ref2ptr generator function for function object classes that translate a reference into a pointer; +* a lot more function object classes and utilities will be incorporated when writing of the second volume of Extended STL commences in earnest; +* stlsoft::contiguous_diluter_iterator (stlsoft/iterators/contiguous_diluter_iterator.hpp) - "de-refines" iterators; +* stlsoft::null_output_iterator (stlsoft/iterators/null_output_iterator.hpp) - exactly what it says on the tin. ;-); +* stlsoft::unsorted_map (stlsoft/containers/unsorted_map.hpp) - a map that preserves the order of insertion; +* atlstl/automation_collections.hpp - COM collection helper classes. Still a bit of a work in progress; +* atlstl/enumerators.hpp - one of the useful Synesis enumerator templates moved over. There'll be more to come on this one; +* atlstl/property_method_helpers.hpp - more helpers, for getting prop value from result of a method call on self, or member; +* atlstl/support_error_info.hpp - new SupportErrorInfoImpl4 class template; +* comstl/acyclic_connector.hpp - comstl::acyclic_connector class template for allowing communication between two COM objects while avoiding a ref-count cycle; +* comstl/interface_function.h - useful functions brought over from Synesis COM libs; +* winstl::netapi_allocator (winstl/memory/netapi_allocator.hpp) - an allocator that wraps the Windows Network Buffer API; +* stlsoft/ref_ptr.hpp - an important fix that facilitates more safe heterogeneous assignment; +* winstl::event - no throws if event cannot be created (unless not compiling with exception-handling on); +* WinSTL Registry library has had a major reworking; + + +## 1.9.1 beta 4 - 31st January 2006 + +* stlsoft::charset_tokeniser (stlsoft/charset_tokeniser.hpp) - a "refinement" of stlsoft::string_tokeniser, making it easy to tokenise using charsets (a la strtok()) without the mess of using custom comparators with string_tokeniser (which can be something of a drag); +* comstl::cloneable_cloning_policy (comstl/enumeration_policies.hpp) - a policy that enables comstl::enumerator_sequence to be used with enumerators that may, or may not, be cloneable; +* winstl::listbox_const_iterator (winstl/listbox_const_iterator.hpp) - an iterator class that is used in the refactored versions of winstl::listbox_sequence and winstl::combobox_sequence; +* winstl::shell_delete() function suite; +* stlsoft/tokeniser_functions.hpp => stlsoft/tokenising/tokeniser_functions.hpp; +* stlsoft::string_tokeniser (stlsoft/string_tokeniser.hpp); +* now uses c_str_data() and c_str_len() shims, rather than c_str_ptr(); +* new skip_blank_tokens, that supercedes string_tokeniser_ignore_blanks; +* string_tokeniser_ignore_blanks deprecated; +* lots of general tidying up; +* comstl::enumerator_sequence now properly handles enumerators that may or may not be cloneable, by deferring a Clone() until the second time the sequence needs to be enumerated; +* inetstl::basic_findfile_sequence - moved exception policy to third template parameter, rather than second; +* winstl/listbox_sequence.hpp => winstl/controls/listbox_sequence.hpp; +* winstl/combobox_sequence.hpp => winstl/controls/combobox_sequence.hpp; +* winstl/shell_browse.hpp => winstl/shell/browse_for_folder.hpp. winstl::shell_browse() => winstl::browse_for_folder(); +* comstl::degenerate_cloning_policy; + + +## 1.9.1 beta 3 - 20th January 2006 + +* stlsoft/collections.hpp: contains new collection concept tags; +* stlsoft::external_iterator_invalidation (stlsoft/exceptions/external_iterator_invalidation.hpp): new exception class for representing iterator interruption by external agents; +* stlsoft::iteration_interruption (stlsoft/exceptions/iteration_interruption.hpp): a new exception class that acts as the base for iterator interruption; +* stlsoft::adapted_iterator_traits (stlsoft/adapted_iterator_traits.hpp): an omniscient iterator adaptor class that can detect iterator category, mutability, and element reference category (a new concept that is introduced in "Extended STL"); +* stlsoft::filter_iterator (stlsoft/filter_iterator.hpp): an iterator adaptor class that can be used to filter out elements based on a predicate; +* stlsoft/transform_filter_iterator.hpp and stlsoft/filter_transform_iterator.hpp: contains creator functions for mixing filter_iterator and transform_iterator iterator adaptors; +* several new components for detecting standard library features, and assisting stlsoft\util\std\dinkumware_iterator_traits.hpp stlsoft\util\std\iterator_category_limiters.hpp stlsoft\util\std\stdio_overload_detectors.hpp; +* inetstl::basic_ftpdir_sequence (inetstl/ftpdir_sequence.hpp): a new collection class that provides a vector-like interface over the contents of an FTP server directory; implemented in terms of inetstl::basic_findfile_sequence; +* mfcstl::CString_cadaptor and mfcstl::CString_iadaptor (mfcstl/cstring_adaptors.hpp): class and instance adaptors for CString, dragging it kicking and screaming into conformance with std::basic_string; +* rangelib::range_exception and rangelib::empty_range_exception (rangelib/exceptions.hpp): new exception classes used by RangeLib components; +* rangelib::filter_sequence (rangelib/filtered_sequence.hpp): a new creator function that returns an instance of range_lib::filtered_range specialised with a rangelib::sequence_range applied to the given STL sequence; +* rangelib::iterator_range (rangelib/iterator_range.hpp): a new class that adapts a pair of iterators to the Range concept; +* winstl::child_window_sequence (winstl/child_window_sequence.hpp): a new class that presents an STL collection over the set of child windows of a given window; +* stlsoft::auto_buffer has the 2nd and 3rd template parameters reversed. The internal array size parameter is now 2nd, and the allocator parameter is now 3rd. All STLSoft components are updated accordingly. Backwards compatibility is provided in the form of stlsoft::auto_buffer_old; +* stlsoft::proxy_ptr is renamed to stlsoft::ptr_proxy. The old form is available for backwards compatibility; +* winstl::window_peer_sequence is now implemented in terms of new zorder_sequence_base, as discussed in the chapter "Travelling Back and Forth on the Z-Plane" from "Extended STL"; +* mfcstl::cstring_veneer (mfcstl_cstring_veneer.h) is now deprecated, in favour of the new mfcstl::CString_cadaptor; +* stlsoft/filter_iterator.hpp => stlsoft/iterators/filter_iterator.hpp; +* stlsoft/member_traits.hpp => stlsoft/meta/member_traits.hpp; +* stlsoft/type_traits.hpp => stlsoft/meta/base_type_traits.hpp; +* stlsoft_array_proxy.h => stlsoft/array_proxy.hpp; +* stlsoft_container_base.h => stlsoft/obsolete/container_base.hpp; +* stlsoft_proxy_ptr.h => stlsoft/ptr_proxy.hpp; + + +## 1.9.1 beta 2 - 27th December 2005 + +* stlsoft::exception_string class. (Replaces simple_string in exception classes); +* stlsoft::string_concatenator_iterator; +* stlsoft::tref_reverse_iterator; + + +## 1.9.1 beta 1 - 20th December 2005 + +* includes alpha version of new XMLSTL sub-project; +* (nearly) completes the change of directory structure, e.g. from winstl_shell_allocator.h => winstl/shell_allocator.hpp; +* several new components; +* STLSOFT_CDECL_VALUE (1), STLSOFT_FASTCALL_VALUE(2) and STLSOFT_STDCALL_VALUE (3) to stlsoft.h; +* More operating systems detected in unixstl.h; +* Operating system family detection in unixstl.h; +* stlsoft::active_end_iterator_exhaustion (stlsoft/exceptions/active_end_iterator_exhaustion.hpp); +* stlsoft::ostream_iterator (stlsoft/iterators/ostream_iterator.hpp) - an enhancement to std::ostream_iterator, which supports prefix and suffix; +* stlsoft::transform_iterator.hpp (stlsoft/iterators/transform_iterator.hpp); +* comstl/stream_functions.h; +* mfcstl::CArray_cadaptor / mfcstl::CArray_iadaptor - class and instance adaptors for the MFC CArray family of containers to STL interfaces; +* platformstl::environment_map (platformstl/environment_map.hpp); +* winstl::dl_call() - Extremely powerful Dynamic Library Function invocation; +* winstl/console_functions.h; +* unixstl::dl_call() - Extremely powerful Dynamic Library Function invocation; +* dotnetstl/string_access.hpp and dotnetstl/string_accessor.hpp have been updated to support VC++ 8 hat syntax; +* stlsoft::ref_ptr now supports equality comparison; +* stlsoft::shared_ptr::use_count(); +* stlsoft::shared_ptr contract enforcements; +* winstl::pid_sequence now supports reverse iteration; +* winstl::process_module_sequence now supports reverse iteration; +* stlsoft::string_tokeniser::const_iterator declared as forward iterator; +* winstl/find_file_sequence.hpp - fix for bug when zero-length sub-path matched; + + + From 0ec8fdc900dfdded637ff84b9c84b8eaeb0b6c26 Mon Sep 17 00:00:00 2001 From: Matt Wilson Date: Fri, 31 Jul 2026 07:25:31 +1000 Subject: [PATCH 13/24] chore: removed **HISTORY.md** --- CHANGES.md | 22 +- HISTORY.md | 1847 ---------------------------------------------------- 2 files changed, 12 insertions(+), 1857 deletions(-) delete mode 100644 HISTORY.md diff --git a/CHANGES.md b/CHANGES.md index 39281223..13e06dc5 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -104,7 +104,7 @@ * Wholesale trivial/minor tidying; -## 1.11.1-beta2 - 21st February 2025 +## 1.11.1-beta2 - 23rd February 2025 * `unixstl::readdir_sequence` now can search for sockets, in addition to files and directories; * added **inetstl/util/uds_helpers.h** that provides Unix Domain Sockets helper functions; @@ -426,8 +426,10 @@ ## 1.10.3 - 12th January 2024 +* warnings fix (Issue 14); * include/unixstl/filesystem/path_functions/classify_functions_X_.h - GCC / Clang warning; * include/winstl/filesystem/path_functions/classify_functions_X_.h - GCC / Clang warning; +* fixed sub-project versions (Issue 15); * include/comstl/comstl.h - ~ fixed sub-project version; * include/inetstl/inetstl.h - ~ fixed sub-project version; * include/unixstl/unixstl.h - ~ fixed sub-project version; @@ -454,29 +456,29 @@ * porting back significant and necessary fixes from STLSoft-1.10; -## 1.10.1 - December 13th 2023 +## 1.10.1 - 13th December 2023 * CMake support; -## 1.10.1 beta 33 - April 26th 2021 +## 1.10.1 beta 33 - 26th April 2021 * Clang compatibility; -## 1.10.1 beta 32 - April 26th 2021 +## 1.10.1 beta 32 - 26th April 2021 * GCC/Clang compatibility; -## 1.10.1 beta 31 - April 2nd 2021 +## 1.10.1 beta 31 - 2nd April 2021 * Clang compatibility; * provision for customising inline (in C compilation); * warnings; -## 1.10.1 beta 30 - March 29th 2021 +## 1.10.1 beta 30 - 29th March 2021 * Clang compatibility; * warnings; @@ -673,7 +675,7 @@ * try_parse_to_bool() semantics firmed up; -## 1.10.1 beta 9 - 11th June 2018 +## 1.10.1 beta 9 - 12th June 2018 * Borland compatibility; @@ -2137,7 +2139,7 @@ * removal of unnecessary string access shim; -## 1.9.68 - 18th January 2009 +## 1.9.68 - 19th January 2009 * fix defect, and updated docs, for stlsoft::must_init utility class template; * include/stlsoft/util/must_init.hpp:; @@ -2494,7 +2496,7 @@ * winstl/clipboard/clipboard_scope.hpp - tightening up of exception handling code; -## 1.9.42 - 13th May 2008 +## 1.9.42 - 17th May 2008 * more Win64-compatibility modifications; * more Safe String library modifications; @@ -2629,7 +2631,7 @@ * fixes to stlsoft::must_init for built-in types to support assignment; -## 1.9.30 - 3rd March 2008 +## 1.9.30 - 3rd April 2008 * tidying of distribution; diff --git a/HISTORY.md b/HISTORY.md deleted file mode 100644 index 4eb1e724..00000000 --- a/HISTORY.md +++ /dev/null @@ -1,1847 +0,0 @@ -# STLSoft - History - - ----- - - -29th July 2026 - 1.11.1-rc4 released -------------------------------------- - - * Added GitHub Actions CI on macOS, Linux, and Windows with Clang, GCC, MinGW, and Visual C++; - * Added recognition for Visual C++ 18.x in `stlsoft.h`; - * Fixed `winstl::codepage_sequence::data()` missing return statement; - * Fixed signed/unsigned comparison warning in `winstl_C_printf_debug_string()`; - * Aligned Clang 64-bit sized types with GCC to use `long long` instead of `__INT64_TYPE__` to avoid overload collision on Linux LP64; - * Added overflow checks in allocator `allocate()` to prevent wrapping and fix GCC `-Walloc-size-larger-than=` warnings; - * Fixed potential unsigned underflow in `unixstl::pid_sequence` when empty; - * Added MinGW compatibility guards in `winstl/util/struct_comparers.hpp`; - * Aligned test and example runner scripts across shell and Windows command counterparts; - * Added `--unit-only` and `--component-only` flags to unit test runners; - * Added `run_all_examples` scripts with `--skip-interactive` support; - - -23rd August 2025 - 1.11.1-rc3 released ---------------------------------------- - - * Added `platformstl::pid_sequence` / `unixstl::pid_sequence`; - * Added `winstl_C_printf_debug_string()` in **winstl/diagnostics/printf_debug_line.h**; - * Added `winstl::codepage_sequence`; - * Added Window write-to-console functions; - * More examples; - * More tests; - * Corrected some minor defects around language version detection; - * Compatibility/corrections in string-to-integer functions; - * Canonicalise example programs source names; - * Backwards compatibility (partial) for Visual C++ back to v10; - * Project boilerplate; - - -31st May 2025 - 1.11.1-rc2 released ------------------------------------ - - * Added `stlsoft::member_selector_view<>` (alpha version), for span-compatibility in **recls**; - * Change semantics of `stlsoft::auto_buffer<>#resize()` the size of external allocation is maintained such that shrinking and then regrowing may be done within the existing allocation; - * InetSTL / UNIXSTL / WinSTL architecture discrimination canonicalised, expanded, and corrected; - * Substantial refactoring and testing of `winstl::filesystem_traits<>`; - * Significant improvements to compatibility with different C and C++ language versions (C90, C99, C11, C17, C23, C++98, C++11, C++14, C++17, C++20, C++23) - detailed in TODO.md; - * Added compatibility with latest Visual C++ (`_MSC_VER` == 1944); - * **test.component.inetstl.util.uds_helpers** now works correctly for both Linux and macOS; - * Brought over several test programs exercising C APIs; - * **run_all_scratch_tests.sh** now accepts '--verbosity' option; - - -6th May 2025 - 1.11.1-rc1 released ----------------------------------- - - * Various CMake improvements; - * MinGW compatibility; - * **UNIXem** compatibility; - * Windows compatibility; - - -5th May 2025 - 1.11.1-beta9 released ------------------------------------- - - * `stlsoft::basic_string_view` fixed defect in comparison; - * **example.platformstl.filesystem.readdir_sequence** minor fix; - - -3rd May 2025 - 1.11.1-beta8 released ------------------------------------- - - * Added skipping of hidden directories and files to `unixstl::glob_sequence` and `unixstl::readdir_sequence`; - * Various example improvements; - * Updated **TODO.md** with structure and items; - - -30th April 2025 - 1.11.1-beta7 released ---------------------------------------- - - * Support for searching of devices on the file system, primarily concerning `unixstl::glob_sequence` and `unixstl::readdir_sequence`; - - -28th April 2025 - 1.11.1-beta6 released ---------------------------------------- - - * Visual C++ compatibility (including _MSC_VER 1943); - * CMake / UNIXem compatibility; - * Refactored / enhanced retrieval of home-directory, including, for Windows, trying first for `"USERPROFILE"` and then falls back to `"HOMEDRIVE"` and `"HOMEPATH"`; - * **prepare_cmake.sh** / **CMakeLists.txt** : + added '--no-shwild' / `CMAKE_NO_SHWILD`; - * Added **test.component.winstl.system.directory_functions**; - - -26th April 2025 - 1.11.1-beta5 released ---------------------------------------- - - * Added `platformstl::environment_variable_scope`; - * Added more unit-tests; - * MinGW compatibility; - * `stlsoft::basic_static_string<>` minor fix; - * Miscellaneous fixes; - - -22nd April 2025 - 1.11.1-beta4 released ---------------------------------------- - - * `unixstl::glob_sequence` now can search for sockets, in addition to files and directories; - * `stlsoft::cmdargs` added missing member types; - - -16th April 2025 - 1.11.1-beta3 released ------------------------------------------ - - * Added specialisations of `integral_traits<>` for integer specialisations of `true_typedef<>`; - * Applied `printf()` format attributes throughout; - * Defect fix(es) to `unixstl::path_squeeze<>()` / `winstl::path_squeeze<>()`; - * MinGW compatibility; - * Wholesale trivial/minor tidying; - - -23rd February 2025 - 1.11.1-beta2 released ------------------------------------------ - - * `unixstl::readdir_sequence` now can search for sockets, in addition to files and directories; - * **InetSTL** newly released functionality; - * GCC (11) compatibility around use of `__builtin_is_constant_evaluated` (when not C++20); - * **InetSTL** improved compatibility with macOS / Linux; - - -31st December 2024 - 1.11.1-beta1 released ------------------------------------------- - - * Command-line handling components minor improvements and unit-testing; - * Visual C++ compatibility (including _MSC_VER 1942); - * MinGW compatibility; - * Miscellaneous backwards-compatibility fixes; - * Miscellaneous (near) final fixes and tidying; - - -28th December 2024 - 1.11.1-alpha28 released --------------------------------------------- - - * substantial reworking of abstraction of memory functions, resulting in performance improvements across numerous components, `stlsoft::auto_buffer<>` in particular; - * MinGW compatibility; - * miscellaneous generalisation of code and dependencies; - * added more test programs; - - -19th December 2024 - 1.11.1-alpha27 released --------------------------------------------- - - * added `stlsoft::doomgram` and `stlsoft::gram_scope` (from old research repo(s)); - * added **include/stlsoft/diagnostics/gram_utils.hpp**, including `stlsoft::gram_to_strip()`; - * added `stlsoft::count_hexadecimal_digits()`, and refactored `stlsoft::count_digits()` into `stlsoft::count_decimal_digits()`; - * added **unixstl/time/comparison_functions.h**, including `unixstl_C_compare_timevals()` / `unixstl::compare()`; - * added `winstl_C_difference_in_microseconds_QPC()` and `winstl_C_absolute_difference_in_microseconds_QPC()`; - * `winstl::micro_sleep()` (and `winstl_C_micro_sleep()`) now implemented in terms of active methods for accurate behaviour in small durations (0 < delay_us <= 250000); - * added `#pause()` and `#unpause()` to stopwatch types (incl. `stlsoft::std_chrono_hrc_stopwatch`, `unixstl::stopwatch()`, `winstl::stopwatch()`); - * added `#get_kernel_nanoseconds()`, `#get_user_nanoseconds()`, `#get_nanoseconds()` to `unixstl::stopwatch()`; - * added `#cbegin()` / `#cend()` and `#crbegin()` / `#crend()` methods to `stlsoft::auto_buffer<>`; - * separated Windows-specific `platformstl::readdir_sequence` into `winstl::readdir_sequence`; - * added **test.component.platformstl.diagnostics.stopwatch**; - * added **test.performance.stlsoft.count_digits**; - * added **test.performance.stlsoft.doomgram**; - * added **test.performance.stlsoft.gram_utils**; - * added **test.scratch.winstl.micro_sleep**; - * added **test.unit.stlsoft.diagnostics.doomgram**; - * added **test.unit.stlsoft.diagnostics.gram_scope**; - * added **test.unit.stlsoft.util.count_decimal_digits**; - * added **test.unit.stlsoft.util.count_hexadecimal_digits**; - * added **test.unit.winstl.conversion.number.grouping_functions**; - * **run_all_unit_tests.sh** now respects environment variables `XTESTS_VERBOSITY` and `TEST_VERBOSITY`; - * miscellaneous minor/trivial improvements; - - -23rd November 2024 - 1.11.1-alpha26 released --------------------------------------------- - - * added `stlsoft::integral_traits<>` (**stlsoft/traits/integral_traits.hpp**); - * added `stlsoft::unicode_point_map`; - * added **test.unit.stlsoft.limits.integral_limits**; - * added **test.unit.stlsoft.traits.integral_traits**; - * minor tidying to CMake facilities; - - -18th November 2024 - 1.11.1-alpha25 released --------------------------------------------- - - * added MSVC MT support; - * added and applied macro `STLSOFT_IS_CONSTANT_EVALUATED()`, in particular to `stlsoft::auto_buffer<>`; - * include ordering (around api/internal / api/external helper headers); - * copy-paste typos; - * made consistent include ordering (around api/internal / api/external helper headers); - - -4th November 2024 - 1.11.1-alpha24 released -------------------------------------------- - - * `frequency_map` : ~ now default-specialised on `frequency_map_traits_unordered` when compiling with C++11+; - * **test.performance.stlsoft.frequency_map** : ~ improved reporting of results ; ~ now uses `stlsoft::std_chrono_hrc_stopwatch`; - - -28th October 2024 - 1.11.1-alpha23 released -------------------------------------------- - - * `platformstl::basic_file_lines<>` now supports move semantics; - * Fix to definition of `STLSOFT_MESSAGE_ASSERT()` (for Clang); - * Minor improvements of ./CMakeLists.txt; - * **dev/bin/batch_compile_check** now supports '--counts' flag; - - - -28th October 2024 - 1.10.12 released ------------------------------------- - - * project boilerplate updated (in line with STLSoft-1.11) - - -26th October 2024 - 1.11.1-alpha22 released -------------------------------------------- - - * Single fix to default definition of `STLSOFT_FALLTHROUGH()`; - - -25th October 2024 - 1.11.1-alpha21 released -------------------------------------------- - - * Added and applied macro `STLSOFT_FALLTHROUGH()`; - * Added unit-tests for allocator types; - - -23rd October 2024 - 1.11.1-alpha20 released -------------------------------------------- - - * Version change only; - - -23rd October 2024 - 1.11.1-alpha19 released -------------------------------------------- - - * Fixes to (new functionality in) `stlsoft::auto_buffer<>`; - * Fix for (compile-time) defect in `winstl::basic_path<>`; - * Fix for defect in `winstl::basic_reg_key<>`; - * MinGW compatibility in **winstl/internal/windows_version_.h**; - * MinGW compatibility in **winstl/system/console_functions.h**; - * Necessary warning suppression in `stlsoft::basis_simple_string<>`; - * Trivial warning fix in `winstl::readonly_memory_mapped_file<>`; - * Added **test.unit.stlsoft.traits.integral_printf_format_traits**; - * Brought over **test.unit.winstl.registry.reg_value**; - * Added **test.unit.winstl.registry.reg_value_sequence**; - * GCC warnings; - * CMake build scripts minor fixes; - - -15th October 2024 - 1.11.1-alpha18 released -------------------------------------------- - - * Legacy (pre VS-2022) Visual C++ compatibility; - * Win32 compatibity; - - -13th October 2024 - 1.11.1-alpha17 released -------------------------------------------- - - * `stlsoft::frequency_map<>` enhancements; - * `unixstl::glob_sequence` enhancements; - * Fixes and enhancement to `dl_call<>()` (both UNIXSTL and WinSTL); - * BREAKING CHANGE: Prospective compatibility with C++20 reserved word `module` (both UNIXSTL and WinSTL) by renaming existing `module` class to `dl_module`; - * GCC 11 compatibility; - * GCC 14 compatibility; - * MinGW-64 compatibility; - * VC++ 17 compatibility; - * General improvements and simplification for compatibility with C++11 - C++20; - * CMake build files improvements; - * Misc. minor fixes and enhancements; - * Misc. code canonicalisation; - * Bringing into repo existing (older) test and example programs; - - -1st October 2024 - 1.11.1-alpha16 released ------------------------------------------- - - * `auto_buffer` improvements; - * `constexpr` applications; - * Time function enhancements; - * Brought over previously unreleased example and test programs; - * Significant simplification of CMake support; - * Boilerplate file improvements; - * Miscellaneous improvements; - - -2nd September 2024 - 1.11.1-alpha15 released --------------------------------------------- - - * Windows ARM64 architecture support; - * Windows 10/11 operating system detection support; - * significant simplification of CMake support; - * minor additions/enhancements to scratch tests; - * miscellaneous fixes; - - -21st August 2024 - 1.11.1-alpha14 released ------------------------------------------- - -* VC++ 17 latest (`_MSC_VER`==1941) compatibility - - -4th August 2024 - 1.11.1-alpha13 released ------------------------------------------ - -* added `platformstl::isatty()` (and `platformstl::platformstl_C_isatty_fd()` and `platformstl::platformstl_C_isatty_stm()`), `unixstl::isatty()` (and `unixstl::unixstl_C_isatty_fd()` and `unixstl::unixstl_C_isatty_stm()`), `winstl::isatty()` (and `winstlstl::winstlstl_C_isatty_fd()` and `winstlstl::winstlstl_C_isatty_stm()`) - - -3rd August 2024 - 1.11.1-alpha12 released ------------------------------------------ - -* `unixstl::readdir_sequence` no longer uses `stlsoft::basic_static_string<>`; -* simplifying CMake compatibility; -* VC++17 compatibility; -* minor fixes; -* now depends on xTests 0.24+ - - -14th July 2024 - 1.11.1-alpha10 released -16th July 2024 - 1.11.1-alpha11 released ----------------------------------------- - -* CMake compatibility fixes - - -14th July 2024 - 1.11.1-alpha10 released ----------------------------------------- - -* Fixing upper limit to **xTests** version as <0.23, in anticipation of imminent changes to **xTests**; -* Compatibility with latest VC++ 17 (with Visual Studio 2022 version 17.10.1, _MSC_FULL_VER=194033811); - - -9th July 2024 - 1.11.1-alpha9 released --------------------------------------- - -* Missing fix to `stlsoft::basic_simple_string`'s `#assign()`; - - -9th July 2024 - 1.11.1-alpha8 released --------------------------------------- - - * Added `platformstl::get_home_directory()` and related functions; - * GCC compatibility improvements; - * CMake improvements; - * Boilerplate file improvements; - * More examples and test programs; - - -5th May 2024 - 1.11.1-alpha7 released -------------------------------------- - - * Visual C++ (17) compatibility; - * Windows compatibility for CMake; - * Miscellaneous changes; - - -29th March 2024 - 1.11.1-alpha6 released ----------------------------------------- - - * added unit-test projects **test.unit.stlsoft.conversion.number.group_functions** and **test.unit.stlsoft.conversion.integer_to_lc_string**; - * partial merge of forthcoming branch 'ss/simple_string-null_object'; - - -29th March 2024 - 1.11.1-alpha5 released ----------------------------------------- - - * various GCC-11 compatibility fixes; - - -18th March 2024 - 1.11.1-alpha4 released ----------------------------------------- - - * `stlsoft::basic_simple_string<>` now has `#equal()`; - * added 'stlsoft::std_chrono_hrc_stopwatch' stopwatch type; - * various performance improvements; - - -16th March 2024 - 1.11.1-alpha3 released ----------------------------------------- - - * `stlsoft::basic_simple_string<>` now has `#contains()`; - * `stlsoft::basic_static_string<>` now has `#contains()`; - * wholesale automated layout canonicalisation; - - -1st March 2024 - 1.11.1-alpha2 released ---------------------------------------- - - * True-Typedef supports stream-insertion (`operator <<()`): - * added `stlsoft::write_string<>()`; - * miscellaneous fixes (including C++14/17/20 compatibility); - - -20th February 2024 - 1.11.1-alpha1 released -------------------------------------------- - - * added `stlsoft::integer_to_base32_string<>()` integer to Base-32-string conversion - * added `stlsoft::integer_to_base36_string<>()` integer to Base-36-string conversion - * `stlsoft::basic_simple_string<>` now has `#starts_with()` and `#ends_with()` - * `stlsoft::basic_static_string<>` now has `#starts_with()` and `#ends_with()` - * `stlsoft::basic_static_string<>` now has `#substr()` - * `stlsoft::basic_static_string<>` now has `#front()` and `#back()` - * `stlsoft::basic_static_string<>` consistently and correctly throws exceptions on any operations that would cause exceeding of internal storage - * improvement to string insertion helper `string_insert()` to work with stream types that do and do not provide `sentry` - * added **test.unit.unixstl.filesystem.path** unit-test project - - -16th February 2024 - 1.10.11 released -------------------------------------- - - * project boilerplate - * corrected inappropriate use of `ss_typename_param_k` - - -16th February 2024 - 1.10.10 released -------------------------------------- - - * further tranche of stream insertion operator implementations - * fixes and enhancements to `stlsoft::util::string_insert` - * added `stlsoft::meta::hash_sentry` meta-type; - * added test.unit.unixstl.filesystem.path test project; - - -12th February 2024 - 1.10.9 released ------------------------------------- - - * stlsoft::frequency_map uses traits to select between ordered and unordered representation - * added test.unit.stlsoft.containers.frequency_map project - * C++98 compatibility - - -6th February 2024 - 1.10.8 released ------------------------------------ - - * added dev/bin/batch_compile_check - * language compatibility fix - * iterator definition fixes (related to C++17 deprecation of std::iterator) - - -30th January 2024 - 1.10.7 released ------------------------------------ - - * enhanced stream insertion operators, when used with types descended from `std::basic_ios<>`, to observe width and alignment for `stlsoft::basic_shim_string<>`, `stlsoft::basic_simple_string<>`, `stlsoft::basic_static_string`, `stlsoft::basic_string_view`, `stlsoft::stlsoft_C_string_slice_m_t`/`stlsoft::stlsoft_C_string_slice_w_t` - * refactored (almost) all direct calls to disparate parts of the `printf()`-family to use the STLSoft abstractions - * wholesale refinement of whitespace around conditional control statements; - * large number of minor and trivial tidyings - - -28th January 2024 - 1.10.6 released ------------------------------------ - - * simplification and improvement of CMake handling - * dependency on xTests is now optional (in prepare_cmake.sh) - * now depends on xTests 0.21.2 - * CMake C language now C11 - * fixed defect in `stlsoft::pod_vector` - - -18th January 2024 - 1.10.5 released ------------------------------------ - - * C++20 compatibility - * C17 compatibility - * introduced several unit-tests (previously in private repo); - * stlsoft::pod_vector now default-initialses elements in size-constructor - - -16th January 2024 - 1.10.4 released ------------------------------------ - - * C++17 compatibility - * unixstl::semaphore now fully implemented on Mac OSX; - - -12th January 2024 - 1.10.3 released ------------------------------------ - - * warnings fix (Issue 14) - * fixed sub-project versions (Issue 15) - * minor project boilerplate fixes and tidying - - -3rd January 2024 - 1.10.2 released ----------------------------------- - - * defect fixes; - * Min-GW 64-bit compatibility - - -15th December 2023 - 1.9.136 released -------------------------------------------- - - * lots of changes to standardise the library boilerplate - * porting back significant and necessary fixes from STLSoft-1.10 - - -13th December 2023 - 1.10.1 released ------------------------------------- - - * CMake support - -26th April 2021 - 1.10.1 (beta 33) released -------------------------------------------- - - * Clang compatibility - -26th April 2021 - 1.10.1 (beta 32) released -------------------------------------------- - - * GCC/Clang compatibility - -2nd April 2021 - 1.10.1 (beta 31) released ------------------------------------------- - - * Clang compatibility - * provision for customising inline (in C compilation) - * warnings - -29th March 2021 - 1.10.1 (beta 30) released -------------------------------------------- - - * Clang compatibility - * warnings - -16th February 2021 - 1.10.1 (beta 29) released ---------------------------------------------- - - * a whole lot of Clang- and GCC-compatibility - -18th January 2021 - 1.10.1 (beta 28) released ---------------------------------------------- - - * added character-array overloads of fast_strftime() - * WinSTL hard link information functions now work for directories as well as files - * various defect fixes - -10th January 2021 - 1.10.1 (beta 27) released ---------------------------------------------- - - * added string access shims for std::chrono type(s) - * some GCC compatibility tweaks - -4th January 2021 - 1.10.1 (beta 26) released --------------------------------------------- - - * added (UNIXSTL and WinSTL) Path Classification API (from 1.12 work), which work with Windows UNC and long-path root designators and all slash conventions - * added (UNIXSTL and WinSTL) path parsing function - include/???stl/filesystem/path_parse_functions.h, presenting a consistent set of functions centralised from disparate parts of the libraries - * BREAKING CHANGES: (UNIXSTL and WinSTL) basic_path<> methods get_file() and get_ext() now return slices, and get_ext() changed semantics to include '.' - * (UNIXSTL and WinSTL) basic_path<> added move semantics and get_location() method and made swap() method public, as well as numerous defect fixes and consistency improvements implemented in terms of new Path Classification API - * (UNIXSTL and WinSTL) filesystem_traits<> added path classification and path parsing methods, as well as numerous defect fixes - * updated copyright info for all files, from Synesis Software to Synesis Information Systems - * stlsoft::basic_path_buffer<> added resize(), back(), front() methods - * added added stlsoft_C_(str|wcs)nicmp() - * raw (C) string slice types moved out of stlsoft:: namespace in C++ - * C++14 compatibility - * a whole lot of work to reduce dependencies - * many improvements to GCC compatibility - * all uses of memcpy() and memset() now in terms of abstractions (in stlsoft/api/internal/memfns.h) - * BREAKING CHANGES: ~ abstracted out string-handling from *stl::system_traits<> into stlsoft::c_string_traits<>, and removed several unused (and sketchy) functions - -14th December 2020 - 1.10.1 (beta 25) released ----------------------------------------------- - - * added two more files missing from beta 23 - D'oh! - -13th December 2020 - 1.10.1 (beta 24) released ----------------------------------------------- - - * added file unixstl/filesystem/path_buffer.hpp missing from beta 23 - -13th December 2020 - 1.10.1 (beta 23) released ----------------------------------------------- - - * basic_file_path_buffer<> is now deprecated in all projects, and all dependent components are modified to use other facilities - * added platformstl::environment_variable<> class template - * added (in)equality operators for stlsoft::error_desc - * added stlsoft::basic_path_buffer<> component, as an alternative to basic_file_path_buffer<> - * stlsoft::auto_buffer<> class template copy_from() method, and ctor and resize() method that take value for initialisation of (new) elements - * added stlsoft::strnpbrkn()/wcsnpbrkn() (and added stlsoft_C_(str|wcs)npbrkn()) - * added move constructor to unixstl::module and winstl::module - * large number of new methods and defect fixes in (platformstl|unixstl|winstl)::filesystem_traits - * large number of new methods and defect fixes in (platformstl|unixstl|winstl)::system_traits - -29th November 2020 - 1.10.1 (beta 22) released ----------------------------------------------- - - * added stlsoft::string_to_integer_range() - * added stlsoft::strnchr(), stlsoft::strnistrn(), stlsoft::strnstrn() C-style string search functions - * added move constructor to stlsoft::auto_buffer<> - * added move constructor for stlsoft::scoped_handle<> - * added move constructor for stlsoft::(basic_)simple_string<> - * winstl::output_debug_line() overloads expanded to 16-parameters, and changed to use variadic templates where supported - * stlsoft::split() functions enhanced to: return vector of arbitrary length; allow heterogeneous types for the split elements - * stlsoft::string_switch() split into two overloads to handle property and unambiguously flag enums, regular enums, and enum classes - * significant, BREAKING changes to stlsoft::try_parse_to() overloads to avoid ambiguity - * changed significantly the way in which stlsoft::cstring_maker works, and adjusted all dependent code - * various additions for compatibility with std::string_view (which is very similar to stlsoft::string_view) - * fixed case of a bunch of headers - -27th July 2020 - 1.10.1 (beta 21) released ------------------------------------------- - - * VC++ 15/16 compatibility - * fixed unixstl::readdir_sequence::empty() - -27th July 2020 - 1.9.135 released ---------------------------------- - - * VC++ 15/16 compatibility - * fixed unixstl::readdir_sequence::empty() - - -4th July 2020 - 1.10.1 (beta 20) released ------------------------------------------ - - * fixed detecton of shared_ptr and unique_ptr - -4th July 2020 - 1.10.1 (beta 19) released ------------------------------------------ - - * added stlsoft::t2w, stlsoft::w2t, stlsoft::t2a, stlsoft::a2t for upcoming Pantheios release - * added stream insertion operator (generic) for string slice types - * added compatibility with Visual C++ 15.x and 16.x - * added support for the ARM architecture (christopherplawrence) - -4th July 2020 - 1.9.134 released --------------------------------- - - * added compatibility with Visual C++ 15.x and 16.x - * added stlsoft::t2w, stlsoft::w2t, stlsoft::t2a, stlsoft::a2t for upcoming Pantheios release - - -13th June 2020 - 1.9.133 released ---------------------------------- - - * Add support for the ARM architecture when doing Android NDK GCC compilation - - -31st October 2019 - 1.10.1 (beta 18) released ---------------------------------------------- - - * added stlsoft/system/environment/functions.hpp to enhances stlsoft::environment_variable_exists() with string access shims to support arbitrary string type - * remove vestigial (and erroneous) winstl/string/spin_policies.hpp - * various documentation fixes - -24th October 2019 - 1.10.1 (beta 17) released ---------------------------------------------- - - * GCC 8 compatibility - * GCC 9 compatibility - * implemented WinSTL_C_FileInformation_get_SECURITY_DESCRIPTOR_w() - * improved documentation - -13th October 2019 - 1.10.1 (beta 16) released ---------------------------------------------- - - * added stlsoft_C_environment_variable_exists_a() / environment_variable_exists() (from STLSoft 1.10-alpha) - * added stlsoft::count_bits(int) overload - * added cbegin(), cend(), crbegin(), crend() to platformstl::environment_map - * significant additions and removals of WinSTL file creation functions - * added WinSTL security functions (from STLSoft 1.10-alpha) - * recognising Mac OSX architecture as UNIX - * canonicalising '\file' description sections - * suppresses deprecation warning from reporting use of deprecated functions inside other deprecated functions - -11th October 2019 - 1.9.132 released ------------------------------------- - - * GCC 4.8, 4.9 compatibility - * PlatformSTL now recognises Mac OSX as UNIX implicitly - * fixed up project files (README, NEWS, etc.) - - -13th September 2019 - 1.10.1 (beta 15) released ------------------------------------------------ - - * added stlsoft::fast_strftime() and stlsoft::fast_wcsftime() as drop-in replacements for std::strftime() and std::wcsftime() - * added get_ptr() shim overload for std::shared_ptr and std::unique_ptr - * added stlsoft::get_top() attribute shim - * stlsoft::basic_string_view<>::substr() - * added winstl_C_format_message_strerror_w() - * removed stlsoft::literal_cast<> - * various portability improvements to newer compilers - -4th August 2019 - 1.10.1 (beta 14) released -------------------------------------------- - - * added SECURITY_DESCRIPTOR helpers() - * stlsoft::w2m and stlsoft::m2w now more general - -16th April 2019 - 1.10.1 (beta 13) released -------------------------------------------- - - * fixed STLSOFT_ALWAYS_FALSE() / STLSOFT_ALWAYS_TRUE() - * platformstl::FILE_stream : ~ fixing character-encoding function selection defect - * canonicalising source file structure - -26th December 2018 - 1.10.1 (beta 12) released ----------------------------------------------- - - * added sas_to_string() (and related) functions - * added stlsoft::errno_exception (from 1.12 branch) - * added stlsoft::locale_scope - * STLSoft's struct tm String Access Shims now work for arbitrary locale - * UNIXSTL's timeval String Access Shims now work for arbitrary locale - -22nd December 2018 - 1.10.1 (beta 11) released ----------------------------------------------- - - * stlsoft::ref_ptr : + borrow(); + own() - * winstl::environment_variable : + data(); + equal(); + equal_ignore_case(); + exists(); + operators ==() and !=() - -20th December 2018 - 1.10.1 (beta 10) released ----------------------------------------------- - - * winstl::process_mutex() now takes an optional EVENT handle which will be signalled if the mutex experiences an abandoned acquire - * special_string_instance now provides generic (SAS) (in)equality operators automatically - * try_parse_to_bool() semantics firmed up - -12th June 2018 - 1.10.1 (beta 9) released ------------------------------------------ - - * Borland compatibility - -11th June 2018 - 1.10.1 (beta 8) released ------------------------------------------ - - * fixing break to UNIX-compatibility introduced in beta-6/7 - -9th June 2018 - 1.10.1 (beta 7) released ----------------------------------------- - - * auto_buffer<> now supports limited form of pointer arithmethic via operator -() - * added subscript operator for auto_array_destructor<> - * VC++ 14.1x compatibility - * refactoring of copy-proscriptions - -9th June 2018 - 1.10.1 (beta 6) released ----------------------------------------- - - * refactored in terms of external API - * removed empty/meaningless "compatibility" sections - * canonicalising proscribed construction methods - * simplifying, and prospective changes (for getting to 1.12) - -15th May 2017 - 1.10.1 (beta 5) released ----------------------------------------- - - * enhanced STLSOFT_SUPPRESS_UNUSED() to work with rvalues - -19th February 2017 - 1.10.1 (beta 3) released ---------------------------------------------- - - Further to 1.10.1 (beta 2): - - * a whole bunch of non-functional changes to make the codebase more - consistent and amenable to further automatic instrumentation by script - auto-validation script compatibility, and ensure all files have full - inclusion control - * fixing get_FILE_ptr() shim namespace issues - * winstl::token_information has additional compatibility up to W8/Svr12, - and now defaults to throwing instances of winstl::security_exception - -28th January 2017 - 1.10.1 (beta 2) released --------------------------------------------- - - Further to 1.10.1 (beta 1): - - * work on STLSoft integer_to_string functions to loosen non-array forms' - preconditions, reduce dependencies in rest of codebase to - integer_to_decimal_string()-only; - * filesystem_traits - refactored is_dots() and starts_with_dots() to - accomodate GCC 4.9 pedanticism - * exposing unixstl/winstl types spin_mutex_no_yield and spin_mutex_yield to - platformstl namespace - * a large number of changes to improve compatibility with UNIX, Clang, - GCC, and MinGW - * hiding/suppressing unused typedefs - -14th January 2017 - 1.10.1 (beta 1) released --------------------------------------------- - - After ten years (10!), STLSoft 1.10 is finally out of alpha. The first - release, 1.10.1 beta 1, comprises all the established components from - previous versions along with several new components that have been - available in the 1.10 alpha (delta) update and a large number of - components previously unreleased. - - * major reworking of exceptions hierarchy, including provision of project - and library identifiers, status-code, and message translation - * several new special-string-instance types, including home_directory, - host_name, temporary_directory, temporary_file_name - * new string access shims, for types including timeval, type_info - * new attribute shims, including: get_synch_handle, get_FILE_ptr - * new logical shims, including: is_empty, is_null - * new high-performance conversion functions (based around the extant - technology in stlsoft::integer_to_string()): integer_to_decimal_string(), - integer_to_hexadecimal_string(), integer_to_octal_string(), - integer_to_lc_string(), integer_to_zero_padded_decimal_string() - * new conversion parsing functions: string_to_bool(), string_to_integer() - * new scoped_method class template - * new scoped_lambda class template - * new bit-testing functions - * substantially improved atomic function support - * substantially improved spin_mutex class templates and policies - * new diagnostic stopwatch classes and logging functions - * new platformstl::file_stream_base class template and policies - * new string slice classes that are compatible (but do not depend on) other - Synesis projects (such as FastFormat and Pantheios) - * new time comparison functions and operators, conversion cast and - functions, elicitation functions, modification functions, and validation - functions - * ... and many many other improvements and additions ... - -============================================================================ - - - -============================================================================ - -2nd November 2016 - 1.9.131 released ------------------------------------- - - * added ss_typename_void_k - - -1st October 2016 - 1.9.130 released ------------------------------------ - - * minor tidyings - - -17th July 2016 - 1.9.129 released ---------------------------------- - - * minor tidyings - - -4th May 2016 - 1.9.126 released -------------------------------- - - * improvements to Windows Registry library - - -14th February 2016 - 1.9.125 released -------------------------------------- - - * various minor warnings / compiler compatibilities - - -15th November 2015 - 1.9.124 released -------------------------------------- - - * MSVC++ does not support __func__ - - -15th November 2015 - 1.9.123 released -------------------------------------- - - * added STLSOFT_NOEXCEPT - * changed no-throw declaration from stlsoft_throw_0() to STLSOFT_NOEXCEPT - * STLSOFT_CF_EXPLICIT_KEYWORD_SUPPORT => STLSOFT_CF_explicit_KEYWORD_SUPPORT - * STLSOFT_CF_MUTABLE_KEYWORD_SUPPORT => STLSOFT_CF_mutable_KEYWORD_SUPPORT - * STLSOFT_CF_BUILTIN_nullptr_SUPPORT => STLSOFT_CF_nullptr_KEYWORD_SUPPORT - * STLSOFT_CF_OVERRIDE_KEYWORD_SUPPORT => STLSOFT_CF_override_KEYWORD_SUPPORT - * STLSOFT_CF_constexpr_KEYWORD_SUPPORT - * STLSOFT_CF_final_KEYWORD_SUPPORT - * added token_information<>::get(), token_information<>::size() - * correct use of deallocate() - - -1st November 2015 - 1.9.122 released ------------------------------------- - - * added STLSOFT_PRETTY_FUNCTION_SYMBOL - * now prefers __func__ over __FUNCTION__ for STLSOFT_FUNCTION_SYMBOL - * added (recognition of) support for nullptr - * added (recognition of) support for static_assert - * added ss_override_k / STLSOFT_CF_OVERRIDE_KEYWORD_SUPPORT - * added STLSOFT_DEBUG - * Clang compatibility - * Windows-emulation compatibility - * replaced dodgy use of memset() - * forward compatibility with 1.10+ - - -26th September 2015 - 1.9.121 released --------------------------------------- - - * Clang-compatibility - - -27th August 2015 - 1.9.120 released ------------------------------------ - - * optimised stlsoft::auto_buffer::swap() method - * added unixstl_C_get_console_width() / unixstl::get_console_width() - * WinSTL ToolHelp library widestring-compatibility - * VC++ 14 compatibility - - -26th August 2015 - 1.9.119 released ------------------------------------ - - * Visual C++ 14 (Visual Studio 2015) compatibility - * compatibility with GCC 4.x's LLVM library - * 64-bit compatibility fixes - * various fixes for increased compiler pedanticism - * corrections to ensure that all .h files are C-compatible - * forward-compatibility (to STLSoft 1.12) for numerous macros - * various minor fixes - * various minor changes - - -31st May 2014 - 1.9.118 released --------------------------------- - - * added Visual C++ 12 (VS 2013) compatibility - * added struct initialisers for CONSOLE_SCREEN_BUFFER_INFO & CONSOLE_SCREEN_BUFFER_INFOEX - * added second overload of winstl::filesystem_traits::ensure_dir_end() that takes a pointer to a length-added counter variable - * added forward-compatibility with STLSoft 1.10's substantially enhanced and expanded synchronisation exception hierarchy to Synchronisation Library types - * added winstl::system_traits::get_home_directory() (although it's only operative in 1.10+ or when using 1.10 alpha with 1.9) - * various minor fixes - * various minor changes - - -16th February 2013 - 1.9.117 released -------------------------------------- - - * added Visual C++ 11 compatibility - * various minor changes - - -19th August 2012 - 1.9.116 released ------------------------------------ - - * fixed defect in winstl::pipe::close_write() - * various other minor warning suppression and reformatting - - -31st July 2012 - 1.9.115 released ---------------------------------- - - * stlsoft::integer_to_string() new overloads with out-parameter as pointer; deprecated overloads with out-parameter as reference - * winstl::integral_printf_traits added octal_format_a/w(), hexadecimal_format_a/w(), decimal_format_a/w(); deprecated format_a/w() and hex_format_a/w() methods, and size_min, size_max, and size member constants - * Windows 7-compatibility for winstl::drophandle_sequence - * winstl::spin_mutex now uses SwitchToThread if _WIN32_WINNT >= 0x0400 - * added winstl::added GetTimeFormat_msExA/W() by which custom time markers can be specified - - -4th June 2012 - 1.9.114 released --------------------------------- - - * added unixstl::filesystem_traits::is_socket(char_type const*) method - * added unixstl::filesystem_traits::is_link(char_type const*) method - * added unixstl::filesystem_traits::is_socket(stat_data_type const*) method - * added unixstl::filesystem_traits::find_next_path_name_separator() method - * added unixstl::filesystem_traits::find_last_path_name_separator() method - * unixstl::filesystem_traits::get_full_path_name() now canonicalises '.'/'..'-trailing paths - * unixstl::readdir_sequence.hpp now includes directory name in thrown exception - - -4th June 2012 - 1.9.113 released --------------------------------- - - * Intel C/C++ 12 support - * support for STLSOFT_COMPILE_VERBOSE; deprecation of _STLSOFT_COMPILE_VERBOSE - * fixed unixstl::filesystem_traits::broken get_current_directory() - * fixed unixstl::filesystem_traits::broken invalid_file_handle_value() - * fixed unixstl::filesystem_traits::is_file() / is_directory() / is_link() - * numerous improvements to unixstl::filesystem_traits::glob_sequence - * unixstl::readdir_sequence correction to elide sockets from search results - * winstl/time/conversion_functions.h renaming (and deprecation) of non-standard C function names - - -7th February 2012 - 1.9.112 released ------------------------------------- - - * added winstl_C_format_message_strerror_a(), an analogue of strerror() for Windows API "error" codes - * adjusted discrimination of exception-support macros, based on presence of GCC compiler's __EXCEPTIONS symbol - * minor VC++ compatibility fix for stlsoft/shims/access/string/std/exception.hpp - - -30th November 2011 - 1.9.111 released -------------------------------------- - - * fix for GCC 4.5+ unixstl::filesystem_traits - - -25th November 2011 - 1.9.110 released -------------------------------------- - - * fix for GCC 4.5+ unixstl::filesystem_traits - * added result_code_type to both unixstl::system_traits and winstl::system_traits - * correction(s)/enhancement(s) to which of MFCSTL's string access shim headers are automatically included - * added discrimination of new pre-processor symbol PLATFORMSTL_NO_PLATFORM_NAMESPACE, to ease dependent library implementation - * avoidance of false memory-leak reports in use of stlsoft::truncation_test - - -13th August 2011 - 1.9.109 released ------------------------------------ - - * added rbegin()/rend() to stlsoft::frequency_map<> - * added push_n() to stlsoft::frequency_map<> - * refactored throw statement(s) in terms of STLSOFT_THROW_X() throughout - * added reset() method to stlsoft::shared_ptr<> - * added various STLSoft deprecation macros - * added is_path_rooted(), is_path_absolute(), and is_path_UNC() methods to unixstl::filesystem_traits<> - * added two-parameters overloads of is_path_rooted(), is_path_absolute(), and is_path_UNC() methods to winstl::filesystem_traits<> - * include/winstl/error/error_functions.h: substantial refactoring of format_message()-family of functions (and their C analogues) - - -31st January 2011 - 1.9.108 released ------------------------------------- - - * changed erroneously named new unixstl::/winstl::filesystem_traits method's name from invalid_handle_value() to invalid_file_handle_value() - * added third, defaulted, template parameter to stlsoft::frequency_map for specification of predicate - - -30th January 2011 - 1.9.107 released ------------------------------------- - - * added data() member to stlsoft::multibyte2wide and stlsoft::wide2multibyte - * added data() member to winstl::multibyte2wide and winstl::wide2multibyte - * improved performance of of c_str_len(_a|_w)() shim overloads of stlsoft::multibyte2wide and stlsoft::wide2multibyte - * improved performance of of c_str_len(_a|_w)() shim overloads of winstl::multibyte2wide and winstl::wide2multibyte - * added equal() method and operator ==/!=() non-member functions to unixstl::memory_mapped_file - * added equal() method and operator ==/!=() non-member functions to winstl::memory_mapped_file - * added non-member unixstl::swap() function for unixstl::memory_mapped_file - * added non-member platformstl::swap() function for platformstl::memory_mapped_file - * changed definition of unixstl::memory_mapped_file::size_type to be size_t - * added invalid_handle_value() method to unixstl::filesystem_traits<> - * added invalid_handle_value() method to winstl::filesystem_traits<> - * added added get_file_size(stat_data_type const&) and get_file_size(stat_data_type const*) overloads to unixstl::filesystem_traits<> - * added added get_file_size(stat_data_type const&) and get_file_size(stat_data_type const*) overloads to winstl::filesystem_traits<> - * reduced dependencies on other string access shim overloads in winstl::error_desc - - -28th December 2010 - 1.9.106 released -------------------------------------- - - * workaround for Intel compile error - - -27th December 2010 - 1.9.105 released -------------------------------------- - - * several new minor facilities in stlsoft::frequency_map - * improved compiler-compatibility in stlsoft::multibyte2wide and stlsoft::wide2multibyte - * WinSTL now recognises Win64 architecture when _WIN64 is defined even when WIN64 is not - - -22nd November 2010 - 1.9.104 released -------------------------------------- - - * refactored wide string exception string access shim functions, to avoid so-called "deprecated" (standard) functions when using VC++ - * expanded internal buffers of shim strings for exception string access shims, from 10 to 100 - - -21st November 2010 - 1.9.103 released -------------------------------------- - - * changed mechanism of discriminating Dinkumware standard library versions - * added typedefs for path_a and path_w to introduce them into the platformstl namespace - - -8th November 2010 - 1.9.102 released ------------------------------------- - - * added wide string string access shims for std::exception - * fixed infinite-recursion defects in ambient shim function definitions - * other compatibility fixes - - -30th September 2010 - 1.9.101 released --------------------------------------- - - * stlsoft::transform_iterator can now support transformation to types that do not support default construction - * fixed defect in stlsoft::transform_iterator - * platformstl::basic_file_lines refactored, and exception-safety enhanced - * winstl::memory_mapped_file refactored in preparation for substantial enhancement in 1.10; also no longer supports compilers that do not have native 64-bit integers - - -12th August 2010 - 1.9.100 released ------------------------------------ - - * added stlsoft/iterators/common/string_concatenation_flags.hpp - * string_concatenator_iterator now strictly skips separator insertion for empty elements if no flags are specified, and always inserts separator if string_concatenation_flags::AlwaysSeparate is specified - * added performance_counter_init::get_period_and_restart() method - * added STLSOFT_CC_CDECL_VALUE, STLSOFT_CC_FASTCALL_VALUE, STLSOFT_CC_STDCALL_VALUE - * special_string_instance now uses atomic_int_type - * string_tokeniser iterator dereference operator changed to disallow return of mutable instance - * string_view has improved comparison algorithm - * added 3-, 4-, and 5-parameter overloads of stlsoft::minimum() and stlsoft::maximum() - * various fixes and enhancements to platformstl::file_lines - * added size() and empty() methods to winstl::environment_variable - * implemented winstl::system_traits::str_n_compare_no_case() - - -21st June 2010 - 1.9.99 released --------------------------------- - - * added filesystem_traits::str_fs_compare() (UNIXSTL & WinSTL) - * added filesystem_traits::str_fs_n_compare() (UNIXSTL & WinSTL) - * added str_n_compare_no_case declaration to system_traits (UNIXSTL & WinSTL) - * added assoc_select_first() and assoc_select_second() creator functions for associative_select_iterator - * incorporated Manfred Ehrhart's fixes for associative_select_iterator - * Borland/GCC-compatibility fixes - * GCC-compatibility fixes - * nullptr support correction for VC++ - * various minor fixes - - -7th June 2010 - 1.9.98 released -------------------------------- - - * added range overload of stlsoft::read_line(), so can read lines from an iterator range - * added nullptr (C++0x) support for VC++ 10 - * added swap() method to stlsoft::basic_shim_string - * added 3, 4, 5, and 6-split overloads to stlsoft::split() - * added sized-string ctor, data() and size() methods, and string access shims (to simplify xTests-based unit-testing, if nothing else) to stlsoft::exception_string - * added VARIANT_BOOL overload to comstl::method_cast() - * added platformstl::file_lines empty() method - * separated PlatformSTL's atomic types into separate file platformstl/synch/atomic_types.h - * separated UNIXSTL's atomic types into separate file unixstl/synch/atomic_types.h - * separated WinSTL's atomic types into separate file winstl/synch/atomic_types.h - * fixed winstl::memory_mapped_file to handle case where an offset is specified but there are 0 remaining bytes in the file to be mapped at that location: constructs an instance with 0 size - * fixed potential memory leak of format-message-string if windows_exception creation throws an exception - * moved COMSTL_CCH_GUID to comstl/comstl.h from comstl/shims/access/string/guid.hpp - * adjusted winstl::drophandle_sequence for Win64 compatibility - * adjusted winstl::version_info for Win64 compatibility - * various components no longer rely on operator += of exception_string type, in preparation for 1.10 versions - - -4th April 2010 - 1.9.97 released --------------------------------- - - * added stlsoft::copy_preinc() and stlsoft::copy_postinc() algorithms - * added str_set() method to unixstl::/winstl::system_traits - * added unixstl/shims/conversion/to_uint64/stat.hpp - * added missing widestring specialisation of inetstl::filesystem_traits::is_path_name_separator() - * stlsoft::basic_error_desc synthesises widestring functionality if wcserror() is not available - * exposes widestring version of platformstl::system_traits from UNIXSTL - * comstl::variant compatibility with exception-support disabled - * removed erroneous definitions of strtol(), strtoul(), strtod() - * added missing 'mode' parameter to unixstl::module::load(), and uses 'mode' parameter passed to constructor template - * typename corrections to platformstl::basic_file_path_buffer and platformstl::basic_path - * improved discrimination of Visual C++ 9 / 10 - * fixed defective arithmetic in unixstl::/winstl::memory_mapped_file - * refactored implementation of winstl::reg_key::create_key() to avoid infinite loop faults - - -10th March 2010 - 1.9.96 released ---------------------------------- - - * Visual C++ 10 compatibility - - -7th March 2010 - 1.9.95 released --------------------------------- - - * minor interface modifications to comstl::com_exception - - -5th March 2010 - 1.9.94 released --------------------------------- - - * corrected omission of inline from swap for unixstl::memory_mapped_file - * corrected omission of inline from swap for winstl::memory_mapped_file - - -15th February 2010 - 1.9.93 released ------------------------------------- - - * STLSOFT_CF_NAMESPACE_SUPPORT is now only defined in C++ compilation units - * added WINSTL_CONST_MAX_PATH, which is now used instead of _MAX_PATH throughout winstl - - -11th February 2010 - 1.9.92 released ------------------------------------- - - * added inetstl::filesystem_traits<>::is_path_name_separator() - - -2nd February 2010 - 1.9.91 released ------------------------------------ - - * introducing unixstl::/winstl::remove_directory_recurse() into platformstl namespace - * removal of dependency on so-called "unsafe" string functions - * elimination of calls to memcpy() in path classes - * throwing of exception in make_absolute() if failed to get full path - - -21st January 2010 - 1.9.90 released ------------------------------------ - - * fixed defect in unixstl::filesystem_traits<>::get_full_path_name() when passed "." - * header ordering workaround for GCC 3.4's strange COM headers on Windows - - -19th January 2010 - 1.9.89 released ------------------------------------ - - * fixed defective stream inserter for stlsoft::error_desc - * fixed erroneous push-pop in include/acestl/reactor/custom_event_handler.hpp: - * safe-string compatibility for various UNIXSTL system/filesystem components - - -12th January 2010 - 1.9.88 released ------------------------------------ - - * added throwOnAccessFailure search flag to winstl::basic_findfile_sequence, along with supporting code - * added winstl::access_exception - * full integer handling for comstl::variant - * addition of max_size() static method to basic_file_path_buffer class template - * change of max_size() method to be static in basic_path - * fixed longstanding incompatibility between reverse_iterator and const_reverse_iterator - * C compatibility fixes - * compatibility with GCC 3.4 - * truncation_test is now a function template (rather than a macro to an internal function) - * deprecation/removal of reserved symbols, and replacement with valid symbols - - -11th August 2009 - 1.9.87 released ----------------------------------- - - * trivial formatting changes - - -24th July 2009 - 1.9.86 released --------------------------------- - - * added STLSOFT_CF_THISCALL_SUPPORTED - * added thiscall overloads of mem_fun_ref() and mem_fun_ref_void() - * Borland compatibility for scoped_handle - * fix to unixstl::filesystem_traits::get_full_path_name() (to detect when path contains reserved characters) - - -16th June 2009 - 1.9.85 released --------------------------------- - - * added merge() and swap() to stlsoft::frequence_map class template - * winstl::listview_sequence::value_type::string_type (aka lvs_string_t) is now overrideable via the preprocessor, in preparation for future expansion of flexibility - - -23rd May 2009 - 1.9.84 released -------------------------------- - - * fixed defect in winstl::basic_reg_key::set_value() for REG_MULTI_SZ values (widestring only) - * "safe string" library and widestring support for stlsoft::basic_error_desc - * various 64-bit LP64 compatibility changes - - -19th May 2009 - 1.9.83 released -------------------------------- - - * fixed defects in winstl::basic_reg_value::value_sz()/value_multi_sz() - * fixed defects in exception-safety in winstl::basic_reg_value and winstl::basic_reg_key - * various minor fixes and documentation mods - - -15th May 2009 - 1.9.82 released -------------------------------- - - * added winstl::reg_traits<>::reg_delete_tree() - * added IOStreams compatibility for winstl::findfile_sequence::value_type - - -7th May 2009 - 1.9.81 released ------------------------------- - - * now recognises __func__, provided by Sun Pro, via STLSOFT_CF_func_SYMBOL_SUPPORT - * abstracts __FUNCTION__ support to STLSOFT_FUNCTION_SYMBOL - - -6th May 2009 - 1.9.80 released ------------------------------- - - * now recognises support for variadic macros and #pragma once for later versions of Borland C/C++ - * SunPro compatibility improvements for UNIXSTL synchronisation components - * fixes to defects in stlsoft::basic_simple_string at() and 5-parameter compare() methods - * basic_path class templates (both UNIXSTL and WinSTL versions) now implement assignment operator differently to avoid possibilities of infinite loops (which can happen when a type with an opposing string encoding is used) - * correction to stlsoft::auto_buffer to ensure allocators are involved in swap() operations - * correction to struct in_addr string access shims for compatibility with big-endian architectures - * various changes for compatibility with "safe string" library - - -2nd May 2009 - 1.9.79 released ------------------------------- - - * UNIX compatibility for InetSTL - * "safe string" library compatibility for InetSTL - - -27th April 2009 - 1.9.78 released ---------------------------------- - - * fixed serious defect in atlstl::copy_enumerator_impl::Reset() - * stlsoft::shared_ptr now works correctly if fails to allocate counter - variable in conditions where exception handling is not supported - * stlsoft::c_str_data_a(struct fm const*) now correctly handles case where - tm pointer is NULL - * corrected behaviour of get_environment_variable for both UNIXSTL and - WinSTL system_traits traits classes - * various compiler compatibility fixes - * various documentation corrections - - -9th March 2009 - 1.9.77 released --------------------------------- - - * corrected invalid invariants in memory_mapped_file classes in UNIXSTL and - WinSTL - - -6th March 2009 - 1.9.76 released --------------------------------- - - * added swap() methods to memory_mapped_file classes in UNIXSTL and WinSTL - * corrected defect in VC++ detection of bad_alloc support (which only - affects VC++ 6 or earlier) - - -26th February 2009 - 1.9.75 released ------------------------------------- - - * tidied up COMSTL documentation - * tidied up scoped_handle use in winstl::memory_mapped_file - * added checks to detect at compile time accidental use of &stat_data with winstl::filesystem_traits<>::get_file_size() - * fixed defect in winstl::basic_reg_value::value_sz(), whereby the nul-terminator is included in the resultant string length - * tidied up winstl::basic_path, and added max_size() method - * tidied up winstl::basic_commandline_parser, added substring-constructor, and changed subscript operator to allow indexing (but not use) of the end element - - -13th February 2009 - 1.9.74 released ------------------------------------- - - * further implementation of special Borland version of stlsoft::scoped_handle - * further workarounds to Borland code generation defects in stlsoft::basic_simple_string and platformstl::basic_file_lines - - -3rd February 2009 - 1.9.73 released ------------------------------------ - - * added partial support for Borland 5.9.x and 6.1.x; to support use of Borland with Pantheios - * re-applied VC++ 7.1 workaround eroneously removed in 1.9.70 - - -1st February 2009 - 1.9.72 released ------------------------------------ - - * added char_copy() methods to filesystem_traits classes in UNIXSTL, as part of move away from "unsafe" string functions - * fixed defect in winstl::squeeze_path() whereby wrong length is returned if buffer size is < 5 and the file length < buffer size - * removes unwanted trailing slash in application directory from winstl::basic_searchpath_sequence - * further work to remove dependency on "unsafe" string functions - - -28th January 2009 - 1.9.71 released ------------------------------------ - - * fixed DMC++ incompatibility introduced in 1.9.70 - - -25th January 2009 - 1.9.70 released ------------------------------------ - - * improved stlsoft::find_next_token() function templates to ensure that all empty fields are reported to caller - * added char_copy() methods to filesystem_traits classes in InetSTL and WinSTL, as part of move away from "unsafe" string functions - * minor enhancements to platformstl::readdir_sequence, to disambiguate constructor overloads - * removed all "unsafe" string functions from winstl::basic_findfile_sequence class template and supporting components - * improved winstl::basic_path class template to ensure proper behaviour in corner cases of use of push() and pop() methods - - -23rd January 2009 - 1.9.69 released ------------------------------------ - - * improved robustness of winstl::path_squeeze - * more "Safe String" library compatibility changes - - -19th January 2009 - 1.9.68 released ------------------------------------ - - * fix defect, and updated docs, for stlsoft::must_init utility class template - - -17th January 2009 - 1.9.67 released ------------------------------------ - - * compatibility with GCC on Fedora on PPC - * correction of semantics of null_allocator - - -4th January 2009 - 1.9.66 released ----------------------------------- - - * compatibility with GCC 4.3's pedantic precedence warnings - * compatibility with SunPro compiler for limit_traits - - -1st January 2009 - 1.9.65 released ----------------------------------- - - * "Safe String" library compatibility changes - - -28th December 2008 - 1.9.64 released ------------------------------------- - - * fix to string access shims for VARIANT - - -9th December 2008 - 1.9.63 released ------------------------------------ - - * optimised stlsoft::basic_string_view::reserve() - * enhanced compatibility for stlsoft::fixed_array_?d class templates - - -1st December 2008 - 1.9.62 released ------------------------------------ - - * fixed defect in interface_cast<> and try_interface_cast<> - * improved compatibility with Visual C++ 9 - * speculative support for Intel C/C++ 11.0 - * fixed defect in winstl::to_SYSTEMTIME(DATE) overload - - -19th November 2008 - 1.9.61 released ------------------------------------- - - * better compatibility with SAPI.h for COMSTL's sapi_util.hpp - * documentation markup improvements for a number of files - - -27th October 2008 - 1.9.60 released ------------------------------------ - - * added stlsoft::apply_const() - * added stlsoft/conversion/m2w.hpp - - -25th October 2008 - 1.9.59 released ------------------------------------ - - * change in ATLSTL's property method helpers to avoid infinite loop in - Visual C++ 6 problem when implementing property puts to CComBSTR - * fixed compile error with GCC when using VARIANTs in C compilation units - - -16th October 2008 - 1.9.58 released ------------------------------------ - - * fixed major defect introduced in 1.9.52 to WinSTL's time string access - shims - * fixed minor defects in COMSTL's VARIANT string access shims - * fixed defect in documentation generation whereby examples were omitted - * reduced compilation dependencies in STLSoft's time string access shims - -10th October 2008 - 1.9.57 released ------------------------------------ - - * addition of missing const_reference member type in various Windows - controls collection classes - * C / C++ compatibility fixes for COMSTL - * fix of minor non-standard name in winstl::int_to_string() supporting - class - * a large number of files were altered in minor ways, to do with whitespace - and the placement of * and & symbols - * several files' documentation markup was cleaned up - -1st October 2008 - 1.9.56 released ----------------------------------- - - * a large number of minor enhancements to the documentation markup - * fixes to defects to include guards in UNIXSTL - -27th September 2008 - 1.9.55 released -------------------------------------- - - * corrected defects in stlsoft::wide2multibyte and stlsoft::multibyte2wide - conversion classes - * fixes to various x64 defects related to use of inappropriate calling - convention specifiers with use of dl_call - * sundry other modifications in internal pre-processor facilities and - small improvements to Watcom compatibility - -15th September 2008 - 1.9.54 released -------------------------------------- - - * added stlsoft::exception_string::truncate() method - * removed dependency of UDATE for to_FILETIME() and to_SYSTEMTIME() shim - overloads for DATE type - -14th September 2008 - 1.9.53 released -------------------------------------- - - * changed definition of STLSOFT_STATIC_ASSERT() to work with GCC - * defect defect in pre-condition enforcement of - winstl::system_traits::expand_environment_strings() - -11th September 2008 - 1.9.52 released -------------------------------------- - - * fixed for warnings in 64-bit compilation (VC9) in WinSTL string access - shims for SYSTEMTIME; also added extra safeguard against external race - condition - -7th September 2008 - 1.9.51 released ------------------------------------- - - * workaround for defective exception-throwing behaviour of - stlsoft::conversion_error with VC6 - * fixed defect in WinSTL string access shims for SYSTEMTIME that faults - when asked to process an invalid time value - -3rd September 2008 - 1.9.50 released ------------------------------------- - - * added stlsoft character conversion typedefs m2w, w2m, t2m, m2t - * fix for VC++ 6 defect in requiring return code after exception throw - -2nd September 2008 - 1.9.49 released ------------------------------------- - - * fix for DMC++ defect in winstl::reg_value function template definition - * added winstl character conversion typedefs m2w, w2m, t2m, m2t - -23rd August 2008 - 1.9.48 released ----------------------------------- - - * added comstl/util/CY_functions.h - * added comstl/util/DECIMAL_functions.h - * added comstl/util/VARIANT_functions.h - * added comstl::variant conversion constructor for DECIMAL - * fixed bug in stlsoft::trim_all() - * added winstl::basic_error_desc<>::empty() - -12th August 2008 - 1.9.47 released ----------------------------------- - - * enhancement of stlsoft::read_line() function template to work with - various line-termination sequences - * enhancement of fixed array classes to allow zero size - * winstl::clipboard_format_sequence enhancements to iterator type profile - * winstl::clipboard_scope defect fix and documentation enhancement - * syntactic modification of contract enforcement statements to a large - number of components to address warnings with GCC 4.3 in pedantic mode - -11th August 2008 - 1.9.46 released ----------------------------------- - - * defect fixes to stlsoft::pod_vector - * reduced coupling, and increased functionality, of stlsoft::format_bytes() - * sundry compatibility improvements - -8th June 2008 - 1.9.45 released -------------------------------- - - * enhancement to stlsoft::to_uint64 conversion shim for ULARGE_INTEGER - * more Win-64 compatibility changes - * fixes to winstl::basic_path class template - -1st June 2008 - 1.9.44 released -------------------------------- - - * bug fix in winstl/shims/access/string/LSA_UNICODE_STRING.hpp, required - for newly released flecxx library - -31st May 2008 - 1.9.43 released -------------------------------- - - * more Win64-compatibility modifications - * more Safe String library modifications - * expanded the stlsoft::get_FILE_ptr attribute shim for MFC's CStdioFile - -17th May 2008 - 1.9.42 released -------------------------------- - - * more Win64-compatibility modifications - * more Safe String library modifications - -13th May 2008 - 1.9.41 released -------------------------------- - - * bug fix for GCC compilation on PowerPC that was broken with 1.9.40 - -13th May 2008 - 1.9.40 released -------------------------------- - - * significant refactoring of compiler-capability discrimination for GCC and - VC++ - * compatibility fixes for SunPro compilers - * bug fix in integral_printf_traits (introduced in 1.9.39) - -11th May 2008 - 1.9.39 released -------------------------------- - - * next tranche of changes for Win64 support - -4th May 2008 - 1.9.38 released ------------------------------- - - * next tranche of changes for Win64 support - -3rd May 2008 - 1.9.37 released ------------------------------- - - * first tranche of changes for Win64 support - -30th April 2008 - 1.9.36 released ---------------------------------- - - * added support for FreeBSD operating system - -29th April 2008 - 1.9.35 released ---------------------------------- - - * added value_multi_sz() to winstl::reg_value - -25th April 2008 - 1.9.34 released ---------------------------------- - - * renamed winstl::get_hwnd attribute shim to winstl::get_HWND - * minor adjustments to Sun Pro support - * library feature discrimination symbol cleanup - * refactored error/exception handling in Windows Registry library - -25th April 2008 - 1.9.33 released ---------------------------------- - - * added support for the SunPro C and C++ compilers - * various mods to ensure headers are self-contained when used with - Windows "lean and mean" suppression symbols - -22nd April 2008 - 1.9.32 released ---------------------------------- - - * fix for VC++ 8/9 linker error in the allocator_selector - * refactoring of string access shim headers for lightweight compilation - -13th April 2008 - 1.9.31 released ---------------------------------- - - * exception hierarchy refactoring - * bug fix to stlsoft::must_init - -3rd April 2008 - 1.9.30 released --------------------------------- - - * tidying of distribution - -3rd March 2008 - 1.9.29 released --------------------------------- - - * more preparation for safe string library compatibility - -24th March 2008 - 1.9.28 released ---------------------------------- - - * enhancement to winstl::reg_key class - * preparation for safe string library compatibility - * bug fix for C-compilation in winstl/controls/functions.h - -17th March 2008 - 1.9.27 released ---------------------------------- - - * support for Visual C++ 9 (Visual C++ 2008) - * fixed pre-processor typo that breaks GCC -pedantic - * added item-data functions for list-/combo-boxes - -15th March 2008 - 1.9.26 released ---------------------------------- - - * definition, where appropriate, of STLSOFT_CF_FUNCTION_SYMBOL_SUPPORT, - denoting that a particular compiler supports the __FUNCTION__ - pre-processor symbol - -9th March 2008 - 1.9.24 released --------------------------------- - - * wholesale increase of use of forward include guards, to reduce - compilation times - -8th March 2008 - 1.9.24 released --------------------------------- - - * finishing up some missed std::swap refactoring - -20th February 2008 - 1.9.23 released ------------------------------------- - - * fix for minor compiler compatibility issue - -8th February 2008 - 1.9.22 released ------------------------------------ - - * refactored unixstl/synch/util/features.h - -5th February 2008 - 1.9.21 released ------------------------------------ - - * fixed a bug in platformstl/synch/util/features.h - -3rd February 2008 - 1.9.20 released ------------------------------------ - - * added new stlsoft::singlethreaded_tss_index synchronisation utility class - -2nd February 2008 - 1.9.19 released ------------------------------------ - - * enhancement of SAPI utility header for COMSTL - -27th January 2008 - 1.9.18 released ------------------------------------ - - * enhancement of STLSoft's integral_printf_trait component to support - Pantheios 1.0.1 beta 91 - * release of SAPI utility header for COMSTL - -5th January 2008 - 1.9.17 released ----------------------------------- - - * bug fix for UNIXSTL on Leopard/GCC 4.0.1 - -29th December 2007 - 1.9.16 released ------------------------------------- - - * bug fix in stlsoft::printf_traits - * bug fix in winstl::GetTimeFormat_msA/W - * other minor bug fixes - * minor feature enhancements & refactoring - -24th December 2007 - 1.9.15 released ------------------------------------- - - * minor bug fix for C compilation - -23rd December 2007 - 1.9.14 released ------------------------------------- - - * updated stlsoft version (_STLSOFT_VER) missing in 1.9.13 - -20th December 2007 - 1.9.13 released ------------------------------------- - - * features enhancements to fixed array classes - -19th December 2007 - 1.9.12 released ------------------------------------- - - * features enhancements to fixed array classes - -17th December 2007 - 1.9.11 released ------------------------------------- - - * minor modifications and bug-fixes - -10th December 2007 - 1.9.10 released ------------------------------------- - - * bug fix for recls (http://recls.org/) - * minor feature enhancements - -19th November 2007 - 1.9.9 released ------------------------------------ - - shim fixes in UNIXSTL - -18th November 2007 - 1.9.8 released ------------------------------------ - - compatibility with Borland C/C++ 5.82 (Turbo C++); now supports VOLE - -16th November 2007 - 1.9.7 released ------------------------------------ - - Win 64-bit compilation support; not perfect yet - Borland Turbo C++ v5.82 support; not perfect yet - new stlsoft::get_FILE_ptr shim - new platformstl::file_lines class - new winstl::to_DATE conversion shim - major enhancements to unixstl::memory_mapped_file - multiple compiler compatibility enhancement fixes - minor compilation warning fixes - -25th September 2007 - 1.9.6 released ------------------------------------- - - bug fixes - mostly minor - - -2nd August 2007 - 1.9.5 released --------------------------------- - - minor additions and bug fixes - - -2nd August 2007 - 1.9.4 released --------------------------------- - - __VA_ARGS__ compiler-support detection - - -29th July 2007 - 1.9.3 released -------------------------------- - - A couple of small additions. - - Documentation still outstanding ... resolved soon. Hopefully. - - -2nd June 2007 - 1.9.2 released ------------------------------- - - A few changes and updates to various components, primarily to support the - release of recls 1.8.10 (http://recls.org/downloads.html). - - The elephant in the living room is still the lack of documentation. It's - coming ... honest. - - -30th April 2007 - 1.9.1 released (for Extended STL, volume 1: CD) ------------------------------------------------------------------ - - There has been an enormous amount of change in STLSoft from the last - release, 1.8.9 (October 2005), to the new release, 1.9.1 (April/May 2007). - - Consequently, I just can't muster the effort at this time to detail the - entire set of changes. The one big change I will note, however, is that - the library files no longer reside in the root directory, e.g. - - comstl_bstr_functions.h - - and are now in appropriate sub-directories under the sub-project - sub-directories, e.g. - - comstl/string/bstr_functions.h - - - - From f8bd4d874162e81911900fb5a5990365381e51df Mon Sep 17 00:00:00 2001 From: Matt Wilson Date: Fri, 31 Jul 2026 08:13:47 +1000 Subject: [PATCH 14/24] chore: CI improvements --- .github/workflows/ci.yml | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 7af08516..3cd2ee5d 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -5,11 +5,18 @@ on: branches: - master - dev - - ver + - rc1 + - rc2 + - rc3 - rc4 - rc5 + - update pull_request: +concurrency: + group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }} + cancel-in-progress: true + env: BUILD_TYPE: Release @@ -20,14 +27,14 @@ jobs: fail-fast: false matrix: include: - - id: linux-gcc - os: ubuntu-latest - c_compiler: gcc - cpp_compiler: g++ - id: linux-clang os: ubuntu-latest c_compiler: clang cpp_compiler: clang++ + - id: linux-gcc + os: ubuntu-latest + c_compiler: gcc + cpp_compiler: g++ - id: macos-clang os: macos-latest c_compiler: clang From ab720a44021fc637963a5b27f42be0c81a792ea5 Mon Sep 17 00:00:00 2001 From: Matt Wilson Date: Fri, 31 Jul 2026 08:17:47 +1000 Subject: [PATCH 15/24] chore: renaming all "TBC" to "T.B.C." (for searchability) --- EXAMPLES.md | 50 ++++++++++++------------ include/stlsoft/string/static_string.hpp | 18 ++++----- 2 files changed, 34 insertions(+), 34 deletions(-) diff --git a/EXAMPLES.md b/EXAMPLES.md index c4e388a6..a1686374 100644 --- a/EXAMPLES.md +++ b/EXAMPLES.md @@ -3,7 +3,7 @@ | Name | Source & Description | Platform | Summary | | ---- | -------------------- | -------- | ------- | | **By concept**: | | | | -| **time_functions** | [by_concept/string_access_shims/time_functions](./examples/by_concept/string_access_shims/time_functions/main.cpp) | * | TBC | +| **time_functions** | [by_concept/string_access_shims/time_functions](./examples/by_concept/string_access_shims/time_functions/main.cpp) | * | T.B.C. | | | | | | | **By project**: | | | | | **comstl** | [by_project/comstl](./examples/by_project/comstl/main.cpp) | Windows | Shows numerous cooperating components in **COMSTL** | @@ -11,53 +11,53 @@ | **home_directory** | [by_project/platformstl/system/home_directory](./examples/by_project/platformstl/system/home_directory/main.cpp) | * | Illustrates use of `platformstl::home_directory` | | **readdir_sequence** | [by_project/platformstl/filesystem/readdir_sequence](./examples/by_project/platformstl/filesystem/readdir_sequence/main.cpp) | * | List filesystem entries with `platformstl::readdir_sequence` | | | | | | -| **dl_call** | [by_project/unixstl/dl/dl_call](./examples/by_project/unixstl/dl/dl_call/main.cpp) | Unix | TBC | +| **dl_call** | [by_project/unixstl/dl/dl_call](./examples/by_project/unixstl/dl/dl_call/main.cpp) | Unix | T.B.C. | | **glob_sequence** | [by_project/unixstl/filesystem/glob_sequence](./examples/by_project/unixstl/filesystem/glob_sequence/main.cpp) | Unix | List selected filesystem entries with `unixstl::glob_sequence` | | **home_directory** | [by_project/unixstl/system/home_directory](./examples/by_project/unixstl/system/home_directory/main.cpp) | Unix | Illustrates use of `unixstl::home_directory` | | **readdir_sequence** | [by_project/unixstl/filesystem/readdir_sequence](./examples/by_project/unixstl/filesystem/readdir_sequence/main.cpp) | Unix | List filesystem entries with `unixstl::readdir_sequence` | | | | | | -| **C.output_debug_line** | [by_project/winstl/diagnostics/C.output_debug_line](./examples/by_project/winstl/diagnostics/C.output_debug_line/main.c) | Windows | TBC | -| **codepages** | [by_project/winstl/i18n/codepages](./examples/by_project/winstl/i18n/codepages/main.cpp) | Windows | TBC | -| **dl_call** | [by_project/winstl/dl/dl_call](./examples/by_project/winstl/dl/dl_call/main.cpp) | Windows | TBC | +| **C.output_debug_line** | [by_project/winstl/diagnostics/C.output_debug_line](./examples/by_project/winstl/diagnostics/C.output_debug_line/main.c) | Windows | T.B.C. | +| **codepages** | [by_project/winstl/i18n/codepages](./examples/by_project/winstl/i18n/codepages/main.cpp) | Windows | T.B.C. | +| **dl_call** | [by_project/winstl/dl/dl_call](./examples/by_project/winstl/dl/dl_call/main.cpp) | Windows | T.B.C. | | **findfile_sequence** | [by_project/winstl/filesystem/findfile_sequence](./examples/by_project/winstl/filesystem/findfile_sequence/main.cpp) | Windows | List selected filesystem entries with `winstl::readdir_sequence` | -| **home_directory** | [by_project/winstl/system/home_directory](./examples/by_project/winstl/system/home_directory/main.cpp) | Windows | TBC | -| **output_debug_line** | [by_project/winstl/diagnostics/output_debug_line](./examples/by_project/winstl/diagnostics/output_debug_line/main.cpp) | Windows | TBC | -| **printf_debug_string** | [by_project/winstl/diagnostics/printf_debug_string](./examples/by_project/winstl/diagnostics/printf_debug_string/main.c) | Windows | TBC | +| **home_directory** | [by_project/winstl/system/home_directory](./examples/by_project/winstl/system/home_directory/main.cpp) | Windows | T.B.C. | +| **output_debug_line** | [by_project/winstl/diagnostics/output_debug_line](./examples/by_project/winstl/diagnostics/output_debug_line/main.cpp) | Windows | T.B.C. | +| **printf_debug_string** | [by_project/winstl/diagnostics/printf_debug_string](./examples/by_project/winstl/diagnostics/printf_debug_string/main.c) | Windows | T.B.C. | | **readdir_sequence** | [by_project/winstl/filesystem/readdir_sequence](./examples/by_project/winstl/filesystem/readdir_sequence/main.cpp) | Windows | List filesystem entries with `platformstl::readdir_sequence` | | | | | | | **By library**: | | | | -| **creation_functions** | [by_library/com_utility/creation_functions](./examples/by_library/com_utility/creation_functions/main.cpp) | Windows | TBC | -| **rot_functions** | [by_library/com_utility/rot_functions](./examples/by_library/com_utility/rot_functions/main.cpp) | Windows | TBC | +| **creation_functions** | [by_library/com_utility/creation_functions](./examples/by_library/com_utility/creation_functions/main.cpp) | Windows | T.B.C. | +| **rot_functions** | [by_library/com_utility/rot_functions](./examples/by_library/com_utility/rot_functions/main.cpp) | Windows | T.B.C. | | | | | | -| **unicode_point_map** | [by_library/containers/unicode_point_map](./examples/by_library/containers/unicode_point_map/main.cpp) | * | TBC | +| **unicode_point_map** | [by_library/containers/unicode_point_map](./examples/by_library/containers/unicode_point_map/main.cpp) | * | T.B.C. | | | | | | -| **interface_cast** | [by_library/conversion/interface_cast](./examples/by_library/conversion/interface_cast/main.cpp) | Windows | TBC | -| **sap_cast** | [by_library/conversion/sap_cast](./examples/by_library/conversion/sap_cast/main.cpp) | * | TBC | -| **union_cast** | [by_library/conversion/union_cast](./examples/by_library/conversion/union_cast/main.cpp) | * | TBC | +| **interface_cast** | [by_library/conversion/interface_cast](./examples/by_library/conversion/interface_cast/main.cpp) | Windows | T.B.C. | +| **sap_cast** | [by_library/conversion/sap_cast](./examples/by_library/conversion/sap_cast/main.cpp) | * | T.B.C. | +| **union_cast** | [by_library/conversion/union_cast](./examples/by_library/conversion/union_cast/main.cpp) | * | T.B.C. | | | | | | -| **processtimes_stopwatch** | [by_library/diagnostics/processtimes_stopwatch](./examples/by_library/diagnostics/processtimes_stopwatch/main.cpp) | * | TBC | -| **stopwatch** | [by_library/diagnostics/stopwatch](./examples/by_library/diagnostics/stopwatch/main.cpp) | * | TBC | +| **processtimes_stopwatch** | [by_library/diagnostics/processtimes_stopwatch](./examples/by_library/diagnostics/processtimes_stopwatch/main.cpp) | * | T.B.C. | +| **stopwatch** | [by_library/diagnostics/stopwatch](./examples/by_library/diagnostics/stopwatch/main.cpp) | * | T.B.C. | | | | | | -| **auto_buffer** | [by_library/memory/auto_buffer](./examples/by_library/memory/auto_buffer/main.cpp) | * | TBC | -| **com_memory_functions** | [by_library/memory/com_memory_functions](./examples/by_library/memory/com_memory_functions/main.cpp) | Windows | TBC | +| **auto_buffer** | [by_library/memory/auto_buffer](./examples/by_library/memory/auto_buffer/main.cpp) | * | T.B.C. | +| **com_memory_functions** | [by_library/memory/com_memory_functions](./examples/by_library/memory/com_memory_functions/main.cpp) | Windows | T.B.C. | | **heapwalk_sequence** | [by_library/memory/heapwalk_sequence](./examples/by_library/memory/heapwalk_sequence/main.cpp) | Windows | List heap allocations with `winstl::heapwalk_sequence` | | | | | | | **pid_sequence** | [by_library/system/pid_sequence](./examples/by_library/system/pid_sequence/main.cpp) | * | List process IDs with `platformstl::pid_sequence` | | | | | | -| **clipboard_format_sequence** | [by_library/windows_clipboard/clipboard_format_sequence](./examples/by_library/windows_clipboard/clipboard_format_sequence/main.cpp) | Windows | TBC | -| **clipboard_scope** | [by_library/windows_clipboard/clipboard_scope](./examples/by_library/windows_clipboard/clipboard_scope/main.cpp) | Windows | TBC | +| **clipboard_format_sequence** | [by_library/windows_clipboard/clipboard_format_sequence](./examples/by_library/windows_clipboard/clipboard_format_sequence/main.cpp) | Windows | T.B.C. | +| **clipboard_scope** | [by_library/windows_clipboard/clipboard_scope](./examples/by_library/windows_clipboard/clipboard_scope/main.cpp) | Windows | T.B.C. | | | | | | -| **windows_control_panel** | [by_library/windows_control_panel/windows_control_panel](./examples/by_library/windows_control_panel/windows_control_panel/main.cpp) | Windows | TBC | +| **windows_control_panel** | [by_library/windows_control_panel/windows_control_panel](./examples/by_library/windows_control_panel/windows_control_panel/main.cpp) | Windows | T.B.C. | | | | | | -| **enum_values** | [by_library/windows_registry/enum_values](./examples/by_library/windows_registry/enum_values/main.cpp) | Windows | TBC | -| **registry_functions** | [by_library/windows_registry/registry_functions](./examples/by_library/windows_registry/registry_functions/main.cpp) | Windows | TBC | +| **enum_values** | [by_library/windows_registry/enum_values](./examples/by_library/windows_registry/enum_values/main.cpp) | Windows | T.B.C. | +| **registry_functions** | [by_library/windows_registry/registry_functions](./examples/by_library/windows_registry/registry_functions/main.cpp) | Windows | T.B.C. | | | | | | -| **memory_functions** | [by_library/windows_shell/memory_functions](./examples/by_library/windows_shell/memory_functions/main.cpp) | Windows | TBC | +| **memory_functions** | [by_library/windows_shell/memory_functions](./examples/by_library/windows_shell/memory_functions/main.cpp) | Windows | T.B.C. | | | | | | | **module_sequence** | [by_library/windows_toolhelp/module_sequence](./examples/by_library/windows_toolhelp/module_sequence/main.cpp) | Windows | List process modules with `winstl::module_sequence` | | **process_sequence** | [by_library/windows_toolhelp/process_sequence](./examples/by_library/windows_toolhelp/process_sequence/main.cpp) | Windows | List processes with `winstl::process_sequence` | | | | | | -| **shell_functions** | [by_library/windows_shell/shell_functions](./examples/by_library/windows_shell/shell_functions/main.cpp) | Windows | TBC | +| **shell_functions** | [by_library/windows_shell/shell_functions](./examples/by_library/windows_shell/shell_functions/main.cpp) | Windows | T.B.C. | diff --git a/include/stlsoft/string/static_string.hpp b/include/stlsoft/string/static_string.hpp index 6995e942..550ec376 100644 --- a/include/stlsoft/string/static_string.hpp +++ b/include/stlsoft/string/static_string.hpp @@ -4,13 +4,13 @@ * Purpose: basic_static_string class template. * * Created: 11th June 1994 - * Updated: 26th April 2025 + * Updated: 31st July 2026 * * Thanks: To Cláudio Albuquerque for supplying the pop_back() member. * * Home: http://stlsoft.org/ * - * Copyright (c) 2019-2025, Matthew Wilson and Synesis Information Systems + * Copyright (c) 2019-2026, Matthew Wilson and Synesis Information Systems * Copyright (c) 1994-2019, Matthew Wilson and Synesis Software * All rights reserved. * @@ -57,7 +57,7 @@ # define STLSOFT_VER_STLSOFT_STRING_HPP_STATIC_STRING_MAJOR 5 # define STLSOFT_VER_STLSOFT_STRING_HPP_STATIC_STRING_MINOR 5 # define STLSOFT_VER_STLSOFT_STRING_HPP_STATIC_STRING_REVISION 3 -# define STLSOFT_VER_STLSOFT_STRING_HPP_STATIC_STRING_EDIT 232 +# define STLSOFT_VER_STLSOFT_STRING_HPP_STATIC_STRING_EDIT 233 #endif /* !STLSOFT_DOCUMENTATION_SKIP_SECTION */ @@ -144,9 +144,9 @@ namespace stlsoft /** Simple string class using fixed-size static-based storage * - * \tparam C TBC - * \tparam V_internalSize TBC - * \tparam T TBC + * \tparam C T.B.C. + * \tparam V_internalSize T.B.C. + * \tparam T T.B.C. * * \param C The character type * \param V_internalSize The number of characters in the fixed-side buffer, @@ -1283,9 +1283,9 @@ c_str_len(STLSOFT_NS_QUAL(basic_static_string) const& s) S * \ingroup group__concept__Shim__stream_insertion * * \tparam T_stream The stream type - * \tparam C TBC - * \tparam V_internalSize TBC - * \tparam T TBC + * \tparam C T.B.C. + * \tparam V_internalSize T.B.C. + * \tparam T T.B.C. * * \param stm The stream * \param s The string From 7ee43d6717b8d7a51a6d4ea2de52621fdacb5e29 Mon Sep 17 00:00:00 2001 From: Matt Wilson Date: Fri, 31 Jul 2026 12:57:24 +1000 Subject: [PATCH 16/24] chore: enhanced **EXAMPLES.md** --- EXAMPLES.md | 55 ++++++++++++++++++++++++++--------------------------- 1 file changed, 27 insertions(+), 28 deletions(-) diff --git a/EXAMPLES.md b/EXAMPLES.md index a1686374..da60d4af 100644 --- a/EXAMPLES.md +++ b/EXAMPLES.md @@ -3,7 +3,7 @@ | Name | Source & Description | Platform | Summary | | ---- | -------------------- | -------- | ------- | | **By concept**: | | | | -| **time_functions** | [by_concept/string_access_shims/time_functions](./examples/by_concept/string_access_shims/time_functions/main.cpp) | * | T.B.C. | +| **time_functions** | [by_concept/string_access_shims/time_functions](./examples/by_concept/string_access_shims/time_functions/main.cpp) | * | Format time-related types via string-access shims (e.g. `struct tm`, `std::chrono`) | | | | | | | **By project**: | | | | | **comstl** | [by_project/comstl](./examples/by_project/comstl/main.cpp) | Windows | Shows numerous cooperating components in **COMSTL** | @@ -11,54 +11,53 @@ | **home_directory** | [by_project/platformstl/system/home_directory](./examples/by_project/platformstl/system/home_directory/main.cpp) | * | Illustrates use of `platformstl::home_directory` | | **readdir_sequence** | [by_project/platformstl/filesystem/readdir_sequence](./examples/by_project/platformstl/filesystem/readdir_sequence/main.cpp) | * | List filesystem entries with `platformstl::readdir_sequence` | | | | | | -| **dl_call** | [by_project/unixstl/dl/dl_call](./examples/by_project/unixstl/dl/dl_call/main.cpp) | Unix | T.B.C. | +| **dl_call** | [by_project/unixstl/dl/dl_call](./examples/by_project/unixstl/dl/dl_call/main.cpp) | Unix | Call functions in shared libraries via `unixstl::dl_call` | | **glob_sequence** | [by_project/unixstl/filesystem/glob_sequence](./examples/by_project/unixstl/filesystem/glob_sequence/main.cpp) | Unix | List selected filesystem entries with `unixstl::glob_sequence` | | **home_directory** | [by_project/unixstl/system/home_directory](./examples/by_project/unixstl/system/home_directory/main.cpp) | Unix | Illustrates use of `unixstl::home_directory` | | **readdir_sequence** | [by_project/unixstl/filesystem/readdir_sequence](./examples/by_project/unixstl/filesystem/readdir_sequence/main.cpp) | Unix | List filesystem entries with `unixstl::readdir_sequence` | | | | | | -| **C.output_debug_line** | [by_project/winstl/diagnostics/C.output_debug_line](./examples/by_project/winstl/diagnostics/C.output_debug_line/main.c) | Windows | T.B.C. | -| **codepages** | [by_project/winstl/i18n/codepages](./examples/by_project/winstl/i18n/codepages/main.cpp) | Windows | T.B.C. | -| **dl_call** | [by_project/winstl/dl/dl_call](./examples/by_project/winstl/dl/dl_call/main.cpp) | Windows | T.B.C. | -| **findfile_sequence** | [by_project/winstl/filesystem/findfile_sequence](./examples/by_project/winstl/filesystem/findfile_sequence/main.cpp) | Windows | List selected filesystem entries with `winstl::readdir_sequence` | -| **home_directory** | [by_project/winstl/system/home_directory](./examples/by_project/winstl/system/home_directory/main.cpp) | Windows | T.B.C. | -| **output_debug_line** | [by_project/winstl/diagnostics/output_debug_line](./examples/by_project/winstl/diagnostics/output_debug_line/main.cpp) | Windows | T.B.C. | -| **printf_debug_string** | [by_project/winstl/diagnostics/printf_debug_string](./examples/by_project/winstl/diagnostics/printf_debug_string/main.c) | Windows | T.B.C. | -| **readdir_sequence** | [by_project/winstl/filesystem/readdir_sequence](./examples/by_project/winstl/filesystem/readdir_sequence/main.cpp) | Windows | List filesystem entries with `platformstl::readdir_sequence` | +| **C.output_debug_line** | [by_project/winstl/diagnostics/C.output_debug_line](./examples/by_project/winstl/diagnostics/C.output_debug_line/main.c) | Windows | Emit debug strings with the C API `winstl_C_diagnostics_output_debug_line_*` | +| **codepages** | [by_project/winstl/i18n/codepages](./examples/by_project/winstl/i18n/codepages/main.cpp) | Windows | Enumerate system code pages with `winstl::codepage_sequence` | +| **dl_call** | [by_project/winstl/dl/dl_call](./examples/by_project/winstl/dl/dl_call/main.cpp) | Windows | Call functions in DLLs via `winstl::dl_call` | +| **findfile_sequence** | [by_project/winstl/filesystem/findfile_sequence](./examples/by_project/winstl/filesystem/findfile_sequence/main.cpp) | Windows | List selected filesystem entries with `winstl::findfile_sequence` | +| **home_directory** | [by_project/winstl/system/home_directory](./examples/by_project/winstl/system/home_directory/main.cpp) | Windows | Illustrates use of `winstl::home_directory` | +| **output_debug_line** | [by_project/winstl/diagnostics/output_debug_line](./examples/by_project/winstl/diagnostics/output_debug_line/main.cpp) | Windows | Emit concatenating debug lines with `winstl::diagnostics::output_debug_line` | +| **printf_debug_string** | [by_project/winstl/diagnostics/printf_debug_string](./examples/by_project/winstl/diagnostics/printf_debug_string/main.c) | Windows | `printf`-style debug output with `winstl_C_printf_debug_string` | +| **readdir_sequence** | [by_project/winstl/filesystem/readdir_sequence](./examples/by_project/winstl/filesystem/readdir_sequence/main.cpp) | Windows | List filesystem entries with `winstl::readdir_sequence` | | | | | | | **By library**: | | | | -| **creation_functions** | [by_library/com_utility/creation_functions](./examples/by_library/com_utility/creation_functions/main.cpp) | Windows | T.B.C. | -| **rot_functions** | [by_library/com_utility/rot_functions](./examples/by_library/com_utility/rot_functions/main.cpp) | Windows | T.B.C. | +| **creation_functions** | [by_library/com_utility/creation_functions](./examples/by_library/com_utility/creation_functions/main.cpp) | Windows | Create COM objects with **COMSTL** creation helpers and `interface_cast` | +| **rot_functions** | [by_library/com_utility/rot_functions](./examples/by_library/com_utility/rot_functions/main.cpp) | Windows | Manipulate the COM Running Object Table with **COMSTL** ROT helpers | | | | | | -| **unicode_point_map** | [by_library/containers/unicode_point_map](./examples/by_library/containers/unicode_point_map/main.cpp) | * | T.B.C. | +| **unicode_point_map** | [by_library/containers/unicode_point_map](./examples/by_library/containers/unicode_point_map/main.cpp) | * | Illustrates use of `stlsoft::unicode_point_map` | | | | | | -| **interface_cast** | [by_library/conversion/interface_cast](./examples/by_library/conversion/interface_cast/main.cpp) | Windows | T.B.C. | -| **sap_cast** | [by_library/conversion/sap_cast](./examples/by_library/conversion/sap_cast/main.cpp) | * | T.B.C. | -| **union_cast** | [by_library/conversion/union_cast](./examples/by_library/conversion/union_cast/main.cpp) | * | T.B.C. | +| **interface_cast** | [by_library/conversion/interface_cast](./examples/by_library/conversion/interface_cast/main.cpp) | Windows | Query COM interfaces with `comstl::interface_cast` helpers | +| **sap_cast** | [by_library/conversion/sap_cast](./examples/by_library/conversion/sap_cast/main.cpp) | * | Size-aware pointer casts with `stlsoft::sap_cast` | +| **union_cast** | [by_library/conversion/union_cast](./examples/by_library/conversion/union_cast/main.cpp) | * | Same-size type punning with `stlsoft::union_cast` | | | | | | -| **processtimes_stopwatch** | [by_library/diagnostics/processtimes_stopwatch](./examples/by_library/diagnostics/processtimes_stopwatch/main.cpp) | * | T.B.C. | -| **stopwatch** | [by_library/diagnostics/stopwatch](./examples/by_library/diagnostics/stopwatch/main.cpp) | * | T.B.C. | +| **processtimes_stopwatch** | [by_library/diagnostics/processtimes_stopwatch](./examples/by_library/diagnostics/processtimes_stopwatch/main.cpp) | * | Measure process CPU time with `platformstl::processtimes_stopwatch` | +| **stopwatch** | [by_library/diagnostics/stopwatch](./examples/by_library/diagnostics/stopwatch/main.cpp) | * | Measure elapsed wall time with `platformstl::stopwatch` | | | | | | -| **auto_buffer** | [by_library/memory/auto_buffer](./examples/by_library/memory/auto_buffer/main.cpp) | * | T.B.C. | -| **com_memory_functions** | [by_library/memory/com_memory_functions](./examples/by_library/memory/com_memory_functions/main.cpp) | Windows | T.B.C. | +| **auto_buffer** | [by_library/memory/auto_buffer](./examples/by_library/memory/auto_buffer/main.cpp) | * | Illustrates use of `stlsoft::auto_buffer` | +| **com_memory_functions** | [by_library/memory/com_memory_functions](./examples/by_library/memory/com_memory_functions/main.cpp) | Windows | Inspect COM task-allocator blocks with **COMSTL** memory helpers | | **heapwalk_sequence** | [by_library/memory/heapwalk_sequence](./examples/by_library/memory/heapwalk_sequence/main.cpp) | Windows | List heap allocations with `winstl::heapwalk_sequence` | | | | | | | **pid_sequence** | [by_library/system/pid_sequence](./examples/by_library/system/pid_sequence/main.cpp) | * | List process IDs with `platformstl::pid_sequence` | | | | | | -| **clipboard_format_sequence** | [by_library/windows_clipboard/clipboard_format_sequence](./examples/by_library/windows_clipboard/clipboard_format_sequence/main.cpp) | Windows | T.B.C. | -| **clipboard_scope** | [by_library/windows_clipboard/clipboard_scope](./examples/by_library/windows_clipboard/clipboard_scope/main.cpp) | Windows | T.B.C. | +| **clipboard_format_sequence** | [by_library/windows_clipboard/clipboard_format_sequence](./examples/by_library/windows_clipboard/clipboard_format_sequence/main.cpp) | Windows | Enumerate clipboard formats with `winstl::clipboard_format_sequence` | +| **clipboard_scope** | [by_library/windows_clipboard/clipboard_scope](./examples/by_library/windows_clipboard/clipboard_scope/main.cpp) | Windows | Open/set clipboard contents with `winstl::clipboard_scope` | | | | | | -| **windows_control_panel** | [by_library/windows_control_panel/windows_control_panel](./examples/by_library/windows_control_panel/windows_control_panel/main.cpp) | Windows | T.B.C. | +| **windows_control_panel** | [by_library/windows_control_panel/windows_control_panel](./examples/by_library/windows_control_panel/windows_control_panel/main.cpp) | Windows | Enumerate Control Panel applets with `winstl::applet_module` | | | | | | -| **enum_values** | [by_library/windows_registry/enum_values](./examples/by_library/windows_registry/enum_values/main.cpp) | Windows | T.B.C. | -| **registry_functions** | [by_library/windows_registry/registry_functions](./examples/by_library/windows_registry/registry_functions/main.cpp) | Windows | T.B.C. | +| **enum_values** | [by_library/windows_registry/enum_values](./examples/by_library/windows_registry/enum_values/main.cpp) | Windows | Enumerate registry values with `winstl::reg_value_sequence` | +| **registry_functions** | [by_library/windows_registry/registry_functions](./examples/by_library/windows_registry/registry_functions/main.cpp) | Windows | Read registry string values with `winstl::reg_get_string_value` | | | | | | -| **memory_functions** | [by_library/windows_shell/memory_functions](./examples/by_library/windows_shell/memory_functions/main.cpp) | Windows | T.B.C. | +| **memory_functions** | [by_library/windows_shell/memory_functions](./examples/by_library/windows_shell/memory_functions/main.cpp) | Windows | Allocate/free shell memory with **WinSTL** shell memory helpers | | | | | | | **module_sequence** | [by_library/windows_toolhelp/module_sequence](./examples/by_library/windows_toolhelp/module_sequence/main.cpp) | Windows | List process modules with `winstl::module_sequence` | | **process_sequence** | [by_library/windows_toolhelp/process_sequence](./examples/by_library/windows_toolhelp/process_sequence/main.cpp) | Windows | List processes with `winstl::process_sequence` | | | | | | -| **shell_functions** | [by_library/windows_shell/shell_functions](./examples/by_library/windows_shell/shell_functions/main.cpp) | Windows | T.B.C. | +| **shell_functions** | [by_library/windows_shell/shell_functions](./examples/by_library/windows_shell/shell_functions/main.cpp) | Windows | Browse for folders and related shell operations with **WinSTL** shell helpers | - From fc26b0664d50ed03d9f97fb7a2732aa364e7e3ed Mon Sep 17 00:00:00 2001 From: Matt Wilson Date: Fri, 31 Jul 2026 12:59:35 +1000 Subject: [PATCH 17/24] chore: enhanced **TODO.md** --- TODO.md | 46 +++++++++++++++++----------------------------- 1 file changed, 17 insertions(+), 29 deletions(-) diff --git a/TODO.md b/TODO.md index f956484f..7c3fe372 100644 --- a/TODO.md +++ b/TODO.md @@ -1,21 +1,21 @@ # STLSoft - TODO -> **NOTE**: some of the following are very old, stretching back even into the 2000s, so this list will be updated a lot over the coming months. The most glaring of these is to ensure compatiblity with C++-14/17/20 as is necessary. +> **NOTE**: some of the following are very old, stretching back even into the 2000s, so this list will be updated a lot over the coming months. The most glaring of these is to ensure compatibility with C++14/17/20/23/26 as is necessary. ## Table of Contents -* [Functional improvements](#functional-improvements) - * [Code changes (1.10.x)](#code-changes-110x) - * [Code changes (1.11.x)](#code-changes-111x) - * [Code changes (1.12+)](#code-changes-112) - * [abandoned TODOs](#abandoned-todos) -* [Performance improvements](#performance-improvements) -* [Packaging improvements](#packaging-improvements) - * [Administrative (1.10.x)](#administrative-110x) - * [Administrative (1.11.x)](#administrative-111x) - * [Building/executing automated tests (1.11.x)](#buildingexecuting-automated-tests-111x) - * [Administrative (1.12+)](#administrative-112) +- [Functional improvements](#functional-improvements) + - [Code changes (1.10.x)](#code-changes-110x) + - [Code changes (1.11.x)](#code-changes-111x) + - [Code changes (1.12+)](#code-changes-112) + - [abandoned TODOs](#abandoned-todos) +- [Performance improvements](#performance-improvements) +- [Packaging improvements](#packaging-improvements) + - [Administrative (1.10.x)](#administrative-110x) + - [Administrative (1.11.x)](#administrative-111x) + - [Building/executing automated tests (1.11.x)](#buildingexecuting-automated-tests-111x) + - [Administrative (1.12+)](#administrative-112) ## Functional improvements @@ -69,19 +69,7 @@ ### Code changes (1.12+) -* [ ] C++ 11/14/17/20/23/26 compatibility: - * [ ] C++ 11 compatibility: - * [ ] T.B.C.; - * [ ] C++ 14 compatibility: - * [ ] T.B.C.; - * [ ] C++ 17 compatibility: - * [ ] T.B.C.; - * [ ] C++ 20 compatibility: - * [ ] T.B.C.; - * [ ] C++ 23 compatibility: - * [ ] T.B.C.; - * [ ] C++ 26 compatibility: - * [ ] T.B.C.; +* [ ] C++ 11/14/17/20/23/26 compatibility — inventory remaining gaps and record concrete per-standard fixes here (partial work already tracked under **Code changes (1.11.x)**); * [ ] syslog in variadic templates, a la `winstl::output_debug_line()`; * [ ] Simple thread-pool (bring from **SS** work circa 2000); * [ ] include/*stl*/error => include/*stl*/diagnostics; @@ -115,7 +103,7 @@ ### Administrative (1.10.x) * [ ] GitHub README.md image features - version, build, etc; -* [ ] ~~STLSoft 1.10-related blog posts (focusing on new components); +* [ ] STLSoft 1.10-related blog posts (focusing on new components); * [ ] fix Doxygen build; * [x] ~~~CMake~~~ - ✅; @@ -126,10 +114,10 @@ * [ ] convert to https://github.com/synesissoftware/STLSoft; * [ ] take down https://github.com/synesissoftware/STLSoft-1.10-delta; * [ ] Documentation improvements; -* [ ] update the downloads on SourceForge; -* [ ] sort the SourceForge site; +* [-] ~~~update the downloads on SourceForge~~~ - ❌ (canonical distribution is now GitHub); +* [-] ~~~sort the SourceForge site~~~ - ❌ (canonical presence is now GitHub); * [ ] STLSoft 1.11-related blog posts (focusing on new components); -* [ ] Website - currenty http://stlsoft.org/ is *VERY* out of date; +* [ ] Website - currently http://stlsoft.org/ is *VERY* out of date; * [ ] Set-up donation; * [ ] Ensure all permutations (in below table) work; From 37c5c1f2fd5074a6c38c87c9055ec7a0bdad7705 Mon Sep 17 00:00:00 2001 From: Matt Wilson Date: Fri, 31 Jul 2026 13:01:16 +1000 Subject: [PATCH 18/24] chore: enhanced **KNOWN_ISSUES.md** --- KNOWN_ISSUES.md | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/KNOWN_ISSUES.md b/KNOWN_ISSUES.md index bab6274f..8fa47902 100644 --- a/KNOWN_ISSUES.md +++ b/KNOWN_ISSUES.md @@ -1,11 +1,15 @@ -# STLSoft - Known Issues: +# STLSoft - Known Issues -## STLSoft 1.11 Known Issues: -* The documentation is still lacking. This will be addressed in the release of 1.12. +## STLSoft 1.11 Known Issues -* Several `unixstl::system_traits` methods are declared but not defined, with the intention to flesh them out from Linux system calls (and have emulations/workarounds for other architectures). We're keen to see pull-requests on this. +* [ ] README library catalogue blurbs and deeper API documentation remain incomplete (see also [**TODO.md**](./TODO.md) and [**README.md**](./README.md)); further documentation work is planned for 1.12+; +* [ ] Several `unixstl::system_traits` methods are declared but not defined, with the intention to flesh them out from Linux system calls (and provide emulations/workarounds for other architectures); pull requests are welcome; - +## STLSoft 1.11 Suspected Issues + +* \ + + From f93868705e48a24a89a7acb88f3908c1b102e976 Mon Sep 17 00:00:00 2001 From: Matt Wilson Date: Fri, 31 Jul 2026 13:06:25 +1000 Subject: [PATCH 19/24] chore: miscellaneous project boilerplate improvements --- AUTHORS.md | 9 +++++---- FAQ.md | 25 ++++++++++++++----------- HOW_YOU_CAN_HELP.md | 33 +++++++++++++++------------------ INSTALL.md | 36 +++++++++++++++++++----------------- 4 files changed, 53 insertions(+), 50 deletions(-) diff --git a/AUTHORS.md b/AUTHORS.md index 24e7c058..d12fdfab 100644 --- a/AUTHORS.md +++ b/AUTHORS.md @@ -1,12 +1,13 @@ # STLSoft - Authors -## Major Contributors: -* Matt Wilson ([mwsis](https://github.com/mwsis)) - primary contributor of most of the libraries -* Pablo Aguilar - author of the Windows ToolHelp Library +## Major Contributors +* Matt Wilson ([mwsis](https://github.com/mwsis)) — primary contributor of most of the libraries; +* Pablo Aguilar — author of the Windows ToolHelp Library; -## Defect reports, fixes and suggestions (for which we are very grateful): + +## Defect reports, fixes and suggestions (for which we are very grateful) * Adi Shavit * Allan McLellan diff --git a/FAQ.md b/FAQ.md index 06f876d0..bc09e57c 100644 --- a/FAQ.md +++ b/FAQ.md @@ -1,7 +1,7 @@ # STLSoft - FAQ -The FAQ list is under (constant) development. If you post a question on the -Issues forum (https://github.com/synesissoftware/STLSoft/issues) +The FAQ list is under (constant) development. If you post a question on +[GitHub Issues](https://github.com/synesissoftware/STLSoft/issues) it will be used to create one. @@ -14,14 +14,16 @@ it will be used to create one. - [Q5: "Is STLSoft still relevant given the widespread support for 'Modern C++'?"](#q5-is-stlsoft-still-relevant-given-the-widespread-support-for-modern-c) - # FAQs: + ## Q1: "How do I build STLSoft?" -You don't! +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. -STLSoft is 100% header-only, so all you have to do is `#include` it. We do recommend that you use an environment variable, e.g. `STLSOFT`, so that you can use new versions of the library from your projects without disruption. +Building the project's own examples and tests is optional and is done via **CMake** (see [INSTALL.md](./INSTALL.md)). ## Q2: "How do I install STLSoft?" @@ -30,7 +32,7 @@ Basically, there are three ways: 1. As downloaded archive, using environment variables; 2. Cloning project, using environment variables; -3. Cloning project, installing via CMake; +3. Cloning project, installing via **CMake**; Option 3 is recommended. @@ -42,24 +44,25 @@ See [INSTALL.md](./INSTALL.md) for details of these options. Assuming you've installed it using environment variables (as per instructions in [Q2](#q2-how-do-i-install-stlsoft)), 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); +* 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`. ## Q4: "Does STLSoft have unit-tests?" -Yes, there are *many* such, but for various reasons they're not available with the STLSoft 1.10 distribution. When STLSoft 1.11 is released it will include unit-tests, which will likely be a mix of [**xTests**](https://github.com/synesissoftware/xTests) and [**Catch2**](https://github.com/catchorg/Catch2) unit-test libraries, both of which will be bundled with distributions. +Yes. The **1.11** tree includes a large suite of component- and unit-tests exercised via **CMake** / **CTest** and [**xTests**](https://github.com/synesissoftware/xTests). See [INSTALL.md](./INSTALL.md) for the first-time install ordering (**STLSoft** without tests → **xTests** → **STLSoft** with tests) that avoids a circular dependency. ## Q5: "Is STLSoft still relevant given the widespread support for 'Modern C++'?" -This is a good question. Over the remainder of 2023 and into 2024 we will be updating all the "Synesis" open-source libraries - including +This is a good question. The Synesis open-source libraries — including [**b64**](https://github.com/synesissoftware/b64), [**FastFormat**](https://github.com/synesissoftware/FastFormat), [**Pantheios**](https://github.com/synesissoftware/Pantheios), [**recls**](https://github.com/synesissoftware/recls), [**shwild**](https://github.com/synesissoftware/shwild), -and more - in light of 'Modern C++' and determining how well this can be achieved with standard C++ facilities alone. This will inform the future of **STLSoft**, which may be to invest much further effort into the exist 1.x stream or, perhaps, create a new 2.x stream that does not need to worry itself with the very extensive compiler-feature-detection and missing-feature-detection that comprises much of the current (1.x) **STLSoft** facilities. +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. - diff --git a/HOW_YOU_CAN_HELP.md b/HOW_YOU_CAN_HELP.md index 83cfa82b..e8d940c9 100644 --- a/HOW_YOU_CAN_HELP.md +++ b/HOW_YOU_CAN_HELP.md @@ -1,5 +1,6 @@ # STLSoft - How You Can Help + ## Table of Contents There are several ways in which you can help the **STLSoft** project: @@ -25,9 +26,9 @@ problem as you think is relevant, including: * the compiler you're using * the architecture and operating system you're targeting -* the version of STLSoft -* the version of other 3rd-party libraries, such as Boost, Loki, ... -* whether you're building using CMake, the provided makefiles, or via an IDE +* the version of **STLSoft** +* the version of other 3rd-party libraries, such as Boost, Loki, … +* whether you're building using **CMake**, the provided makefiles, or via an IDE * a section of the build output, including the warnings/errors involved @@ -48,38 +49,34 @@ Or provide your suggested work via a pull-request: ## Volunteer your help If you have any components you'd like to submit to the libraries, or you -would like to offer any other help, please get in contact. +would like to offer any other help, please open an issue or pull request at: -In particular, at the moment we're hoping to move to redevelop the STLSoft -website using MediaWiki and we'd be keen to hear from anyone who has skills -in this area (as we don't!) + https://github.com/synesissoftware/STLSoft ## Sponsor development If you value the diligence and effort that's gone into bringing you this -software, then: - - contact Matt Wilson via stlsoft@gmail.com +software, please get in contact via +https://www.synesis.com.au/contact.html +or email Matt Wilson at stlsoft@gmail.com. ## Write articles, blog-posts about your experiences -If you've written articles or blogged about STLSoft, let us know and we'll -list them on the website, at: - - http://www.stlsoft.org/ +If you've written articles or blogged about **STLSoft**, let us know (via +[GitHub Issues](https://github.com/synesissoftware/STLSoft/issues)) and we +may link to them from the project. If you haven't yet, please consider doing so. ## Help flesh out the Wikipedia page for STLSoft -Martin Moene has made a great start with the STLSoft Wikipedia page, but -there's lots more to be done. You can help out by updating the STLSoft -Wikipedia page at: +Martin Moene has made a great start with the **STLSoft** Wikipedia page, but +there's lots more to be done. You can help out by updating the page at: - http://en.wikipedia.org/wiki/STLSoft + https://en.wikipedia.org/wiki/STLSoft diff --git a/INSTALL.md b/INSTALL.md index d82f9f36..56308e56 100644 --- a/INSTALL.md +++ b/INSTALL.md @@ -1,4 +1,5 @@ -# STLSoft - Install +# STLSoft - Installation and Use + ## Table of Contents @@ -6,23 +7,23 @@ - [As downloaded archive, using environment variables](#as-downloaded-archive-using-environment-variables) - [Cloning project, using environment variables](#cloning-project-using-environment-variables) - [Cloning project, installing via CMake](#cloning-project-installing-via-cmake) -- [Use of environment variables in other open-source projects.](#use-of-environment-variables-in-other-open-source-projects) +- [Use of environment variables in other open-source projects](#use-of-environment-variables-in-other-open-source-projects) - [Understanding the top-level project build scripts](#understanding-the-top-level-project-build-scripts) -> **IMPORTANT**: If you are installing **STLSoft** for the **first time** and are opting for [Cloning project, installing via CMake](#cloning-project-installing-via-cmake), you **must** specify `-E` and `-T`, as describe in detail below. +> **IMPORTANT**: If you are installing **STLSoft** for the **first time** and are opting for [Cloning project, installing via CMake](#cloning-project-installing-via-cmake), you **must** specify `-E` and `-T`, as described in detail below. ## Installing -There are three options for installing **STLSoft**, depending on how you obtain it. +There are three options for installing **STLSoft**, depending on how you obtain it. The recommended way is to [clone and install via CMake](#cloning-project-installing-via-cmake). ### As downloaded archive, using environment variables -If you obtain the latest release as an archive, e.g. from the [STLSoft SourceForge project](https://sourceforge.net/projects/stlsoft/): +If you obtain the latest release as an archive from the [**STLSoft** GitHub Releases](https://github.com/synesissoftware/STLSoft/releases) page (legacy archives may also still appear on [SourceForge](https://sourceforge.net/projects/stlsoft/)): -1. Download the latest distribution, e.g. [**STLSoft-1.11.1-rc4.zip**](https://github.com/synesissoftware/STLSoft/releases/tag/1.11.1-rc4); +1. Download the latest distribution, e.g. [**STLSoft-1.11.1-rc4.zip**](https://github.com/synesissoftware/STLSoft/archive/refs/tags/1.11.1-rc4.zip); 2. Unzip it to a directory of your choice, as in: @@ -92,7 +93,7 @@ $ sudo cmake --install ${SIS_CMAKE_BUILD_DIR:-./_build} --config Release ---- -## Use of environment variables in other open-source projects. +## Use of environment variables in other open-source projects Unless you are certain that your projects, and all the projects upon which they depend, all use **STLSoft** via **CMake** then it is recommended that you define an `STLSOFT` environment variable. @@ -102,9 +103,9 @@ then you should set the environment variable `STLSOFT` to **/usr/local/stlsoft/STLSoft-1.11.1-rc4** in which case the file `stlsoft/stlsoft.h`, for example, will be located in `/usr/local/stlsoft/STLSoft-1.11.1-rc4/include/stlsoft/stlsoft.h`. -Conversely, if you're using **Windows** and you intall to +Conversely, if you're using **Windows** and you install to **C:\3pty\STLSoft\STLSoft-1.11.1-rc4** -then you should set the environment variable `STLSoft` to +then you should set the environment variable `STLSOFT` to **C:\3pty\STLSoft\STLSoft-1.11.1-rc4** in which case the file `stlsoft/stlsoft.h`, for example, will be located in `C:\3pty\STLSoft\STLSoft-1.11.1-rc4\include\stlsoft\stlsoft.h`. @@ -122,7 +123,7 @@ The makefiles / project files of several other open-source projects expect this | recls | https://github.com/synesissoftware/recls | | shwild | https://github.com/synesissoftware/shwild | | VOLE | https://github.com/synesissoftware/VOLE | -| xTests | https://github.com/synesissoftware/xtests | +| xTests | https://github.com/synesissoftware/xTests | **NOTE**: If you're using **STLSoft** on `UNIX`, you might want to apply `dos2unix` over all the files before using it. You *must* do this if you're using the **SunPro C compiler** - this action is carried out automatically, for example, by the **Pantheios** makefile(s). @@ -134,13 +135,14 @@ The makefiles / project files of several other open-source projects expect this This project comes with a number of scripts useful for building with **CMake**, as follows: -| Script | Purpose | -| ------------------------- | ------- | -| **prepare_cmake.sh** | Creates/reinitialises the **CMake** build script(s).

This is the primary script, and is used to generate all the **CMake** build artefacts. We recommend that you use the command as follows:

    `./prepare_cmake.sh -m -v`.

The flag `-m` executes a build upon successful generation completes, and the flag `-v` generates verbose makefile(s). Use `./prepare_cmake.sh --help` for further information. | -| **build_cmake.sh** | Executes **CMake**-generated artefacts to (re)build project.

Performs a (re)build, meaningful only once `prepare_cmake.sh` has been run once to generate all the **CMake** build artefacts.

Use `./build_cmake.sh --help` for further information. | -| **clean_cmake.sh** | Executes **CMake**-generated artefacts to clean project.

Performs a (re)build, meaningful only once `prepare_cmake.sh` has been run once to generate all the **CMake** build artefacts and a build has been run.

Use `./clean_cmake.sh --help` for further information. | -| **run_all_unit_tests.sh** | Runs all (matching) unit-test programs.

Performs a build and then recursively runs and executes all (excutable programs) matching the shell patterns `test_*` and `test.*`.

Use `./run_all_unit_tests.sh --help` for further information. | -| **remove_cmake_artefacts.sh** | Removes all known **CMake** artefacts.

Removes all known **CMake** build artefacts from the build directory (currently hard-coded to `./_build`) to prepare for complete regeneration using `prepare_cmake.sh`.

Use `./remove_cmake_artefacts.sh --help` for further information. | +| Script | Purpose | +| ------ | ------- | +| **prepare_cmake.sh** | Creates/reinitialises the **CMake** build script(s).

This is the primary script, and is used to generate all the **CMake** build artefacts. We recommend that you use the command as follows:

    `./prepare_cmake.sh -m -v`.

The flag `-m` executes a build upon successful generation, and the flag `-v` generates verbose makefile(s). Use `./prepare_cmake.sh --help` for further information. | +| **build_cmake.sh** | Executes **CMake**-generated artefacts to (re)build the project.

Meaningful only once `prepare_cmake.sh` has been run to generate the **CMake** build artefacts.

Use `./build_cmake.sh --help` for further information. | +| **clean_cmake.sh** | Executes **CMake**-generated artefacts to clean the project.

Meaningful only once `prepare_cmake.sh` has been run and a build has been run.

Use `./clean_cmake.sh --help` for further information. | +| **run_all_examples.sh** | Runs all (matching) example programs.

Performs a build and then recursively runs executables under the examples tree. See also [**EXAMPLES.md**](./EXAMPLES.md).

Use `./run_all_examples.sh --help` for further information. | +| **run_all_unit_tests.sh** | Runs all (matching) unit-test programs.

Performs a build and then recursively runs executable programs matching the shell patterns `test_*` and `test.*`.

Use `./run_all_unit_tests.sh --help` for further information. | +| **remove_cmake_artefacts.sh** | Removes all known **CMake** artefacts.

Removes known **CMake** build artefacts from the build directory (currently `./_build`) to prepare for complete regeneration using `prepare_cmake.sh`.

Use `./remove_cmake_artefacts.sh --help` for further information. | From 0f0fcf588ab1c1048b2b689bc4abb366d7423128 Mon Sep 17 00:00:00 2001 From: Matt Wilson Date: Fri, 31 Jul 2026 13:19:17 +1000 Subject: [PATCH 20/24] chore: canonicalised **README.md** --- README.md | 124 ++++++++++++++++++++++++++++++------------------------ 1 file changed, 69 insertions(+), 55 deletions(-) diff --git a/README.md b/README.md index 40e2414e..1443a6c2 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ -# STLSoft 1.11 +# STLSoft -*... robust, lightweight, cross-platform, template software ...* +… robust, lightweight, cross-platform, template software … ![C](https://img.shields.io/badge/C-00599C?style=flat&logo=c&logoColor=white) @@ -8,56 +8,58 @@ [![License](https://img.shields.io/badge/License-BSD_3--Clause-blue.svg)](https://opensource.org/licenses/BSD-3-Clause) [![GitHub release](https://img.shields.io/github/v/release/synesissoftware/STLSoft.svg)](https://github.com/synesissoftware/STLSoft/releases/latest) [![Last Commit](https://img.shields.io/github/last-commit/synesissoftware/STLSoft)](https://github.com/synesissoftware/STLSoft/commits/master) -[![CMake on multiple platforms](https://github.com/synesissoftware/STLSoft/actions/workflows/ci.yml/badge.svg)](https://github.com/synesissoftware/STLSoft/actions/workflows/ci.yml) +[![CI](https://github.com/synesissoftware/STLSoft/actions/workflows/ci.yml/badge.svg)](https://github.com/synesissoftware/STLSoft/actions/workflows/ci.yml) ## Table of Contents -* [Introduction](#introduction) -* [Installation](#installation) -* [Components](#components) - * [Subprojects](#subprojects) - * [Libraries](#libraries) -* [Examples](#examples) -* [Project Information](#project-information) - * [Where to get help](#where-to-get-help) - * [Contribution guidelines](#contribution-guidelines) - * [Dependencies](#dependencies) - * [Test-only dependencies](#test-only-dependencies) - * [Related projects](#related-projects) - * [License](#license) +- [Introduction](#introduction) +- [Installation](#installation) +- [Components](#components) + - [Subprojects](#subprojects) + - [Libraries](#libraries) +- [Examples](#examples) +- [Project Information](#project-information) + - [Where to get help](#where-to-get-help) + - [Contribution guidelines](#contribution-guidelines) + - [Dependencies](#dependencies) + - [Related projects](#related-projects) + - [License](#license) ## Introduction -**STLSoft** is a suite of C and C++ libraries that provides: +**STLSoft** is a suite of C and C++ libraries (currently the **1.11** line) that provides: + * STL extensions; -* General-purpose utility components; -* Facades over operating-system and technology-specific APIs. +* general-purpose utility components; +* facades over operating-system and technology-specific APIs; + +The overarching characteristic of **STLSoft** is that it is *lightweight*. Specifically, the libraries share the following characteristics: -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 are entirely defined within header files, so users need only `#include` the requisite files to access the functionality; +* **Intersecting Conformance** — similar, but not identical, components from different sub-projects (e.g. **UnixSTL** and **WinSTL**) are *structurally conformant* (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 `unixstl::filesystem_traits` and `winstl::filesystem_traits` provide `stat()` and `fstat()`, `lstat()` is provided only by the former; +* **Maximum Cohesion with Minimal Coupling** — achieved by extensive use of generalising mechanisms such as *shims*; e.g. types that manipulate character strings can interact with arbitrary string types, not just `char const*` and `std::string`; +* **Very High Efficiency** — along with *Robustness*, components are implemented with a view to maximum *Efficiency*, aided by efficient utility classes such as `stlsoft::auto_buffer` and `stlsoft::scoped_handle`; -* "**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` and `winstl::filesystem_traits` traits classes provide the `stat()` and `fstat()` operations, `lstat()` is provided only by the former; -* **Maximum Cohesion with Minimal Coupling** - achieved by extensive use of generalising mechanisms, such as "*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** - along with *Robustness*, all components in the libraries are implemented with a view to maximum _Efficiency_. This is aided by the extensive use of efficient utility classes, such as `stlsoft::auto_buffer` and `stlsoft::scoped_handle`; +**NOTE**: **STLSoft** is *not* a framework. Each library component is as thin as possible for its given function. The intent is that **STLSoft** components are used as building blocks for higher-level software — applications, classes, libraries, servers. **STLSoft** has been used extensively in all these guises. -**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. +Further reading: [FAQ.md](./FAQ.md), [INSTALL.md](./INSTALL.md), [http://www.stlsoft.org/](http://www.stlsoft.org/). ## Installation -There are three main ways to install **STLSoft**: +Detailed instructions — via **CMake**, and via environment variables (archive or clone) — are provided in the accompanying [INSTALL.md](./INSTALL.md) file, including an explanation of the top-level build scripts. -1. As downloaded archive, then using environment variables; -2. Cloning project, then using environment variables; -3. Cloning project, then installing via CMake; +In short, there are three main ways to install **STLSoft**: -Option 3 is recommended. +1. As a downloaded archive, then using environment variables; +2. Cloning the project, then using environment variables; +3. Cloning the project, then installing via **CMake**; -See [INSTALL.md](./INSTALL.md) for details of these options, and also for an explanation of the top-level build scripts in the project. +Option 3 is recommended. -> **IMPORTANT**: If you are installing **STLSoft** _for the first time_ you **must** do the **CMake**-based build step specifying that you do _not_ want to run tests - by specifying the flags `-E` and `-T` to **prepare_cmake.sh** - otherwise you will end up with a circular dependency on **xTests** (which depends on **STLSoft**). [INSTALL.md](./INSTALL.md) explains this in detail. +> **IMPORTANT**: If you are installing **STLSoft** *for the first time*, you **must** do the **CMake**-based prepare step specifying that you do *not* want to run tests — by passing the flags `-E` and `-T` to **prepare_cmake.sh** — otherwise you will hit a circular dependency on **xTests** (which depends on **STLSoft**). [INSTALL.md](./INSTALL.md) explains the full first-time ordering. ## Components @@ -71,8 +73,11 @@ The following significant sub-projects are provided: * **STLSoft** - general-purpose components and base-level features; * **ACESTL** - components to do with **ACE** framework; +* **ATLSTL** - components to do with **Active Template Library (ATL)**; * **COMSTL** - components to do with **Component Object Model (COM)**; +* **InetSTL** - components to do with **internet APIs**; * **MFCSTL** - components to do with **Microsoft Foundation Classes (MFC)**; +* **PlatformSTL** - components that provide platform-related elements, from **UnixSTL** or **WinSTL** as appropriate, according to structural conformance; * **UnixSTL** - components to do with **Unix** operating system APIs; * **WinSTL** - components to do with **Windows** operating system APIs; @@ -121,49 +126,58 @@ As **STLSoft** approaches an official release we will provide increasing informa ## Examples -Examples are provided in the ```examples``` directory, along with a markdown description for each. A detailed list TOC of them is provided in [EXAMPLES.md](./EXAMPLES.md). +Examples are provided in the `examples` directory, along with a markdown description for each. A detailed catalogue is in [EXAMPLES.md](./EXAMPLES.md). After a **CMake** build, `./run_all_examples.sh` exercises matching example programs (see [INSTALL.md](./INSTALL.md)). ## Project Information + ### Where to get help -[GitHub Page](https://github.com/synesissoftware/STLSoft "GitHub Page") +* [GitHub Page](https://github.com/synesissoftware/STLSoft); +* [GitHub Issues](https://github.com/synesissoftware/STLSoft/issues); +* [FAQ.md](./FAQ.md); +* [HOW_YOU_CAN_HELP.md](./HOW_YOU_CAN_HELP.md); +* [KNOWN_ISSUES.md](./KNOWN_ISSUES.md); +* [http://www.stlsoft.org/](http://www.stlsoft.org/); ### Contribution guidelines Defect reports, feature requests, and pull requests are welcome on https://github.com/synesissoftware/STLSoft. -If you'd like to help out with the project, please raise an issue via [GitHub Issues Page](https://github.com/synesissoftware/STLSoft/issues "GitHub Issues Page") - you'll be very welcome! +If you'd like to help out with the project, please raise an issue via [GitHub Issues](https://github.com/synesissoftware/STLSoft/issues) — you'll be very welcome! See also [HOW_YOU_CAN_HELP.md](./HOW_YOU_CAN_HELP.md). ### Dependencies -There are no dependencies for installation and use of **STLSoft**. - - -#### Test-only dependencies - -The component-/unit-tests depend on the **xTests** project: - -* [xTests](http://github.com/synesissoftware/xTests/) +| Dependency | Role | Required? | +| ---------- | ---- | --------- | +| — | Installation and use of **STLSoft** (100% header-only) | ✅ None | +| [**xTests**](https://github.com/synesissoftware/xTests) | Component- / unit-tests (`BUILD_TESTING`) | ⚪ Tests only | ### Related projects -Projects that depend on **STLSoft** - though for some it is only for test - include: - -* [**b64**](https://github.com/synesissoftware/b64) -* [**cstring**](https://github.com/synesissoftware/cstring) -* [**Diagnosticism**](https://github.com/synesissoftware/Diagnosticism) -* [**FastFormat**](https://github.com/synesissoftware/FastFormat) -* [**libpath**](https://github.com/synesissoftware/libpath) -* [**Pantheios**](https://github.com/synesissoftware/Pantheios) -* [**recls**](https://github.com/synesissoftware/recls) -* [**shwild**](https://github.com/synesissoftware/shwild) -* [**UNIXem**](https://github.com/synesissoftware/UNIXem) -* [**xTests**](https://github.com/synesissoftware/xTests) +Projects that depend on **STLSoft** — though for some it is only for tests — include: + +* [**2be**](https://github.com/synesissoftware/2be) (tests only); +* [**b64**](https://github.com/synesissoftware/b64) (C++ API only); +* [**CLASP**](https://github.com/synesissoftware/CLASP); +* [**cstring**](https://github.com/synesissoftware/cstring) (tests only); +* [**Diagnosticism**](https://github.com/synesissoftware/Diagnosticism) (tests only); +* [**FastFormat**](https://github.com/synesissoftware/FastFormat); +* [**libCLImate**](https://github.com/synesissoftware/libCLImate); +* [**libpath**](https://github.com/synesissoftware/libpath) (tests only); +* [**Pantheios**](https://github.com/synesissoftware/Pantheios); +* [**Pantheios.Extras.DiagUtil**](https://github.com/synesissoftware/Pantheios.Extras.DiagUtil); +* [**Pantheios.Extras.Main**](https://github.com/synesissoftware/Pantheios.Extras.Main); +* [**Pantheios.Extras.xHelpers**](https://github.com/synesissoftware/Pantheios.Extras.xHelpers); +* [**recls**](https://github.com/synesissoftware/recls); +* [**shwild**](https://github.com/synesissoftware/shwild) (C++ API only); +* [**UNIXem**](https://github.com/synesissoftware/UNIXem); +* [**VOLE**](https://github.com/synesissoftware/VOLE) (tests only); +* [**xTests**](https://github.com/synesissoftware/xTests); ### License From 5980cfc89eb7288cd67386782a332d621d0b5111 Mon Sep 17 00:00:00 2001 From: Matt Wilson Date: Fri, 31 Jul 2026 13:35:00 +1000 Subject: [PATCH 21/24] chore: fleshed out projects/libraries in **README.md** --- KNOWN_ISSUES.md | 2 +- README.md | 93 ++++++++++++++++++++++++------------------------- 2 files changed, 46 insertions(+), 49 deletions(-) diff --git a/KNOWN_ISSUES.md b/KNOWN_ISSUES.md index 8fa47902..0f098a12 100644 --- a/KNOWN_ISSUES.md +++ b/KNOWN_ISSUES.md @@ -3,7 +3,7 @@ ## STLSoft 1.11 Known Issues -* [ ] README library catalogue blurbs and deeper API documentation remain incomplete (see also [**TODO.md**](./TODO.md) and [**README.md**](./README.md)); further documentation work is planned for 1.12+; +* [ ] Deeper API documentation beyond the README Components catalogue remains incomplete (see also [**TODO.md**](./TODO.md)); further documentation work is planned for 1.12+; * [ ] Several `unixstl::system_traits` methods are declared but not defined, with the intention to flesh them out from Linux system calls (and provide emulations/workarounds for other architectures); pull requests are welcome; diff --git a/README.md b/README.md index 1443a6c2..5a8d8319 100644 --- a/README.md +++ b/README.md @@ -64,64 +64,61 @@ Option 3 is recommended. ## Components -The components in **STLSoft** are provided in _sub-projects_, and in _libraries_. +The components in **STLSoft** are organised as *sub-projects* (technology / platform facets) that share *libraries* (functional areas). Many libraries appear in more than one sub-project with *intersecting conformance* — for example **filesystem** and **dl** under **PlatformSTL**, **UnixSTL**, and **WinSTL**. ### Subprojects The following significant sub-projects are provided: -* **STLSoft** - general-purpose components and base-level features; -* **ACESTL** - components to do with **ACE** framework; -* **ATLSTL** - components to do with **Active Template Library (ATL)**; -* **COMSTL** - components to do with **Component Object Model (COM)**; -* **InetSTL** - components to do with **internet APIs**; -* **MFCSTL** - components to do with **Microsoft Foundation Classes (MFC)**; -* **PlatformSTL** - components that provide platform-related elements, from **UnixSTL** or **WinSTL** as appropriate, according to structural conformance; -* **UnixSTL** - components to do with **Unix** operating system APIs; -* **WinSTL** - components to do with **Windows** operating system APIs; +* **STLSoft** — general-purpose components and base-level features, such as `stlsoft::auto_buffer<>`, `stlsoft::scoped_handle<>`, and `STLSOFT_ASSERT()`; +* **ACESTL** — components for the **ACE** framework, such as `acestl::message_queue_sequence<>`; +* **ATLSTL** — components for the **Active Template Library (ATL)**, such as `atlstl::get_MemberValue()`; +* **COMSTL** — components for the **Component Object Model (COM)**, such as `comstl::interface_cast` and `comstl::enumerator_sequence<>`; +* **InetSTL** — components for internet APIs, such as `inetstl::session` and `inetstl::ftpdir_sequence`; +* **MFCSTL** — components for the **Microsoft Foundation Classes (MFC)**, such as `mfcstl::CArray_cadaptor<>`; +* **PlatformSTL** — platform-selected facades over **UnixSTL** or **WinSTL** (by structural conformance), such as `platformstl::readdir_sequence` and `platformstl::stopwatch`; +* **UnixSTL** — components for **Unix** operating-system APIs, such as `unixstl::glob_sequence` and `unixstl::dl_call()`; +* **WinSTL** — components for **Windows** operating-system APIs, such as `winstl::clipboard_scope` and `winstl::findfile_sequence`; ### Libraries -The significant libraries include: - -* **algorithms** - T.B.C. -* **automation** - T.B.C. -* **clipboard** - T.B.C. -* **collections** - T.B.C. -* **containers** - general- and special-purpose containers, such as `stlsoft::frequency_map<>`; -* **controls** - T.B.C. -* **conversion** - T.B.C. -* **diagnostics** - T.B.C. -* **dl** - dynamic-library loading and invocation (for both **Unix** and **Windows**); -* **filesystem** - T.B.C. -* **function_adaptors** - T.B.C. -* **functional** - T.B.C. -* **iterator** - T.B.C. -* **locale** - T.B.C. -* **memory** - T.B.C. -* **meta** - T.B.C. -* **network** - T.B.C. -* **performance** - T.B.C. -* **process** - T.B.C. -* **quality** - T.B.C. -* **reactor** - T.B.C. -* **registry** - T.B.C. -* **resource** - T.B.C. -* **security** - T.B.C. -* **shell** - T.B.C. -* **shims** - T.B.C. -* **smartptr** - T.B.C. -* **speech** - T.B.C. -* **string** - T.B.C. -* **synch** - T.B.C. -* **system** - T.B.C. -* **time** - T.B.C. -* **typelib** - T.B.C. -* **view** - T.B.C. - -As **STLSoft** approaches an official release we will provide increasing information on the above _sub-projects_ and _libraries_. +The significant libraries include (examples are illustrative, not exhaustive): + +* **algorithms** — POD and unordered-sequence algorithms, such as `stlsoft::pod_copy_n()` and `stlsoft::find_first_duplicate()`; +* **automation** — **ATL** Automation property and enumerator helpers, such as `atlstl::get_MemberValue()`; +* **clipboard** — Windows clipboard RAII and enumeration, such as `winstl::clipboard_scope`; +* **collections** — sequence and veneer adaptors (arrays, COM enumerators, ACE queues, MFC containers), such as `stlsoft::array_view<>` and `comstl::enumerator_sequence<>`; +* **containers** — general- and special-purpose containers, such as `stlsoft::frequency_map<>` and `stlsoft::unicode_point_map`; +* **controls** — STL sequences over Win32 common controls, such as `winstl::listview_sequence`; +* **conversion** — casts and converters, such as `stlsoft::sap_cast<>()`, `stlsoft::format_bytes()`, and `comstl::interface_cast`; +* **diagnostics** — stopwatches, timing histograms, and debug emitters, such as `platformstl::stopwatch` and `stlsoft::doomgram`; +* **dl** — dynamic-library loading and invocation (**Unix** and **Windows**), such as `platformstl::dl_module` and `winstl::dl_call()`; +* **filesystem** — directory/glob sequences, paths, and mapped files, such as `platformstl::readdir_sequence`, `unixstl::glob_sequence`, and `platformstl::memory_mapped_file`; +* **functional** — function/method adaptors and predicates, such as `stlsoft::noop_function`; +* **iterator** — output and transforming iterators, such as `stlsoft::FILE_iterator` and `stlsoft::string_concatenator_iterator`; +* **locale** — scoped C locale changes, such as `stlsoft::locale_scope`; +* **memory** — buffers and allocators, such as `stlsoft::auto_buffer<>` and `comstl::task_allocator<>`; +* **meta** — compile-time type traits and selectors, such as `stlsoft::is_same_type<>`; +* **network** — internet/ACE session and connection facades, such as `inetstl::session` and `inetstl::connection`; +* **performance** — performance counters (often aliased to platform stopwatches), such as `platformstl::performance_counter`; +* **process** — Windows process-creation helpers, such as `winstl::create_process()`; +* **quality** — contract-enforcement and coverage macros, such as `STLSOFT_COVER_MARK_LINE()`; +* **reactor** — **ACE** reactor custom-event handling, such as `acestl::custom_event_handler`; +* **registry** — Windows registry keys, values, and sequences, such as `winstl::reg_key` and `winstl::reg_value_sequence`; +* **resource** — Windows resource-loading helpers, such as `winstl::load_custom_resource()`; +* **security** — COM/Win security initialisation and token/ACL views, such as `comstl::CoInitSecurity()` and `winstl::token_information<>`; +* **shell** — Windows Shell helpers, such as `winstl::browse_for_folder()`; +* **shims** — generalising access, attribute, and logical shims (overloads across sub-projects), such as `stlsoft::c_str_ptr()` and `stlsoft::get_ptr()`; +* **smartptr** — scoped and reference-counted handles, such as `stlsoft::scoped_handle<>` and `stlsoft::ref_ptr<>`; +* **speech** — lightweight SAPI helpers, such as `comstl::sapi_speak()`; +* **string** — lightweight strings, views, and tokenisers, such as `stlsoft::basic_simple_string<>` and `stlsoft::string_tokeniser<>`; +* **synch** — mutexes, spin locks, and lock scopes, such as `platformstl::thread_mutex` and `stlsoft::lock_scope<>`; +* **system** — environment, home directory, and process-id sequences, such as `platformstl::home_directory` and `platformstl::pid_sequence`; +* **time** — time formatting and comparison helpers, such as `stlsoft::fast_strftime()`; +* **typelib** — COM type-library helpers, such as `comstl::TypeInfo_resource_scope`; +* **view** — transforming views, such as `stlsoft::member_selector_view<>`; ## Examples From 902c3001812847b7c1fdb1aea98d4810bc622ddc Mon Sep 17 00:00:00 2001 From: Matt Wilson Date: Fri, 31 Jul 2026 14:47:49 +1000 Subject: [PATCH 22/24] test: added test to exercise issue with `stlsoft::simple_string` --- .../entry.cpp | 20 ++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/test/unit/stlsoft/string/test.unit.stlsoft.string.simple_string/entry.cpp b/test/unit/stlsoft/string/test.unit.stlsoft.string.simple_string/entry.cpp index 3132b8b4..e80f1dac 100644 --- a/test/unit/stlsoft/string/test.unit.stlsoft.string.simple_string/entry.cpp +++ b/test/unit/stlsoft/string/test.unit.stlsoft.string.simple_string/entry.cpp @@ -4,7 +4,7 @@ * Purpose: Unit-tests for `stlsoft::basic_simple_string`. * * Created: 4th November 2008 - * Updated: 20th March 2025 + * Updated: 31st July 2026 * * ////////////////////////////////////////////////////////////////////// */ @@ -1225,6 +1225,24 @@ static void test_resize() XTESTS_TEST_INTEGER_EQUAL(3u, s.size()); XTESTS_TEST_MULTIBYTE_STRING_EQUAL("abc", s); } + + // Grow a non-empty string past its current capacity (exercises the + // realloc path that previously over-read the source buffer). + { + string_t s("abcdef"); + + XTESTS_TEST_BOOLEAN_FALSE(s.empty()); + XTESTS_TEST_INTEGER_EQUAL(6u, s.size()); + XTESTS_TEST_MULTIBYTE_STRING_EQUAL("abcdef", s); + + s.resize(1000u, '~'); + + XTESTS_TEST_BOOLEAN_FALSE(s.empty()); + XTESTS_TEST_INTEGER_EQUAL(1000u, s.size()); + XTESTS_TEST_MULTIBYTE_STRING_EQUAL_N("abcdef", s, 6); + XTESTS_TEST_CHARACTER_EQUAL('~', s[6]); + XTESTS_TEST_CHARACTER_EQUAL('~', s[999]); + } } #ifndef USE_std_string From b3af8cd7bd8566349decb1bc5b73cce43838a7ee Mon Sep 17 00:00:00 2001 From: Matt Wilson Date: Fri, 31 Jul 2026 14:57:55 +1000 Subject: [PATCH 23/24] =?UTF-8?q?fix:=20`stlsoft::basic=5Fsimple=5Fstring#resize()`=20=E2=80=94=20expanding=20a=20non-empty=20string=20?= =?UTF-8?q?no=20longer=20over-reads=20the=20source=20buffer=20(MinGW=20uni?= =?UTF-8?q?t-test=20segfault=20in=20**test.unit.stlsoft.string.simple=5Fst?= =?UTF-8?q?ring**)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- include/stlsoft/string/simple_string.hpp | 51 +++++++++++++++++++----- 1 file changed, 41 insertions(+), 10 deletions(-) diff --git a/include/stlsoft/string/simple_string.hpp b/include/stlsoft/string/simple_string.hpp index 4cc51426..8b74beb0 100644 --- a/include/stlsoft/string/simple_string.hpp +++ b/include/stlsoft/string/simple_string.hpp @@ -4,7 +4,7 @@ * Purpose: basic_simple_string class template. * * Created: 19th March 1993 - * Updated: 20th March 2025 + * Updated: 31st July 2026 * * Home: http://stlsoft.org/ * @@ -54,8 +54,8 @@ #ifndef STLSOFT_DOCUMENTATION_SKIP_SECTION # define STLSOFT_VER_STLSOFT_STRING_HPP_SIMPLE_STRING_MAJOR 4 # define STLSOFT_VER_STLSOFT_STRING_HPP_SIMPLE_STRING_MINOR 8 -# define STLSOFT_VER_STLSOFT_STRING_HPP_SIMPLE_STRING_REVISION 3 -# define STLSOFT_VER_STLSOFT_STRING_HPP_SIMPLE_STRING_EDIT 284 +# define STLSOFT_VER_STLSOFT_STRING_HPP_SIMPLE_STRING_REVISION 4 +# define STLSOFT_VER_STLSOFT_STRING_HPP_SIMPLE_STRING_EDIT 285 #endif /* !STLSOFT_DOCUMENTATION_SKIP_SECTION */ @@ -3902,16 +3902,47 @@ basic_simple_string::resize( { if (len < cch) { - /* Expand the string, using self-assignemt. */ - assign(c_str(), cch); + /* Ensure storage for cch characters (+ nul), preserving the + * existing len characters. Note: must NOT use assign(c_str(), + * cch) — that would copy cch characters from a source of only + * len characters (heap over-read). + */ - traits_type::assign(char_pointer_from_member_pointer_(m_buffer) + len, cch - len, ch); - } + if (ss_nullptr_k == m_buffer) + { + m_buffer = alloc_buffer_(ss_nullptr_k, cch, 0); + } + else + { + string_buffer* const buffer = string_buffer_from_member_pointer_(m_buffer); - string_buffer* buffer = string_buffer_from_member_pointer_(m_buffer); + if (cch >= buffer->capacity) + { + member_pointer const new_buffer = alloc_buffer_(buffer->contents, cch, len); + + destroy_buffer_(m_buffer); + + m_buffer = new_buffer; + } + } - buffer->length = cch; - buffer->contents[buffer->length] = traits_type::to_char_type(0); + if (ss_nullptr_k != m_buffer) + { + traits_type::assign(char_pointer_from_member_pointer_(m_buffer) + len, cch - len, ch); + + string_buffer* const buffer = string_buffer_from_member_pointer_(m_buffer); + + buffer->length = cch; + buffer->contents[buffer->length] = traits_type::to_char_type(0); + } + } + else + { + string_buffer* const buffer = string_buffer_from_member_pointer_(m_buffer); + + buffer->length = cch; + buffer->contents[buffer->length] = traits_type::to_char_type(0); + } } STLSOFT_ASSERT(is_valid()); From cc8185b04763f6872707c7b49e458dad90aeba97 Mon Sep 17 00:00:00 2001 From: Matt Wilson Date: Fri, 31 Jul 2026 15:42:29 +1000 Subject: [PATCH 24/24] 1.11.1-rc5 --- CHANGES.md | 13 +++++++++++++ INSTALL.md | 18 +++++++++--------- NEWS.md | 5 +++-- include/stlsoft/stlsoft.h | 5 +++-- test/unit/test.unit.versions/entry.cpp | 4 ++-- 5 files changed, 30 insertions(+), 15 deletions(-) diff --git a/CHANGES.md b/CHANGES.md index 13e06dc5..d88a26e3 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -1,6 +1,19 @@ # **STLSoft** Changes +## 1.11.1-rc5 - 2nd August 2026 + +* Fixed `stlsoft::basic_simple_string<>#resize()` — expanding a non-empty string no longer over-reads the source buffer (MinGW unit-test segfault in **test.unit.stlsoft.string.simple_string**); +* Converted **CHANGES.txt** to **CHANGES.md** and removed **HISTORY.md**; +* Project documentation modernisation — **README.md**, **FAQ.md**, **INSTALL.md**, **EXAMPLES.md**, **KNOWN_ISSUES.md**, **TODO.md**, **HOW_YOU_CAN_HELP.md**, **AUTHORS.md**; repository URLs **STLSoft-1.11** → **STLSoft**; +* **EXAMPLES.md** — replaced “T.B.C.” placeholders with concrete summaries; +* **README.md** — fleshed out Components (sub-projects / libraries); CI badge targets **ci.yml**; badge set standardised; +* CI (**ci.yml**) — concurrency cancel-in-progress; branch triggers include **dev** / **rc*** / **update**; matrix cell order; +* CMake — minimum version **3.20**; **BUILD_TESTING** option; project homepage URL; patch/revision version regex; +* Project boilerplate — **.gitattributes**, **.vimrc**, **.vscode/settings.json**; +* **test.unit.versions** — aligned with **1.11.1-rc5** (**_STLSOFT_VER_1_11_1_RC5**); + + ## 1.11.1-rc4 - 29th July 2026 * Added GitHub Actions CI (**.github/workflows/ci.yml**) on macOS, Linux, and Windows with **clang**, **gcc**, **MinGW**, and **Visual C++** (**cl**); diff --git a/INSTALL.md b/INSTALL.md index 56308e56..05a3e629 100644 --- a/INSTALL.md +++ b/INSTALL.md @@ -23,17 +23,17 @@ There are three options for installing **STLSoft**, depending on how you obtain If you obtain the latest release as an archive from the [**STLSoft** GitHub Releases](https://github.com/synesissoftware/STLSoft/releases) page (legacy archives may also still appear on [SourceForge](https://sourceforge.net/projects/stlsoft/)): -1. Download the latest distribution, e.g. [**STLSoft-1.11.1-rc4.zip**](https://github.com/synesissoftware/STLSoft/archive/refs/tags/1.11.1-rc4.zip); +1. Download the latest distribution, e.g. [**STLSoft-1.11.1-rc5.zip**](https://github.com/synesissoftware/STLSoft/archive/refs/tags/1.11.1-rc5.zip); 2. Unzip it to a directory of your choice, as in: ```bash $ mkdir -p ~/open-source $ cd ~/open-source -$ unzip STLSoft-1.11.1-rc4.zip +$ unzip STLSoft-1.11.1-rc5.zip ``` -3. Define an environment variable `STLSOFT`, whose value is the directory in which you unzipped it, e.g. `STLSOFT=~/open-source/STLSoft-1.11.1-rc4`, and then specify `$(STLSOFT)/include` (**UNIX**) or `%STLSOFT%\include` (**Windows**) in your project files and makefiles; +3. Define an environment variable `STLSOFT`, whose value is the directory in which you unzipped it, e.g. `STLSOFT=~/open-source/STLSoft-1.11.1-rc5`, and then specify `$(STLSOFT)/include` (**UNIX**) or `%STLSOFT%\include` (**Windows**) in your project files and makefiles; ### Cloning project, using environment variables @@ -98,16 +98,16 @@ $ sudo cmake --install ${SIS_CMAKE_BUILD_DIR:-./_build} --config Release Unless you are certain that your projects, and all the projects upon which they depend, all use **STLSoft** via **CMake** then it is recommended that you define an `STLSOFT` environment variable. For example, if you're using **UNIX** and you install to -**/usr/local/stlsoft/STLSoft-1.11.1-rc4** +**/usr/local/stlsoft/STLSoft-1.11.1-rc5** then you should set the environment variable `STLSOFT` to -**/usr/local/stlsoft/STLSoft-1.11.1-rc4** -in which case the file `stlsoft/stlsoft.h`, for example, will be located in `/usr/local/stlsoft/STLSoft-1.11.1-rc4/include/stlsoft/stlsoft.h`. +**/usr/local/stlsoft/STLSoft-1.11.1-rc5** +in which case the file `stlsoft/stlsoft.h`, for example, will be located in `/usr/local/stlsoft/STLSoft-1.11.1-rc5/include/stlsoft/stlsoft.h`. Conversely, if you're using **Windows** and you install to -**C:\3pty\STLSoft\STLSoft-1.11.1-rc4** +**C:\3pty\STLSoft\STLSoft-1.11.1-rc5** then you should set the environment variable `STLSOFT` to -**C:\3pty\STLSoft\STLSoft-1.11.1-rc4** -in which case the file `stlsoft/stlsoft.h`, for example, will be located in `C:\3pty\STLSoft\STLSoft-1.11.1-rc4\include\stlsoft\stlsoft.h`. +**C:\3pty\STLSoft\STLSoft-1.11.1-rc5** +in which case the file `stlsoft/stlsoft.h`, for example, will be located in `C:\3pty\STLSoft\STLSoft-1.11.1-rc5\include\stlsoft\stlsoft.h`. The makefiles / project files of several other open-source projects expect this symbol, including: diff --git a/NEWS.md b/NEWS.md index 5d1aead3..5a98c667 100644 --- a/NEWS.md +++ b/NEWS.md @@ -3,9 +3,10 @@ | Date | News Item | | --------------------- | --------------------------------------------------------- | +| 2nd August 2026 | Release of [STLSoft 1.11.1 (release candidate 5)](https://github.com/synesissoftware/STLSoft/releases/tag/1.11.1-rc5) | | 29th July 2026 | Release of [STLSoft 1.11.1 (release candidate 4)](https://github.com/synesissoftware/STLSoft/releases/tag/1.11.1-rc4) | -| 23rd August 2025 | Release of [STLSoft 1.11.1 (release candidate 3)](https://github.com/synesissoftware/STLSoft-1.11/releases/tag/1.11.1-rc3) | -| 31st May 2025 | Release of [STLSoft 1.11.1 (release candidate 2)](https://github.com/synesissoftware/STLSoft-1.11/releases/tag/1.11.1-rc2) | +| 23rd August 2025 | Release of [STLSoft 1.11.1 (release candidate 3)](https://github.com/synesissoftware/STLSoft/releases/tag/1.11.1-rc3) | +| 31st May 2025 | Release of [STLSoft 1.11.1 (release candidate 2)](https://github.com/synesissoftware/STLSoft/releases/tag/1.11.1-rc2) | | 6th May 2025 | Release of STLSoft 1.11.1 (release candidate 1) | | 5th May 2025 | Release of STLSoft 1.11.1-beta9 | | 3rd May 2025 | Release of STLSoft 1.11.1-beta8 | diff --git a/include/stlsoft/stlsoft.h b/include/stlsoft/stlsoft.h index 5d0693bc..4e7c3ccc 100644 --- a/include/stlsoft/stlsoft.h +++ b/include/stlsoft/stlsoft.h @@ -5,7 +5,7 @@ * and platform discriminations, and definitions of types. * * Created: 15th January 2002 - * Updated: 1st July 2026 + * Updated: 2nd August 2026 * * Home: http://stlsoft.org/ * @@ -389,12 +389,13 @@ # define _STLSOFT_VER_1_11_1_RC2 0x010b01c2 /*!< Version 1.11.1 rc 2 (31st May 2025) */ # define _STLSOFT_VER_1_11_1_RC3 0x010b01c3 /*!< Version 1.11.1 rc 3 (23rd August 2025) */ # define _STLSOFT_VER_1_11_1_RC4 0x010b01c4 /*!< Version 1.11.1 rc 4 (1st July 2026) */ +# define _STLSOFT_VER_1_11_1_RC5 0x010b01c5 /*!< Version 1.11.1 rc 5 (2nd August 2026) */ #endif /* !STLSOFT_DOCUMENTATION_SKIP_SECTION */ #define _STLSOFT_VER_MAJOR 1 #define _STLSOFT_VER_MINOR 11 #define _STLSOFT_VER_PATCH 1 -#define _STLSOFT_VER_ALPHABETA 0xc4 +#define _STLSOFT_VER_ALPHABETA 0xc5 #define _STLSOFT_VER \ (0\ diff --git a/test/unit/test.unit.versions/entry.cpp b/test/unit/test.unit.versions/entry.cpp index 2c002dbb..048bd9ed 100644 --- a/test/unit/test.unit.versions/entry.cpp +++ b/test/unit/test.unit.versions/entry.cpp @@ -4,7 +4,7 @@ * Purpose: Unit-tests for versions * * Created: 23rd August 2025 - * Updated: 1st July 2026 + * Updated: 2nd August 2026 * * ////////////////////////////////////////////////////////////////////// */ @@ -114,7 +114,7 @@ namespace { static void TEST__STLSOFT_VER() { - TEST_INT_EQ(_STLSOFT_VER_1_11_1_RC4, _STLSOFT_VER); + TEST_INT_EQ(_STLSOFT_VER_1_11_1_RC5, _STLSOFT_VER); } static void TEST__PLATFORMSTL_VER() {