summaryrefslogtreecommitdiffstats
path: root/README.md
blob: 65129adc724fa40cfdb7f9d5b7ce358d72ec6a68 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
# stdplus

stdplus is a c++ project containing commonly used classes and functions
for the Linux platform. Note the goals of this project are to implement only
the minimum set of features needed by the OpenBMC project and other users. You
may find the included set of functions currently quite sparse.

This project provides the following primitives:
* A [movable](src/stdplus/handle/managed.hpp) and [copyable](src/stdplus/handle/copyable.hpp) RAII helper wrapper which is used for wrapping c-native types that have custom destruction or copy reference logic.
* [Functions](src/stdplus/signal.hpp) for trivially configuring signals without having to do the normal signal set operations from libc
* [C-Style Error Handler](src/stdplus/util/cexec.hpp) that wrap c-style functions which return errnos and negative error values into functions that throw c++ exceptions.
* [String Utilities](src/stdplus/util/string.hpp) that focus on providing helpful wrappers like efficient string append and concatenation.

## Dependencies

Test cases require google{test,mock}, valgrind, and lcov. It also requires the Meson Build System which can be installed following the instructions at [mesonbuild.com](https://mesonbuild.com/Getting-meson.html).

## Building
For a standard release build, you want something like:
```
meson setup -Dexamples=false -Dtests=disabled builddir
ninja -C builddir
ninja -C builddir install
```

For a test / debug build, a typical configuration is
```
meson setup -Dtests=enabled builddir
meson test -C builddir
```
OpenPOWER on IntegriCloud