Extended string support for Turbo C++.
Find a file
2025-06-27 14:42:02 +02:00
.vscode License under the Apache License version 2.0; Fix bounds checking in 'turbo_string::substr' and 'turbo_string::turbo_string(turbo_string const&, size_t, size_t)'; Update VS Code configuration; Fix 'operator <<(ostream&, turbo_string const&)' not returning stream; 2025-06-17 15:52:37 +02:00
INCLUDE Update readme; Implement more functions; Update tests; Fix 'string::rbegin' and 'string::rend' being inverted; Make all iterators random-accessible; Add 'base' method to reverse iterators; Fix semi-balanced string comparisons; Refactor code; 2025-06-27 14:42:02 +02:00
SRC Update readme; Implement more functions; Update tests; Fix 'string::rbegin' and 'string::rend' being inverted; Make all iterators random-accessible; Add 'base' method to reverse iterators; Fix semi-balanced string comparisons; Refactor code; 2025-06-27 14:42:02 +02:00
.gitattributes Add gitignore; Add readme; Add makefile; Add gitattributes; Add VS Code configuration; Add initial 'turbo_string' class; 2025-06-16 21:53:39 +02:00
.gitignore Add gitignore; Add readme; Add makefile; Add gitattributes; Add VS Code configuration; Add initial 'turbo_string' class; 2025-06-16 21:53:39 +02:00
DOCS.TXT Revert header back to 'tstring.h'; Update readme; Include 'string.h' header in 'tstring.h'; Support including 'tstring.h' from C; Add 'iterator', 'const_iterator', 'reverse_iterator', and 'const_reverse_iterator' type definitions to 'string'; Add 'begin', 'end', 'rbegin', and 'rend' methods to 'string'; Implement more functions; Make use of function inlining; Refactor code; Fix missing null terminators in multiple instances; Fix memory leak in assignements; 2025-06-26 22:32:02 +02:00
LICENCE.TXT License under the Apache License version 2.0; Fix bounds checking in 'turbo_string::substr' and 'turbo_string::turbo_string(turbo_string const&, size_t, size_t)'; Update VS Code configuration; Fix 'operator <<(ostream&, turbo_string const&)' not returning stream; 2025-06-17 15:52:37 +02:00
README.TXT Update readme; Implement more functions; Update tests; Fix 'string::rbegin' and 'string::rend' being inverted; Make all iterators random-accessible; Add 'base' method to reverse iterators; Fix semi-balanced string comparisons; Refactor code; 2025-06-27 14:42:02 +02:00

        TURBOSTRING

TurboString is a library for backporting C++98 strings to Turbo C++ 3.0 for IBM
PC-compatible machines.

(See bottom of document for a changelog).

This library aims to mostly implement the interfaces of the `std::basic_string`
class, per ISO/IEC 14882:1998, although with the following caveats:

- Namespaces are inlined;
- Only the `std::string` instance is implemented;
- Generic associated type definitions (e.g. `size_type`) are removed;
- `reverse_iterator` and `const_reverse_iterator` are not instances of `std::reverse_iterator`;
- All occurences of `bool` are replaced with `int`, and, conversely,
- All occurences of `false` and `true` are replaced with "zero" and "non-zero,"
  respectively;
- All exception throws are replaced with calls to `abort`, and
- All exception catches are removed.

Features or behaviour from any applicable defect reports are adherred to, including:

- LWG issue #534 "Missing basic_string members" : Add `pop_back`, `back`, and
  `front` methods;
- LWG issue #755 "std::vector and std:string lack explicit shrink-to-fit opera-
  tions" : Add `shrink_to_fit` method.

        SYSTEM REQUIREMENTS

- Turbo C++ 3.0 or compatible compiler;
- Intel 8086 or compatible core;
- PC-DOS or compatible system.

        DOWNLOAD

TurboString is officially hosted on the Mandelbrot Set at:

<https://mandelbrot.dk/bjoernager/turbostring.git>

The following mirrors are options as well:

- Codeberg: <https://codeberg.org/bjoernager/turbostring.git>
- GitLab:   <https://gitlab.com/bjoernager/turbostring.git>

Note: TurboString uses Git as its SCM in all official mirrors.

        ACKNOWLEDGEMENTS

TurboString is copyright (c) 2025 Gabriel Bjoernager Jensen.

TurboString is licensed under the Apache License, Version 2.0. See the file
`LICENCE.TXT` for more information.

SPDX: Apache-2.0

        CHANGELOG

    0.5.0

- Update readme
- Implement more functions
- Update tests
- Fix `string::rbegin` and `string::rend` being inverted
- Make all iterators random-accessible
- Add `base` method to reverse iterators
- Fix semi-balanced string comparisons
- Refactor code

    0.4.0

- Revert header back to `tstring.h`
- Update readme
- Include `string.h` header in `tstring.h`
- Support including `tstring.h` from C
- Add `iterator`, `const_iterator`, `reverse_iterator`, and `const_reverse_iterator` type definitions to `string`
- Add `begin`, `end`, `rbegin`, and `rend` methods to `string`
- Implement more functions
- Make use of function inlining
- Refactor code
- Fix missing null terminators in multiple instances
- Fix memory leak in assignements

    0.3.0

- Update readme
- Add global `getline` function
- Rename `turbo_string` to `string`
- Add documentations file
- Rename `tstring.h` header to `tstring/string.h`

    0.2.1

- Update readme
- Reformat changelog
- Implement more functions
- Update tests
- Fix `operator =` implementations not updating length
- Fix memory leak in `operator =`
- Fix bogus copy constructor
- Fix default constructor not initialising capacity

    0.2.0

_ License under the Apache License version 2.0
- Fix bounds checking in `turbo_string::substr` and `turbo_string::turbo_string(
  turbo_string const&, size_t, size_t)`
- Update VS Code configuration
- Fix `operator <<(ostream&, turbo_string const&)` not returning stream

    0.1.0

- Implement more functions
- Update tests
- Update readme

    0.0.0

- Add gitignore
- Add readme
- Add makefile
- Add gitattributes
- Add VS Code configuration
- Add initial `turbo_string` class