Skip to content

Latest commit

 

History

History
188 lines (147 loc) · 7.09 KB

cpp.rst

File metadata and controls

188 lines (147 loc) · 7.09 KB
tocdepth:1
.. index:: pair: C++; language

DRYlib for C++

.. only:: html

   .. contents::
      :local:
      :backlinks: entry
      :depth: 2

Getting Started

Prerequisites

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

Installation

TODO

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

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

.. seealso::

   `Changelog <https://github.com/dryproject/drylib.cpp/blob/master/CHANGES.rst>`__ on GitHub
      The comprehensive version history and release notes for DRYlib for C++.

   `Arto's Notes re: C++ <http://ar.to/notes/cxx>`__
      Miscellaneous notes on C++.

   `Boost <https://en.wikipedia.org/wiki/Boost_(C%2B%2B_libraries)>`__
      A set of general utility libraries for C++.

   `Dlib <https://en.wikipedia.org/wiki/Dlib>`__
      A general purpose cross-platform C++ library.

   `Threading Building Blocks (TBB) <https://en.wikipedia.org/wiki/Threading_Building_Blocks>`__
      Intel's C++ template library for parallel programming on multi-core processors.