DRYlib for C++

Getting Started

Prerequisites

  • a C++17 compiler (Clang or GCC recommended)

Library Usage

#include "drylib.hpp"

using namespace dry;

Design Principles

  • All exported public symbols are namespaced with dry::.

Caveats

  • Some core DRYlib type names are reserved words in C++, even when namespaced (specifically, bool, char, float, and int). For consistency, we nonetheless define type aliases for them, with an added underscore suffix to make these legal symbols (e.g., dry::bool_). In generated code, the consistent type aliases will be used; in your own code, you can naturally use whichever names you prefer (bool or dry::bool), as the types in question are identical. And in case you prefer using namespace dry, the distinction becomes moot altogether.

Naming

  • Unary predicate functions are named in the usual is_foobar() pattern that you would expect (as described in the Introduction), with the exception that predicates named empty? are translated into empty() instead of is_empty(). This is in keeping with the C++ standard library naming.

Reference

Modules

DRY C++
base <dry.hpp> (header file)
bits TODO
code N/A
crypto TODO
data TODO
ffi TODO
geo TODO
io TODO
lang TODO
logic TODO
math <dry/math.hpp> (header file)
media TODO
meta <dry/meta.hpp> (header file)
net TODO
qty TODO
std TODO
sys TODO
text <dry/text.hpp> (header file)
text/ascii <dry/text/ascii.hpp> (header file)
text/printf <dry/text/printf.hpp> (header file)
text/utf8 <dry/text/utf8.hpp> (header file)
time TODO
util TODO

Module base

DRY C++
bool dry::bool_ (type alias for bool)
char dry::char_ (type alias for std::uint32_t)
complex dry::complex (struct)
float dry::float_ (type alias for double)
float32 dry::float32 (type alias for float)
float64 dry::float64 (type alias for double)
int dry::int_ (type alias for long)
int8 dry::int8 (type alias for std::int8_t)
int16 dry::int16 (type alias for std::int16_t)
int32 dry::int32 (type alias for std::int32_t)
int64 dry::int64 (type alias for std::int64_t)
int128 dry::int128 (type alias for __int128)
integer dry::integer (struct)
natural dry::natural (type alias dry::integer)
rational dry::rational (struct)
real dry::real (struct)
word dry::word (type alias for std::uint64_t or std::uint32_t)
word8 dry::word8 (type alias for std::uint8_t)
word16 dry::word16 (type alias for std::uint16_t)
word32 dry::word32 (type alias for std::uint32_t)
word64 dry::word64 (type alias for std::uint64_t)

Module math

DRY C++
TODO TODO

Module meta

DRY C++
TODO TODO

Module text

DRY C++
TODO TODO

See Also

See also

Changelog on GitHub
The comprehensive version history and release notes for DRYlib for C++.
Arto’s Notes re: C++
Miscellaneous notes on C++.
Boost
A set of general utility libraries for C++.
Dlib
A general purpose cross-platform C++ library.
Threading Building Blocks (TBB)
Intel’s C++ template library for parallel programming on multi-core processors.