Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/openbmc/stdplus


https://github.com/openbmc/stdplus

Last synced: about 10 hours ago
JSON representation

Awesome Lists containing this project

README

        

# 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:

```sh
meson setup -Dexamples=false -Dtests=disabled builddir
ninja -C builddir
ninja -C builddir install
```

For a test / debug build, a typical configuration is

```sh
meson setup -Dtests=enabled builddir
meson test -C builddir
```