A collection of useful C++ routines.
Go to file
Danny Robson 0756f3f4cf log: set default log level to NOTICE
Using NOTICE as the default log level gives us both DEBUG and INFO to
play with for messages that we don't want to display by default.
2016-11-23 17:45:53 +11:00
alloc build: remove unnecessary includes 2016-10-12 15:08:22 +11:00
build-aux test/json: run tests through a line wine/crlf wrapper 2016-04-27 17:13:36 +10:00
coord coord/base: assert we are using arithmetic types 2016-10-25 19:57:37 +11:00
crypto build: remove unnecessary includes 2016-10-12 15:08:22 +11:00
doc doc: add noise documentation stubs 2016-02-02 10:36:42 +11:00
fixup/experimental fixup: add minimal filesystem implementation 2016-11-17 18:38:09 +11:00
geom coord: instantiate signed types 2016-10-25 17:50:11 +11:00
hash xxhash: add forgotten C implementation 2016-11-18 13:24:34 +11:00
json build: use path objects over c_str calls 2016-11-17 18:07:57 +11:00
m4 build: fix for mingw32 and libssp 2016-11-17 18:05:10 +11:00
memory random: remove typed randomisers without generators 2016-11-17 18:38:08 +11:00
posix build: add posix forward decl 2016-10-14 18:01:16 +11:00
rand build: remove unnecessary includes 2016-10-12 15:08:22 +11:00
roots roots/bisection: add bisection root finder 2016-02-03 13:57:18 +11:00
test hash: add xxhash implementation 2016-11-17 18:38:09 +11:00
tools build: remove unnecessary includes 2016-10-12 15:08:22 +11:00
types build: remove unnecessary includes 2016-10-12 15:08:22 +11:00
win32 build: remove sign comparison mismatch 2016-11-17 18:38:08 +11:00
.gitignore test/json: run tests through a line wine/crlf wrapper 2016-04-27 17:13:36 +10:00
.gitmodules m4: move nerdcruft m4 into submodule 2016-06-20 13:30:32 +10:00
adapter.cpp unify licences 2016-02-26 13:36:01 +11:00
adapter.hpp build: remove unnecessary includes 2016-10-12 15:08:22 +11:00
annotation.hpp annotation: add likely/unlikely functions 2016-08-02 18:49:42 +10:00
ascii.hpp ascii: add to_integer from ascii to numeric 2016-08-02 18:50:35 +10:00
backtrace_execinfo.cpp build: remove unnecessary includes 2016-10-12 15:08:22 +11:00
backtrace_null.cpp don't pull in namespace std 2016-03-11 13:28:56 +11:00
backtrace_stackwalk.cpp types: remove elems function, prefer std::size 2016-11-17 18:06:39 +11:00
backtrace_win32.cpp backtrace_win32: avoid using win32 wrappers 2016-04-27 15:53:53 +10:00
backtrace.hpp backtrace/win32: enable win32 backtrace support 2016-04-19 16:08:56 +10:00
bezier.cpp stream: remove unneeded numeric class 2016-06-29 17:52:26 +10:00
bezier.hpp build: use ostream/istream over iostream 2016-08-04 17:42:41 +10:00
bitwise.cpp build: remove unnecessary includes 2016-10-12 15:08:22 +11:00
bitwise.hpp build: remove unnecessary includes 2016-10-12 15:08:22 +11:00
cast.hpp cast: allow trunc_cast to same type 2016-10-25 17:50:11 +11:00
cmdopt.cpp build: avoid type truncation warnings 2016-05-12 17:39:33 +10:00
cmdopt.hpp build: remove unnecessary includes 2016-10-12 15:08:22 +11:00
cmdopt.ipp cmdopt: move bool parsing into inline headers 2016-04-27 15:52:52 +10:00
colour.cpp random: remove typed randomisers without generators 2016-11-17 18:38:08 +11:00
colour.hpp colour: correct the component count of colour1u 2016-09-23 13:27:21 +10:00
colour.ipp relicence under Apache-2.0 2015-04-13 18:05:28 +10:00
configure.ac fixup: add minimal filesystem implementation 2016-11-17 18:38:09 +11:00
coord.hpp relicence under Apache-2.0 2015-04-13 18:05:28 +10:00
COPYING unify licences 2016-02-26 13:36:01 +11:00
debug_posix.cpp build: remove unnecessary includes 2016-10-12 15:08:22 +11:00
debug_win32.cpp debug: add forgotten header for win32 2016-08-16 16:22:27 +10:00
debug.cpp build: remove unnecessary includes 2016-10-12 15:08:22 +11:00
debug.hpp debug: revert DEBUG_ONLY name change 2016-09-28 17:24:01 +10:00
debug.ipp debug: reduce constexpr tomfoolery where not required 2016-08-01 17:23:53 +10:00
Doxyfile.in doc: improve naive doxygen support 2016-02-26 17:04:54 +11:00
endian.cpp relicence under Apache-2.0 2015-04-13 18:05:28 +10:00
endian.hpp build: remove unnecessary includes 2016-10-12 15:08:22 +11:00
except.cpp types: remove elems function, prefer std::size 2016-11-17 18:06:39 +11:00
except.hpp except: add missing methods to win32_error 2016-04-27 16:07:42 +10:00
exe_freebsd.cpp exe: split into platform units 2016-10-10 16:23:07 +11:00
exe_linux.cpp exe: split into platform units 2016-10-10 16:23:07 +11:00
exe_win32.cpp build: fix missing windows includes 2016-11-17 18:38:08 +11:00
exe.hpp build: use experimental::fs over boost::fs 2016-10-07 19:48:42 +11:00
extent.cpp debug: explicitly instantiate extent/point validator 2016-11-17 18:43:32 +11:00
extent.hpp coord: prefer int/unsigned to intmax/size_t 2016-10-25 17:46:36 +11:00
extent.ipp extent: make area and diameter constexpr 2016-09-28 17:21:02 +10:00
fixed.cpp build: remove unnecessary includes 2016-10-12 15:08:22 +11:00
fixed.hpp build: remove unnecessary includes 2016-10-12 15:08:22 +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 format: reimplement format rendering 2016-07-28 13:39:27 +10:00
format.hpp format: reimplement format rendering 2016-07-28 13:39:27 +10:00
format.ipp format: allow %! specifier for all types 2016-09-27 15:23:33 +10:00
fourcc.cpp iostream: use consistent ostream format 2016-03-11 13:01:57 +11:00
fourcc.hpp iostream: use consistent ostream format 2016-03-11 13:01:57 +11:00
gcc.hpp relicence under Apache-2.0 2015-04-13 18:05:28 +10:00
guid.cpp build: remove unnecessary includes 2016-10-12 15:08:22 +11:00
guid.hpp guid: style 2016-08-15 20:56:10 +10:00
hash.hpp hash: fix parameter names in mix wrappers 2015-09-15 21:06:00 +10:00
introspection.cpp introspection: use pointers over arrays for type_name 2016-11-17 18:38:09 +11:00
introspection.hpp introspection: use pointers over arrays for type_name 2016-11-17 18:38:09 +11:00
io_posix.cpp io: use size_t result for mapped_file::size 2016-10-25 19:57:13 +11:00
io_posix.hpp io: use size_t result for mapped_file::size 2016-10-25 19:57:13 +11:00
io_posix.ipp io: move view conversion operator to named function 2016-06-28 15:58:41 +10:00
io_win32.cpp io_win32: rename util::fd to posix::fd 2016-11-17 18:38:08 +11:00
io_win32.hpp io_win32: rename util::fd to posix::fd 2016-11-17 18:38:08 +11:00
io_win32.ipp io: move view conversion operator to named function 2016-06-28 15:58:41 +10:00
io.cpp build: remove unnecessary includes 2016-10-12 15:08:22 +11:00
io.hpp build: fix missing windows includes 2016-11-17 18:38:08 +11:00
io.ipp posix/fd: extract file descriptor into own unit 2016-10-02 15:50:13 +11:00
iterator.hpp iterator: add infix_iterator 2016-03-11 12:44:00 +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 change const char paths to std::filesystem::path 2016-10-08 17:18:18 +11:00
library_posix.hpp change const char paths to std::filesystem::path 2016-10-08 17:18:18 +11:00
library_win32.cpp build: use path objects over c_str calls 2016-11-17 18:07:57 +11:00
library_win32.hpp build: use path objects over c_str calls 2016-11-17 18:07:57 +11:00
library.hpp library: initial wrapper 2015-08-10 15:51:44 +10:00
LICENCE relicence under Apache-2.0 2015-04-13 18:05:28 +10:00
log.cpp build: remove unnecessary includes 2016-10-12 15:08:22 +11:00
log.hpp log: set default log level to NOTICE 2016-11-23 17:45:53 +11:00
log.ipp format: reimplement format rendering 2016-07-28 13:39:27 +10:00
Makefile.am fixup: add minimal filesystem implementation 2016-11-17 18:38:09 +11:00
maths.cpp build: remove unnecessary includes 2016-10-12 15:08:22 +11:00
maths.hpp build: remove unnecessary includes 2016-10-12 15:08:22 +11:00
matrix.cpp matrix: move identity and zeroes into constexpr funcs 2016-10-17 22:34:53 +11:00
matrix.hpp matrix: move identity and zeroes into constexpr funcs 2016-10-17 22:34:53 +11:00
matrix.ipp matrix: move identity and zeroes into constexpr funcs 2016-10-17 22:34:53 +11:00
matrix2.cpp matrix: move identity and zeroes into constexpr funcs 2016-10-17 22:34:53 +11:00
matrix3.cpp matrix: move identity and zeroes into constexpr funcs 2016-10-17 22:34:53 +11:00
matrix4.cpp matrix: move identity and zeroes into constexpr funcs 2016-10-17 22:34:53 +11:00
nocopy.hpp dont overinclude iostream headers 2016-03-17 18:14:40 +11:00
pascal.cpp pascal: make size/data private 2016-03-17 18:14:40 +11:00
pascal.hpp dont overinclude iostream headers 2016-03-17 18:14:40 +11:00
platform.hpp platform: add freebsd platform defines 2016-05-13 15:23:22 +10:00
point.cpp debug: explicitly instantiate extent/point validator 2016-11-17 18:43:32 +11:00
point.hpp coord: prefer int/unsigned to intmax/size_t 2016-10-25 17:46:36 +11:00
point.ipp point: remove constexpr from functions relying on cmath 2015-10-06 15:20:06 +11:00
pointer.hpp pointer: add uintptr align function 2016-03-11 09:40:12 +11:00
polynomial.cpp build: remove unnecessary includes 2016-10-12 15:08:22 +11:00
polynomial.hpp polynomial: rename solve as roots 2015-07-21 02:59:14 +10:00
polynomial.ipp relicence under Apache-2.0 2015-04-13 18:05:28 +10:00
pool.cpp relicence under Apache-2.0 2015-04-13 18:05:28 +10:00
pool.hpp use more explicit constructors 2016-03-17 18:14:40 +11:00
pool.ipp dont overinclude iostream headers 2016-03-17 18:14:40 +11:00
preprocessor.hpp preprocessor: expand MAP macros to 24 arguments 2016-06-24 13:15:01 +10:00
quaternion.cpp quaternion: add second optimised vector rotate 2016-10-18 16:45:57 +11:00
quaternion.hpp quaternion: add assignment-multiply operator 2016-10-18 16:45:38 +11:00
quaternion.ipp quaternion: move out of coord infrastructure 2016-10-17 22:30:16 +11:00
raii.hpp raii: scoped_function takes a nullary void functor 2015-11-13 13:48:46 +11:00
random.cpp random: remove typed randomisers without generators 2016-11-17 18:38:08 +11:00
random.hpp random: remove typed randomisers without generators 2016-11-17 18:38:08 +11:00
range.cpp range: define static members before first use 2016-11-17 18:38:08 +11:00
range.hpp build: use ostream/istream over iostream 2016-08-04 17:42:41 +10:00
range.ipp relicence under Apache-2.0 2015-04-13 18:05:28 +10:00
rational.cpp rational: add type deducing divide/multiply 2015-09-21 16:36:38 +10:00
rational.hpp rational: express assignment in terms of constructors 2016-05-12 17:55:20 +10:00
rational.ipp rational: add type deducing divide/multiply 2015-09-21 16:36:38 +10:00
README README: add crypto warning 2016-06-20 18:06:51 +10:00
region.cpp region: forward is_valid to component point and extent 2016-10-25 19:59:06 +11:00
region.hpp region: add three dimensional typedefs 2016-10-25 20:02:19 +11:00
region.ipp region: remove extent_t/point_t distinction 2016-10-25 17:50:11 +11:00
si.cpp relicence under Apache-2.0 2015-04-13 18:05:28 +10:00
si.hpp whitespace 2015-04-13 18:06:08 +10:00
signal.cpp relicence under Apache-2.0 2015-04-13 18:05:28 +10:00
signal.hpp build: remove unnecessary includes 2016-10-12 15:08:22 +11:00
signal.ipp build: remove unnecessary includes 2016-10-12 15:08:22 +11:00
stats.cpp build: remove unnecessary includes 2016-10-12 15:08:22 +11:00
stats.hpp build: use ostream/istream over iostream 2016-08-04 17:42:41 +10:00
stream.cpp stream: work towards streambuf and stream impl 2016-05-12 17:47:22 +10:00
stream.hpp build: use ostream/istream over iostream 2016-08-04 17:42:41 +10:00
string.cpp string: add trivial wchar-to-utf8 conversions 2016-11-22 21:48:57 +11:00
string.hpp string: add trivial wchar-to-utf8 conversions 2016-11-22 21:48:57 +11:00
stringid.cpp stringid: remove explicit synchronisation 2016-11-17 18:38:08 +11:00
stringid.hpp build: avoid type truncation warnings 2016-05-12 17:39:33 +10:00
strongdef.cpp strongdef: actually use tagging for disambiguation... 2015-11-19 15:06:52 +11:00
strongdef.hpp strongdef: delete default constructor 2016-10-07 17:33:03 +11:00
tap.cpp build: remove unnecessary includes 2016-10-12 15:08:22 +11:00
tap.hpp build: remove unnecessary includes 2016-10-12 15:08:22 +11:00
tap.ipp WIP tap param rename 2016-07-28 14:18:47 +10:00
term.cpp build: silence unused var/func warnings 2016-10-11 21:43:07 +11:00
term.hpp build: avoid type truncation warnings 2016-05-12 17:39:33 +10:00
time_posix.cpp time: use std::chrono for nanoseconds query 2016-04-05 11:02:54 +10:00
time_win32.cpp time: use std::chrono for nanoseconds query 2016-04-05 11:02:54 +10:00
time.cpp build: remove unnecessary includes 2016-10-12 15:08:22 +11:00
time.hpp time: use std::chrono for nanoseconds query 2016-04-05 11:02:54 +10:00
time.ipp time: use std::chrono for nanoseconds query 2016-04-05 11:02:54 +10:00
tuple.cpp tuple: add tuple iteration helpers 2015-04-20 17:48:11 +10:00
tuple.hpp build: remove unnecessary includes 2016-10-12 15:08:22 +11:00
types.hpp types: remove elems function, prefer std::size 2016-11-17 18:06:39 +11:00
uri.cpp.rl build: fix switch/enum coverage warnings 2016-05-12 17:45:29 +10:00
uri.hpp build: avoid type truncation warnings 2016-05-12 17:39:33 +10:00
variadic.cpp variadic: add index helper type 2015-04-20 17:13:14 +10:00
variadic.hpp variadic: add index helper type 2015-04-20 17:13:14 +10:00
variadic.ipp variadic: add index helper type 2015-04-20 17:13:14 +10:00
vector.cpp random: remove typed randomisers without generators 2016-11-17 18:38:08 +11:00
vector.hpp coord: prefer int/unsigned to intmax/size_t 2016-10-25 17:46:36 +11:00
vector.ipp vector: make cross function constexpr 2016-10-17 16:49:26 +11:00
version.cpp.rl version: add more constructors, comparators 2016-06-20 13:08:24 +10:00
version.hpp build: use ostream/istream over iostream 2016-08-04 17:42:41 +10:00
view.cpp view: instantiate uint8_t ostream operator 2016-08-04 14:15:02 +10:00
view.hpp view: find function takes const ref 2016-11-17 19:53:19 +11:00
view.ipp view: implement non-const indexing operator 2016-11-17 19:53:19 +11:00
zlib.cpp unify licences 2016-02-26 13:36:01 +11:00
zlib.hpp build: make single argument constructors explicit 2015-06-04 22:18:43 +10:00

A simple cross-platform C++ utility library.

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