A collection of useful C++ routines.
Go to file
Danny Robson 09aa86f55f crypto: remove cryptography primitives
This code can now be found in libcruft-crypto. It was removed to prevent
people relying on it, and to improve test iteration times in unoptimised
builds.
2018-01-14 17:13:21 +11:00
algo build: don't use './' as an include prefix 2017-11-22 16:49:37 +11:00
alloc Merge branch 'master' into coord 2017-11-23 17:24:11 +11:00
coord Merge remote-tracking branch 'origin/master' 2018-01-10 17:19:39 +11:00
doc
encode Merge remote-tracking branch 'origin/master' 2018-01-10 17:19:39 +11:00
fixup/experimental build: don't use './' as an include prefix 2017-11-22 16:49:37 +11:00
geom Merge branch 'master' into coord 2017-11-23 17:24:11 +11:00
hash crypto: remove cryptography primitives 2018-01-14 17:13:21 +11:00
job job/queue: make single argument constructor explicit 2017-08-24 17:53:27 +10:00
json hash: use a consistency, less flexible, interface 2018-01-13 15:24:12 +11:00
json2 json2: initial 'jsonish' support 2017-10-05 11:44:37 +11:00
memory m/b/circular: add pointer rebalancing operation 2017-12-30 13:39:42 +11:00
posix p/socket: correctly iterate through name lookups 2017-12-30 13:40:04 +11:00
rand build: don't use './' as an include prefix 2017-11-22 16:49:37 +11:00
roots use nested namespace declarations 2017-01-05 15:06:49 +11:00
test crypto: remove cryptography primitives 2018-01-14 17:13:21 +11:00
time hash: use a consistency, less flexible, interface 2018-01-13 15:24:12 +11:00
tools crypto: remove cryptography primitives 2018-01-14 17:13:21 +11:00
types hash: use a consistency, less flexible, interface 2018-01-13 15:24:12 +11:00
win32 except: move posix/win32 exceptions to own units 2017-12-19 18:18:10 +11:00
.gitignore preprocessor: use a script to create map/reduce 2017-09-12 14:17:30 +10:00
abnf.rl uri: extract grammar into contained ragel file 2017-12-20 12:45:05 +11:00
adapter.cpp
adapter.hpp adapter: add make_reverse for reverse adapter 2017-08-21 16:51:03 +10:00
annotation.hpp
ascii.hpp Merge remote-tracking branch 'origin/master' 2018-01-10 17:19:39 +11:00
backtrace_execinfo.cpp Merge branch 'master' into coord 2017-11-23 17:24:11 +11:00
backtrace_null.cpp
backtrace_stackwalk.cpp except: move posix/win32 exceptions to own units 2017-12-18 15:46:52 +11:00
backtrace_win32.cpp except: move posix/win32 exceptions to own units 2017-12-18 15:46:52 +11:00
backtrace.hpp
bezier1.cpp build: don't use './' as an include prefix 2017-11-22 16:49:37 +11:00
bezier2.cpp build: don't use './' as an include prefix 2017-11-22 16:49:37 +11:00
bezier3.cpp maths: allow any integral exponent for pow() 2018-01-01 15:45:56 +11:00
bezier.cpp build: don't use './' as an include prefix 2017-11-22 16:49:37 +11:00
bezier.hpp bezier: add signed distance queries 2016-12-21 20:25:50 +11:00
bitwise.cpp bitwise: use bit reversal from bit twiddling hacks 2017-02-13 17:14:30 +11:00
bitwise.hpp bitwise: use bit reversal from bit twiddling hacks 2017-02-13 17:14:30 +11:00
cast.hpp build: don't use './' as an include prefix 2017-11-22 16:49:37 +11:00
CMakeLists.txt crypto: remove cryptography primitives 2018-01-14 17:13:21 +11:00
cmdopt.cpp maths: allow any integral exponent for pow() 2018-01-01 15:45:56 +11:00
cmdopt.hpp build: use explicit constructors 2017-05-23 12:50:51 +10:00
cmdopt.ipp build: don't use './' as an include prefix 2017-11-22 16:49:37 +11:00
colour.cpp Merge remote-tracking branch 'origin/master' 2018-01-10 17:19:39 +11:00
colour.hpp Merge remote-tracking branch 'origin/master' 2018-01-10 17:19:39 +11:00
colour.ipp coord: make template parameters more flexible 2017-11-22 17:03:00 +11:00
coord.hpp
COPYING
debug_posix.cpp build: don't use './' as an include prefix 2017-11-22 16:49:37 +11:00
debug_win32.cpp except: move posix/win32 exceptions to own units 2017-12-18 15:46:52 +11:00
debug.cpp debug: fully qualify panic detail functions 2017-09-08 14:10:11 +10:00
debug.hpp debug: add validate specialisation for pointers 2018-01-01 13:40:34 +11:00
debug.ipp Merge remote-tracking branch 'origin/master' 2018-01-10 17:19:39 +11:00
Doxyfile.in doc: improve naive doxygen support 2016-02-26 17:04:54 +11:00
endian.cpp
endian.hpp endian: add float byteswap specialisation 2017-10-12 17:38:40 +11:00
exe_freebsd.cpp
exe_linux.cpp except: move posix/win32 exceptions to own units 2017-12-18 15:46:52 +11:00
exe_win32.cpp except: move posix/win32 exceptions to own units 2017-12-18 15:46:52 +11:00
exe.hpp
extent.cpp Merge branch 'master' into coord 2017-11-23 17:24:11 +11:00
extent.hpp Merge branch 'master' into coord 2017-11-23 17:24:11 +11:00
extent.ipp coord: use consistent naming for point coverage tests 2017-08-24 15:56:58 +10:00
fixed.cpp fixed: add integer logical operators 2017-01-04 22:38:41 +11:00
fixed.hpp build: don't use './' as an include prefix 2017-11-22 16:49:37 +11:00
float.cpp build: remove unnecessary includes 2016-10-12 15:08:22 +11:00
float.hpp build: remove unnecessary includes 2016-10-12 15:08:22 +11:00
format.cpp.rl format: rework parser for currying support 2018-01-09 16:28:46 +11:00
format.hpp view: return unsigned types for size 2018-01-10 18:50:02 +11:00
fourcc.cpp
fourcc.hpp
gcc.hpp
hash.hpp hash: use a consistency, less flexible, interface 2018-01-13 15:24:12 +11:00
introspection.cpp build: remove explicit constexpr instantiations 2017-06-08 15:49:25 +10:00
introspection.hpp Merge branch 'master' into coord 2017-11-23 17:24:11 +11:00
io_posix.cpp except: move posix/win32 exceptions to own units 2017-12-18 15:46:52 +11:00
io_posix.hpp hash: use a consistency, less flexible, interface 2018-01-13 15:24:12 +11:00
io_posix.ipp hash: use a consistency, less flexible, interface 2018-01-13 15:24:12 +11:00
io_win32.cpp except: move posix/win32 exceptions to own units 2017-12-18 15:46:52 +11:00
io_win32.hpp build: don't use './' as an include prefix 2017-11-22 16:49:37 +11:00
io_win32.ipp
io.cpp Merge remote-tracking branch 'origin/master' 2018-01-10 17:19:39 +11:00
io.hpp hash: use a consistency, less flexible, interface 2018-01-13 15:24:12 +11:00
io.ipp io: remove lvalue write function 2017-12-19 18:18:10 +11:00
iterator.hpp hash: use a consistency, less flexible, interface 2018-01-13 15:24:12 +11: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
library_posix.hpp
library_win32.cpp except: move posix/win32 exceptions to own units 2017-12-18 15:46:52 +11:00
library_win32.hpp build: use explicit constructors 2017-05-23 12:50:51 +10:00
library.hpp
LICENCE relicence under Apache-2.0 2015-04-13 18:05:28 +10:00
log.cpp log: remove duplicate listings for severity levels 2017-05-22 13:56:19 +10:00
log.hpp format: rework parser for currying support 2018-01-09 16:28:46 +11:00
log.ipp format: rework parser for currying support 2018-01-09 16:28:46 +11:00
maths.cpp maths: move log2 into header for constexpr 2017-12-22 12:34:14 +11:00
maths.hpp hash: use a consistency, less flexible, interface 2018-01-13 15:24:12 +11:00
matrix2.cpp coord: make template parameters more flexible 2017-11-22 17:03:00 +11:00
matrix3.cpp coord: make template parameters more flexible 2017-11-22 17:03:00 +11:00
matrix4.cpp coord: make template parameters more flexible 2017-11-22 17:03:00 +11:00
matrix.cpp Merge remote-tracking branch 'origin/master' 2018-01-10 17:19:39 +11:00
matrix.hpp matrix: use vector ostream operator 2017-11-24 17:19:32 +11:00
nocopy.hpp
parse.cpp Merge remote-tracking branch 'origin/master' 2018-01-10 17:19:39 +11:00
parse.hpp parse: use views over explit begin/end pairs 2017-12-18 14:50:10 +11:00
pascal.cpp pascal: instantiations for signed lengths 2017-05-29 17:20:43 +10:00
pascal.hpp pascal: parameterise on size type 2017-02-21 21:19:58 +11:00
platform.hpp
point.cpp build: don't use './' as an include prefix 2017-11-22 16:49:37 +11:00
point.hpp Merge branch 'master' into coord 2017-11-23 17:24:11 +11:00
point.ipp point: use vector operations for distance functions 2016-12-21 20:23:43 +11:00
pointer.hpp pointer: add some comments... 2017-08-30 15:38:13 +10:00
polynomial.cpp polynomial: avoid unnecessary instantiation 2017-02-09 16:49:00 +11:00
polynomial.hpp polynomial: style 2016-12-21 20:23:43 +11:00
polynomial.ipp polynomial: style 2016-12-21 20:23:43 +11:00
pool.cpp
pool.hpp pool: avoid alignment warnings on ARM 2017-01-05 19:50:28 +11:00
pool.ipp build: don't use './' as an include prefix 2017-11-22 16:49:37 +11:00
preprocessor.py preprocessor: use a script to create map/reduce 2017-09-12 14:17:30 +10:00
quaternion.cpp build: don't use './' as an include prefix 2017-11-22 16:49:37 +11:00
quaternion.hpp coord: make template parameters more flexible 2017-11-22 17:03:00 +11:00
quaternion.ipp quaternion: move out of coord infrastructure 2016-10-17 22:30:16 +11:00
raii.hpp
random.cpp random: remove typed randomisers without generators 2016-11-17 18:38:08 +11:00
random.hpp Merge branch 'master' into coord 2017-11-23 17:24:11 +11:00
range.cpp range: add signed integer instantiations 2017-08-15 16:44:54 +10:00
range.hpp range: convert static members to constexpr methods 2016-12-21 16:44:48 +11:00
range.ipp range: convert static members to constexpr methods 2016-12-21 16:44:48 +11:00
rational.cpp
rational.hpp rational: express assignment in terms of constructors 2016-05-12 17:55:20 +10:00
rational.ipp
README readme: note the supported compiler versions 2017-06-19 15:29:41 +10:00
region.cpp Merge branch 'master' into coord 2017-11-23 17:24:11 +11:00
region.hpp coord: use consistent naming for point coverage tests 2017-08-24 15:56:58 +10:00
region.ipp region: prefer constexpr functions over static variables 2016-12-12 17:07:53 +11:00
rfc3986.rl rfc3986: don't enforce actions for rules 2017-12-26 17:34:08 +11:00
sarray.cpp build: don't use './' as an include prefix 2017-11-22 16:49:37 +11:00
sarray.hpp build: don't use './' as an include prefix 2017-11-22 16:49:37 +11:00
si.cpp
si.hpp
signal.cpp
signal.hpp signal: warn if discarding auto-disconnect cookies 2017-08-08 13:55:06 +10:00
signal.ipp signal: remove unused code 2017-08-08 13:55:20 +10:00
stats.cpp build: remove unnecessary includes 2016-10-12 15:08:22 +11:00
stats.hpp
stream.cpp stream: use scoped manipulators 2017-01-05 20:21:20 +11:00
stream.hpp build: use explicit constructors 2017-05-23 12:50:51 +10:00
string.cpp Merge branch 'master' into coord 2017-11-23 17:24:11 +11:00
string.hpp Merge branch 'master' into coord 2017-11-23 17:24:11 +11:00
stringid.cpp stringid: remove explicit synchronisation 2016-11-17 18:38:08 +11:00
stringid.hpp hash: use a consistency, less flexible, interface 2018-01-13 15:24:12 +11:00
strongdef.cpp build: don't use './' as an include prefix 2017-11-22 16:49:37 +11:00
strongdef.hpp strongdef: remove unnecessary copy constructor 2017-01-27 14:56:54 +11:00
tap.cpp tap: move ipp implementation into hpp/cpp 2017-11-02 18:10:56 +11:00
tap.hpp format: rework parser for currying support 2018-01-09 16:28:46 +11:00
term.cpp build: don't use './' as an include prefix 2017-11-22 16:49:37 +11:00
term.hpp use nested namespace declarations 2017-01-05 15:06:49 +11:00
time_posix.cpp build: don't use './' as an include prefix 2017-11-22 16:49:37 +11:00
time_win32.cpp time: use std::chrono for nanoseconds query 2016-04-05 11:02:54 +10:00
time.cpp build: don't use './' as an include prefix 2017-11-22 16:49:37 +11:00
time.hpp time: more inline implementation into the header 2017-12-30 13:38:11 +11:00
tuple.cpp
tuple.hpp tuple: `ignore' should be noexcept 2017-09-08 17:03:22 +10:00
typeidx.cpp build: don't use './' as an include prefix 2017-11-22 16:49:37 +11:00
typeidx.hpp typeidx: add lightweight runtime type id call 2017-05-29 17:21:11 +10:00
types.hpp types: remove elems function, prefer std::size 2016-11-17 18:06:39 +11:00
uri.cpp.rl uri: move component queries entirely into header 2017-12-26 17:34:08 +11:00
uri.hpp hash: use a consistency, less flexible, interface 2018-01-13 15:24:12 +11:00
utf8.cpp utf8: clearer comments 2017-10-03 17:48:27 +11:00
utf8.hpp utf8: use an iterator style interface internally 2017-10-02 16:15:19 +11:00
variadic.cpp variadic: add index helper type 2015-04-20 17:13:14 +10:00
variadic.hpp variadic: add accessor for the first template pack parameter 2017-06-13 17:01:06 +10:00
vector.cpp WIP vector: spherical/cartesian conversion 2017-11-02 18:11:16 +11:00
vector.hpp Merge remote-tracking branch 'origin/master' 2018-01-10 17:19:39 +11:00
vector.ipp build: don't use './' as an include prefix 2017-11-22 16:49:37 +11:00
version.cpp.rl
version.hpp
view.cpp view: move ostream operator into header 2017-12-26 17:34:08 +11:00
view.hpp crypto: remove cryptography primitives 2018-01-14 17:13:21 +11:00
zlib.cpp
zlib.hpp

A simple cross-platform C++ utility library.

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

For the love of God, do not use the crypto routines. I am not a cryptographer or a security specialist. You have been warned.