A collection of useful C++ routines.
Go to file
2018-08-04 15:14:06 +10:00
algo relicense under MPL-2.0 2018-08-04 15:14:06 +10:00
alloc relicense under MPL-2.0 2018-08-04 15:14:06 +10:00
coord relicense under MPL-2.0 2018-08-04 15:14:06 +10:00
debug/gdb debug/gdb/printers: add a pretty printer for 'view' 2018-08-03 16:49:47 +10:00
doc doc: add noise documentation stubs 2016-02-02 10:36:42 +11:00
encode relicense under MPL-2.0 2018-08-04 15:14:06 +10:00
fixup/experimental relicense under MPL-2.0 2018-08-04 15:14:06 +10:00
geom relicense under MPL-2.0 2018-08-04 15:14:06 +10:00
hash relicense under MPL-2.0 2018-08-04 15:14:06 +10:00
job relicense under MPL-2.0 2018-08-04 15:14:06 +10:00
maths relicense under MPL-2.0 2018-08-04 15:14:06 +10:00
memory relicense under MPL-2.0 2018-08-04 15:14:06 +10:00
parallel relicense under MPL-2.0 2018-08-04 15:14:06 +10:00
posix relicense under MPL-2.0 2018-08-04 15:14:06 +10:00
rand relicense under MPL-2.0 2018-08-04 15:14:06 +10:00
roots relicense under MPL-2.0 2018-08-04 15:14:06 +10:00
test relicense under MPL-2.0 2018-08-04 15:14:06 +10:00
thread relicense under MPL-2.0 2018-08-04 15:14:06 +10:00
time relicense under MPL-2.0 2018-08-04 15:14:06 +10:00
tools relicense under MPL-2.0 2018-08-04 15:14:06 +10:00
tuple relicense under MPL-2.0 2018-08-04 15:14:06 +10:00
types relicense under MPL-2.0 2018-08-04 15:14:06 +10:00
win32 relicense under MPL-2.0 2018-08-04 15:14:06 +10:00
.gitignore gitignore: add pretty printer python cache 2018-03-29 14:16:55 +11:00
.gitlab-ci.yml gitlab-ci: ensure python3 is installed for testing 2018-07-24 16:19:43 +10:00
.gitmodules build: don't include cmake modules in this repository 2018-07-24 16:16:53 +10:00
abnf.rl uri: extract grammar into contained ragel file 2017-12-20 12:45:05 +11:00
adapter.cpp relicense under MPL-2.0 2018-08-04 15:14:06 +10:00
adapter.hpp relicense under MPL-2.0 2018-08-04 15:14:06 +10:00
annotation.hpp relicense under MPL-2.0 2018-08-04 15:14:06 +10:00
ascii.hpp relicense under MPL-2.0 2018-08-04 15:14:06 +10:00
backtrace_execinfo.cpp relicense under MPL-2.0 2018-08-04 15:14:06 +10:00
backtrace_null.cpp relicense under MPL-2.0 2018-08-04 15:14:06 +10:00
backtrace_stackwalk.cpp relicense under MPL-2.0 2018-08-04 15:14:06 +10:00
backtrace_win32.cpp relicense under MPL-2.0 2018-08-04 15:14:06 +10:00
backtrace.hpp relicense under MPL-2.0 2018-08-04 15:14:06 +10:00
bezier1.cpp relicense under MPL-2.0 2018-08-04 15:14:06 +10:00
bezier2.cpp relicense under MPL-2.0 2018-08-04 15:14:06 +10:00
bezier3.cpp relicense under MPL-2.0 2018-08-04 15:14:06 +10:00
bezier.cpp relicense under MPL-2.0 2018-08-04 15:14:06 +10:00
bezier.hpp relicense under MPL-2.0 2018-08-04 15:14:06 +10:00
bitwise.cpp relicense under MPL-2.0 2018-08-04 15:14:06 +10:00
bitwise.hpp relicense under MPL-2.0 2018-08-04 15:14:06 +10:00
cast.hpp relicense under MPL-2.0 2018-08-04 15:14:06 +10:00
CMakeLists.txt json: move json code to external module 2018-08-04 15:02:06 +10:00
cmdopt.cpp relicense under MPL-2.0 2018-08-04 15:14:06 +10:00
cmdopt.hpp relicense under MPL-2.0 2018-08-04 15:14:06 +10:00
colour.cpp relicense under MPL-2.0 2018-08-04 15:14:06 +10:00
colour.hpp relicense under MPL-2.0 2018-08-04 15:14:06 +10:00
coord.hpp relicense under MPL-2.0 2018-08-04 15:14:06 +10:00
COPYING relicense under MPL-2.0 2018-08-04 15:14:06 +10:00
cpp.cpp relicense under MPL-2.0 2018-08-04 15:14:06 +10:00
cpp.hpp relicense under MPL-2.0 2018-08-04 15:14:06 +10:00
cpuid_x86.cpp relicense under MPL-2.0 2018-08-04 15:14:06 +10:00
cpuid_x86.hpp relicense under MPL-2.0 2018-08-04 15:14:06 +10:00
cpuid.cpp cpuid: add initial trivial CPUID queries 2018-03-18 17:29:44 +11:00
cpuid.hpp relicense under MPL-2.0 2018-08-04 15:14:06 +10:00
debug_posix.cpp relicense under MPL-2.0 2018-08-04 15:14:06 +10:00
debug_win32.cpp relicense under MPL-2.0 2018-08-04 15:14:06 +10:00
debug.cpp relicense under MPL-2.0 2018-08-04 15:14:06 +10:00
debug.hpp relicense under MPL-2.0 2018-08-04 15:14:06 +10:00
Doxyfile.in doc: improve naive doxygen support 2016-02-26 17:04:54 +11:00
endian.cpp relicense under MPL-2.0 2018-08-04 15:14:06 +10:00
endian.hpp relicense under MPL-2.0 2018-08-04 15:14:06 +10:00
exe_freebsd.cpp exe: split into platform units 2016-10-10 16:23:07 +11:00
exe_linux.cpp relicense under MPL-2.0 2018-08-04 15:14:06 +10:00
exe_win32.cpp relicense under MPL-2.0 2018-08-04 15:14:06 +10:00
exe.hpp relicense under MPL-2.0 2018-08-04 15:14:06 +10:00
extent.cpp relicense under MPL-2.0 2018-08-04 15:14:06 +10:00
extent.hpp relicense under MPL-2.0 2018-08-04 15:14:06 +10:00
fixed.cpp relicense under MPL-2.0 2018-08-04 15:14:06 +10:00
fixed.hpp relicense under MPL-2.0 2018-08-04 15:14:06 +10:00
float.cpp relicense under MPL-2.0 2018-08-04 15:14:06 +10:00
float.hpp relicense under MPL-2.0 2018-08-04 15:14:06 +10:00
format.cpp.rl relicense under MPL-2.0 2018-08-04 15:14:06 +10:00
format.hpp relicense under MPL-2.0 2018-08-04 15:14:06 +10:00
fourcc.cpp relicense under MPL-2.0 2018-08-04 15:14:06 +10:00
fourcc.hpp relicense under MPL-2.0 2018-08-04 15:14:06 +10:00
functor.hpp relicense under MPL-2.0 2018-08-04 15:14:06 +10:00
gcc.hpp relicense under MPL-2.0 2018-08-04 15:14:06 +10:00
hash.hpp relicense under MPL-2.0 2018-08-04 15:14:06 +10:00
introspection.cpp relicense under MPL-2.0 2018-08-04 15:14:06 +10:00
introspection.hpp relicense under MPL-2.0 2018-08-04 15:14:06 +10:00
io_posix.cpp relicense under MPL-2.0 2018-08-04 15:14:06 +10:00
io_posix.hpp relicense under MPL-2.0 2018-08-04 15:14:06 +10:00
io_win32.cpp relicense under MPL-2.0 2018-08-04 15:14:06 +10:00
io_win32.hpp relicense under MPL-2.0 2018-08-04 15:14:06 +10:00
io.cpp relicense under MPL-2.0 2018-08-04 15:14:06 +10:00
io.hpp relicense under MPL-2.0 2018-08-04 15:14:06 +10:00
iterator.hpp relicense under MPL-2.0 2018-08-04 15:14:06 +10:00
kmeans.hpp relicense under MPL-2.0 2018-08-04 15:14:06 +10:00
libcruft-util-inline.pc.in pkg-config: remove erroneous boost build flags 2016-10-11 20:51:19 +11:00
libcruft-util-system.pc.in pkg-config: remove erroneous boost build flags 2016-10-11 20:51:19 +11:00
library_posix.cpp relicense under MPL-2.0 2018-08-04 15:14:06 +10:00
library_posix.hpp relicense under MPL-2.0 2018-08-04 15:14:06 +10:00
library_win32.cpp relicense under MPL-2.0 2018-08-04 15:14:06 +10:00
library_win32.hpp relicense under MPL-2.0 2018-08-04 15:14:06 +10:00
library.hpp relicense under MPL-2.0 2018-08-04 15:14:06 +10:00
log.cpp relicense under MPL-2.0 2018-08-04 15:14:06 +10:00
log.hpp relicense under MPL-2.0 2018-08-04 15:14:06 +10:00
maths.cpp relicense under MPL-2.0 2018-08-04 15:14:06 +10:00
maths.hpp relicense under MPL-2.0 2018-08-04 15:14:06 +10:00
matrix2.cpp relicense under MPL-2.0 2018-08-04 15:14:06 +10:00
matrix3.cpp relicense under MPL-2.0 2018-08-04 15:14:06 +10:00
matrix4.cpp relicense under MPL-2.0 2018-08-04 15:14:06 +10:00
matrix.cpp relicense under MPL-2.0 2018-08-04 15:14:06 +10:00
matrix.hpp relicense under MPL-2.0 2018-08-04 15:14:06 +10:00
nocopy.hpp relicense under MPL-2.0 2018-08-04 15:14:06 +10:00
parse.cpp relicense under MPL-2.0 2018-08-04 15:14:06 +10:00
parse.hpp relicense under MPL-2.0 2018-08-04 15:14:06 +10:00
pascal.cpp relicense under MPL-2.0 2018-08-04 15:14:06 +10:00
pascal.hpp relicense under MPL-2.0 2018-08-04 15:14:06 +10:00
platform.hpp relicense under MPL-2.0 2018-08-04 15:14:06 +10:00
point.cpp relicense under MPL-2.0 2018-08-04 15:14:06 +10:00
point.hpp relicense under MPL-2.0 2018-08-04 15:14:06 +10:00
pointer.hpp relicense under MPL-2.0 2018-08-04 15:14:06 +10:00
polynomial.cpp relicense under MPL-2.0 2018-08-04 15:14:06 +10:00
polynomial.hpp relicense under MPL-2.0 2018-08-04 15:14:06 +10:00
pool.cpp relicense under MPL-2.0 2018-08-04 15:14:06 +10:00
pool.hpp relicense under MPL-2.0 2018-08-04 15:14:06 +10:00
preprocessor.py preprocessor: use a script to create map/reduce 2017-09-12 14:17:30 +10:00
quaternion.cpp relicense under MPL-2.0 2018-08-04 15:14:06 +10:00
quaternion.hpp relicense under MPL-2.0 2018-08-04 15:14:06 +10:00
random.cpp relicense under MPL-2.0 2018-08-04 15:14:06 +10:00
random.hpp relicense under MPL-2.0 2018-08-04 15:14:06 +10:00
range.cpp relicense under MPL-2.0 2018-08-04 15:14:06 +10:00
range.hpp relicense under MPL-2.0 2018-08-04 15:14:06 +10:00
rational.cpp relicense under MPL-2.0 2018-08-04 15:14:06 +10:00
rational.hpp relicense under MPL-2.0 2018-08-04 15:14:06 +10:00
README.adoc README: consolidate README files 2018-06-05 09:35:33 +10:00
region.cpp relicense under MPL-2.0 2018-08-04 15:14:06 +10:00
region.hpp relicense under MPL-2.0 2018-08-04 15:14:06 +10:00
rfc3986.rl rfc3986: don't enforce actions for rules 2017-12-26 17:34:08 +11:00
sarray.cpp relicense under MPL-2.0 2018-08-04 15:14:06 +10:00
sarray.hpp relicense under MPL-2.0 2018-08-04 15:14:06 +10:00
scoped.hpp relicense under MPL-2.0 2018-08-04 15:14:06 +10:00
si.cpp relicense under MPL-2.0 2018-08-04 15:14:06 +10:00
si.hpp relicense under MPL-2.0 2018-08-04 15:14:06 +10:00
signal.cpp relicense under MPL-2.0 2018-08-04 15:14:06 +10:00
signal.hpp relicense under MPL-2.0 2018-08-04 15:14:06 +10:00
singleton.hpp relicense under MPL-2.0 2018-08-04 15:14:06 +10:00
stats.cpp relicense under MPL-2.0 2018-08-04 15:14:06 +10:00
stats.hpp relicense under MPL-2.0 2018-08-04 15:14:06 +10:00
std.hpp relicense under MPL-2.0 2018-08-04 15:14:06 +10:00
stream.cpp relicense under MPL-2.0 2018-08-04 15:14:06 +10:00
stream.hpp relicense under MPL-2.0 2018-08-04 15:14:06 +10:00
string.cpp relicense under MPL-2.0 2018-08-04 15:14:06 +10:00
string.hpp relicense under MPL-2.0 2018-08-04 15:14:06 +10:00
stringid.cpp relicense under MPL-2.0 2018-08-04 15:14:06 +10:00
stringid.hpp relicense under MPL-2.0 2018-08-04 15:14:06 +10:00
strongdef.cpp relicense under MPL-2.0 2018-08-04 15:14:06 +10:00
strongdef.hpp relicense under MPL-2.0 2018-08-04 15:14:06 +10:00
tap.cpp relicense under MPL-2.0 2018-08-04 15:14:06 +10:00
tap.hpp relicense under MPL-2.0 2018-08-04 15:14:06 +10:00
term.cpp relicense under MPL-2.0 2018-08-04 15:14:06 +10:00
term.hpp relicense under MPL-2.0 2018-08-04 15:14:06 +10:00
time_posix.cpp relicense under MPL-2.0 2018-08-04 15:14:06 +10:00
time_win32.cpp relicense under MPL-2.0 2018-08-04 15:14:06 +10:00
time.cpp relicense under MPL-2.0 2018-08-04 15:14:06 +10:00
time.hpp relicense under MPL-2.0 2018-08-04 15:14:06 +10:00
typeidx.cpp relicense under MPL-2.0 2018-08-04 15:14:06 +10:00
typeidx.hpp relicense under MPL-2.0 2018-08-04 15:14:06 +10:00
types.hpp relicense under MPL-2.0 2018-08-04 15:14:06 +10:00
uri.cpp.rl build: update for gcc-8.1 warnings 2018-05-03 18:32:08 +10:00
uri.hpp relicense under MPL-2.0 2018-08-04 15:14:06 +10:00
utf8.cpp relicense under MPL-2.0 2018-08-04 15:14:06 +10:00
utf8.hpp relicense under MPL-2.0 2018-08-04 15:14:06 +10:00
variadic.cpp relicense under MPL-2.0 2018-08-04 15:14:06 +10:00
variadic.hpp relicense under MPL-2.0 2018-08-04 15:14:06 +10:00
vector.cpp relicense under MPL-2.0 2018-08-04 15:14:06 +10:00
vector.hpp relicense under MPL-2.0 2018-08-04 15:14:06 +10:00
version.cpp.rl debug: don't rely on format for output 2018-05-10 12:44:03 +10:00
version.hpp relicense under MPL-2.0 2018-08-04 15:14:06 +10:00
view.cpp relicense under MPL-2.0 2018-08-04 15:14:06 +10:00
view.hpp relicense under MPL-2.0 2018-08-04 15:14:06 +10:00
zlib.cpp relicense under MPL-2.0 2018-08-04 15:14:06 +10:00
zlib.hpp relicense under MPL-2.0 2018-08-04 15:14:06 +10:00

== libcruft-util

A simple cross-platform C++ utility library.

Supported compilers: >=clang-5.x, >=gcc7.x; specifically, we require cxx17 features such as structured bindings which aren't present in older compilers. No attempt has been made to compile under MSVC.

=== Environment Variables

The following variables can be defined at runtime to change the library behaviour.

DEBUG:: whether to initialise basic debugging features at load time. the value is irrelevant; the test is for whether the variable is defined.
DEBUG_WAIT:: whether to wait for a debugger to attach before executing `main`.

LOG_LEVEL:: minimum log level that will render to the logging stream. note that a given level may have been compiled out and may not be present, eg. DEBUG tends to only be present for debug builds.
BREAK_LEVEL:: minimum log level that will trigger a breakpoint

JOB_THREADS:: default number of threads to spin up for job queues.
JOB_DEPTH:: the default size of the pending work item queue for a job queue.

Ideally one would not resort to using these variables, but they may make debugging a little easier in some circumstances.