General Utility Library for C++14  2.9
General Utility Library for C++14 Documentation


The General Utility Library for C++14 (GUL14) contains often-used utility functions and types that form the foundation for other libraries and programs. The main fields covered by the library are:

To keep the library useful for as many users as possible, special-purpose code has no place in it. Specifically, the library includes:

  • Only code that is potentially useful for a wide range of C++ projects
  • No external dependencies except for the C++ and C standard libraries

We strive for a very high quality level. To ensure this, we follow a list of Quality Standards.

Who Is Using GUL14?

GUL14 was developed at the German national particle accelerator laboratory DESY. It was originally meant to provide a modern and well-tested foundation for the DOOCS control system which drives most of the lab's accelerators. It is still used mainly in this role, but has since spread to many unrelated projects as well. At some point we decided to publish it on GitHub to make collaboration outside the lab easier.


To use the library:

All functions and classes are enclosed in the namespace gul14.

GUL14 requires at least C++14. It works fine with newer versions of the standard, but uses its own backport types (e.g. gul14::string_view) in function interfaces.


If you are using the vcpkg package manager, you can install the library simply by running:

vcpkg install gul14

Otherwise, you may have to build and install it manually. Have a look at the readme file on GitHub.

Obtaining the Source Code

You can browse or clone the source code at


Bug reports and feature requests are always welcome and highly appreciated. So are pull requests, but they should fit into the scope of the library – it may be better to discuss new features in a GitHub issue before diving into the implementation.

Behind the Scenes

Release Notes
General Utility Library Contributors