Skip to content

Rconybea/xo-flatstring

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ebbe45e · May 9, 2025

History

57 Commits
Apr 25, 2024
Apr 25, 2024
Apr 25, 2024
Apr 18, 2024
May 9, 2025
Apr 28, 2024
Apr 16, 2024
May 1, 2024
Apr 17, 2024
Apr 25, 2024

Repository files navigation

flatstring library

Fixed-length no-allocation string implementation.

Features:

  • char array representation with maximum size set at compile time.
  • compile time construction from char array and string concatenation
  • pointer-free implementation, instances can be used as template arguments
  • To the extent practical, provides the same api as std::string: includes iterators, access methods, assignment, conversion operators.

Limitations:

  • requires c++20
  • not resizable.
  • does not support wide characters.
  • (asof April 2024) missing features: insert, erase, push_back, append, replace, find, compare, starts_with, ends_with, contains, substr.

Documentation

Getting started

Install dependencies

Clone xo-flatstring

$ cd ~/proj  # for example
$ git clone https://github.com/rconybea/xo-flatstring

build + install

$ cd xo-flatstring
$ mkdir .build
$ PREFIX=/usr/local   # for example
$ cmake -DCMAKE_INSTALL_PREFIX=${PREFIX} -B .build
$ cmake --build .build
$ cmake --install .build

build documentation

$ cd xo-flatstring
$ cmake --build .build -- docs

Must invoke docs target explicitly to prepare documentation When complete, point local browser to xo-flatstring/.build/docs/sphinx/index.html

build with test coverage

$ cd xo-flatstring
$ mkdir .build-ccov
$ cmake -DCMAKE_INSTALL_PREFIX=$PREFIX -DCMAKE_BUILD_TYPE=coverage -B .build-ccov
$ cmake --build .build-ccov

run coverage-enabled unit tests

$ cmake --build .build-ccov -- test

generate html+text coverage report

$ cmake --build .build-ccov -- ccov

For html test coverage browse to .build-ccov/ccov/html/index.html

install documentation only, along with test-coverage report

$ cmake --install .build-ccov --component Documentation

LSP support

$ cd xo-flatstring
$ ln -s .build/compile_commands.json

Releases

No releases published

Packages

No packages published