General Utility Library for C++14: Main Page (original) (raw)
Introduction
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:
- String Utilities
- Concurrency Utilities
- Date & Time Utilities
- Statistics Utilities
- Debugging Utilities
- Numeric Utilities
- Bit Manipulation and Testing
- Containers
- GSL Excerpts
- Metaprogramming Utilities and Type Traits
- Standard Library Backports
- Unit Tests
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.
Usage
To use the library:
- Include the main header file gul14/gul.h (or read more under How to Include GUL14 Headers).
- Link your code against the library (-lgul14).
- If you are on Windows, see Using GUL on Windows.
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.
Installation
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 https://github.com/gul-cpp/gul14.git.
Contributing
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
Version
Copyright