A collection of useful C++ routines.
Go to file
2016-10-02 15:50:13 +11:00
alloc alloc/dynamic: add missing override specifiers 2016-06-28 15:57:23 +10:00
build-aux test/json: run tests through a line wine/crlf wrapper 2016-04-27 17:13:36 +10:00
coord stream: remove unneeded numeric class 2016-06-29 17:52:26 +10:00
crypto crypto/ice: fix key length assertion 2016-06-30 18:21:21 +10:00
doc doc: add noise documentation stubs 2016-02-02 10:36:42 +11:00
geom Merge branch 'crypto' 2016-06-20 18:08:46 +10:00
hash murmur2: make mixing constexpr and inline 2016-07-01 17:01:21 +10:00
json json/schema: add 'integer' type support 2016-07-04 15:46:01 +10:00
m4 build: use consolidated NC_SUBPACKAGE 2016-06-21 18:10:08 +10:00
memory m/b/circular: use correct fd for MAP_ANONYMOUS 2016-05-13 13:56:53 +10:00
net don't pull in namespace std 2016-03-11 13:28:56 +11:00
posix posix/fd: extract file descriptor into own unit 2016-10-02 15:50:13 +11:00
rand rand/xorshift: add min/max/discard operations 2016-07-01 16:26:25 +10:00
roots roots/bisection: add bisection root finder 2016-02-03 13:57:18 +11:00
test json/schema: add 'integer' type support 2016-07-04 15:46:01 +10:00
tools io: move view conversion operator to named function 2016-06-28 15:58:41 +10:00
types types/traits: add remove_restrict 2016-03-16 19:27:39 +11:00
win32 win32/handle: merge various handle wrapper classes 2016-04-27 17:01:45 +10: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: tighten up some unneeded headers 2016-02-25 13:17:14 +11:00
backtrace_execinfo.cpp backtrace_execinfo: correct newlines for ostream 2016-05-12 17:47:47 +10:00
backtrace_null.cpp don't pull in namespace std 2016-03-11 13:28:56 +11:00
backtrace_stackwalk.cpp backtrace_stackwalk: add StackWalk64 backtrace 2016-04-27 16:00:26 +10: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 iterator: use infix_iterator for coord ostream 2016-03-11 12:48:19 +11:00
bitwise.cpp relicence under Apache-2.0 2015-04-13 18:05:28 +10:00
bitwise.hpp bitwise: add pure annotation to rotate functions 2016-06-20 17:59:21 +10:00
cast.hpp cast: tighten trunc_cast type restrictions 2016-06-29 17:53:44 +10:00
cmdopt.cpp build: avoid type truncation warnings 2016-05-12 17:39:33 +10:00
cmdopt.hpp add ref-qualifiers to avoid dangling refs/ptrs 2016-03-17 18:05:28 +11:00
cmdopt.ipp cmdopt: move bool parsing into inline headers 2016-04-27 15:52:52 +10:00
colour.cpp build: add forgotten cxx headers 2016-05-12 17:31:33 +10:00
colour.hpp colour: add istream operator 2016-04-15 12:31:36 +10:00
colour.ipp relicence under Apache-2.0 2015-04-13 18:05:28 +10:00
configure.ac build: use consolidated NC_SUBPACKAGE 2016-06-21 18:10:08 +10: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 debug_posix: downgrade force_console error to WARN 2016-05-18 10:27:36 +10:00
debug_win32.cpp debug: cache win32 error code before logging 2016-04-15 15:56:51 +10:00
debug.cpp debug: make DEBUG_WAIT support more robust 2016-03-21 14:19:08 +11:00
debug.hpp debug: add CHECK_SANITY macro 2016-06-24 15:30:41 +10:00
debug.ipp debug: remove nullary panic function 2016-04-19 14:50:13 +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: make single argument constructors explicit 2015-06-04 22:18:43 +10:00
except.cpp except: add missing methods to win32_error 2016-04-27 16:07:42 +10:00
except.hpp except: add missing methods to win32_error 2016-04-27 16:07:42 +10:00
exe.cpp exe: add freebsd image_path implementation 2016-05-13 15:22:42 +10:00
exe.hpp relicence under Apache-2.0 2015-04-13 18:05:28 +10:00
extent.cpp extent: add missing required header 2016-06-20 18:01:26 +10:00
extent.hpp iostream: use consistent ostream format 2016-03-11 13:01:57 +11:00
extent.ipp extent: add a point inclusion query 2015-09-16 02:26:00 +10:00
fixed.cpp relicence under Apache-2.0 2015-04-13 18:05:28 +10:00
fixed.hpp build: make single argument constructors explicit 2015-06-04 22:18:43 +10:00
float.cpp don't pull in namespace std 2016-03-11 13:28:56 +11:00
float.hpp maths: explicitly inline small methods 2016-04-27 15:57:05 +10:00
format.cpp format: add invalid_specifier exception 2016-04-27 16:12:24 +10:00
format.hpp format: add invalid_specifier exception 2016-04-27 16:12:24 +10:00
format.ipp format: avoid cast warnings for exception constructor 2016-04-28 16:09:14 +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 guid: dont pull in std namespace 2016-03-11 13:02:31 +11:00
guid.hpp iostream: use consistent ostream format 2016-03-11 13:01:57 +11:00
hash.hpp hash: fix parameter names in mix wrappers 2015-09-15 21:06:00 +10:00
introspection.cpp introspection: add more types to type_string 2016-04-27 16:05:16 +10:00
introspection.hpp introspection: add more types to type_string 2016-04-27 16:05:16 +10:00
io_posix.cpp posix/fd: extract file descriptor into own unit 2016-10-02 15:50:13 +11:00
io_posix.hpp posix/fd: extract file descriptor into own unit 2016-10-02 15:50: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: add lval ref-qualifiers to mapped_file members 2016-06-28 14:23:42 +10:00
io_win32.hpp io: move view conversion operator to named function 2016-06-28 15:58:41 +10:00
io_win32.ipp io: move view conversion operator to named function 2016-06-28 15:58:41 +10:00
io.cpp posix/fd: extract file descriptor into own unit 2016-10-02 15:50:13 +11:00
io.hpp posix/fd: extract file descriptor into own unit 2016-10-02 15:50:13 +11:00
io.ipp posix/fd: extract file descriptor into own unit 2016-10-02 15:50:13 +11:00
ip.cpp.rl ip: express equality in terms of words 2016-05-12 17:54:44 +10:00
ip.hpp ip: remove unneeded assignment operator 2016-05-12 17:54:17 +10:00
iterator.hpp iterator: add infix_iterator 2016-03-11 12:44:00 +11:00
libcruft-util-inline.pc.in pkg-config.pc.in: use Libs.private 2016-04-19 17:27:13 +10:00
libcruft-util-system.pc.in build: use two-postfix pkg-config scheme 2016-06-21 17:27:17 +10:00
library_posix.cpp library: initial wrapper 2015-08-10 15:51:44 +10:00
library_posix.hpp library: make path constructors explicit 2015-09-21 15:41:02 +10:00
library_win32.cpp library_win32: add string constructor 2015-08-25 17:13:35 +10:00
library_win32.hpp library: initial wrapper 2015-08-10 15:51:44 +10: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 log: display error if LOG_LEVEL is invalid 2016-06-24 16:56:44 +10:00
log.hpp log: forward logging arguments 2016-04-05 10:48:08 +10:00
log.ipp log: forward logging arguments 2016-04-05 10:48:08 +10:00
Makefile.am posix/fd: extract file descriptor into own unit 2016-10-02 15:50:13 +11:00
maths.cpp maths: move is_integer into headers to avoid param explosion 2016-05-12 17:34:47 +10:00
maths.hpp maths: move is_integer into headers to avoid param explosion 2016-05-12 17:34:47 +10:00
matrix2.cpp matrix: extract size dependant operations 2015-11-04 23:23:46 +11:00
matrix3.cpp matrix: extract size dependant operations 2015-11-04 23:23:46 +11:00
matrix4.cpp matrix: extract size dependant operations 2015-11-04 23:23:46 +11:00
matrix.cpp matrix: perspective construction takes a Z-range 2015-12-02 10:03:25 +11:00
matrix.hpp dont overinclude iostream headers 2016-03-17 18:14:40 +11:00
matrix.ipp matrix: extract size dependant operations 2015-11-04 23:23:46 +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 iterator: use infix_iterator for coord ostream 2016-03-11 12:48:19 +11:00
point.hpp iterator: use infix_iterator for coord ostream 2016-03-11 12:48:19 +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 polynomial: rename solve as roots 2015-07-21 02:59:14 +10: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 maths: tighten up type requirements for almost_equal 2015-11-13 17:18:10 +11:00
quaternion.hpp build: explicitly allow anonymous structs 2016-05-12 18:06:12 +10:00
raii.hpp raii: scoped_function takes a nullary void functor 2015-11-13 13:48:46 +11:00
random.cpp relicence under Apache-2.0 2015-04-13 18:05:28 +10:00
random.hpp relicence under Apache-2.0 2015-04-13 18:05:28 +10:00
random.ipp relicence under Apache-2.0 2015-04-13 18:05:28 +10:00
range.cpp range: add subtraction operator definition 2015-09-29 17:31:20 +10:00
range.hpp whitespace 2015-04-13 18:06:08 +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 iostream: use consistent ostream format 2016-03-11 13:01:57 +11:00
region.hpp build: explicitly allow anonymous structs 2016-05-12 18:06:12 +10:00
region.ipp region: add cast function 2015-09-21 15:33:58 +10: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: avoid type truncation warnings 2016-05-12 17:39:33 +10:00
signal.ipp build: avoid type truncation warnings 2016-05-12 17:39:33 +10:00
stats.cpp relicence under Apache-2.0 2015-04-13 18:05:28 +10:00
stats.hpp relicence under Apache-2.0 2015-04-13 18:05:28 +10:00
stream.cpp stream: work towards streambuf and stream impl 2016-05-12 17:47:22 +10:00
stream.hpp stream: remove unneeded numeric class 2016-06-29 17:52:26 +10:00
string.cpp string: define tokeniser::cbegin/cend 2016-03-21 14:20:04 +11:00
string.hpp string: allow cstring tokenisers 2016-03-18 11:08:12 +11:00
stringid.cpp whitespace 2015-04-13 18:06:08 +10: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 add ref-qualifiers to avoid dangling refs/ptrs 2016-03-17 18:05:28 +11:00
tap.cpp tap: move base expect method to ipp file 2015-09-21 15:25:56 +10:00
tap.hpp Merge branch 'crypto' 2016-06-20 18:08:46 +10:00
tap.ipp Merge branch 'crypto' 2016-06-20 18:08:46 +10:00
term.cpp term: add trivial ANSI colour escapes 2016-03-21 14:20:39 +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 time: use std::chrono for nanoseconds query 2016-04-05 11:02:54 +10: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 tuple: add function caller with argument unpacking 2015-08-10 15:44:15 +10:00
types.hpp types: add param_count function 2016-03-11 19:16:17 +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 build: avoid type truncation warnings 2016-05-12 17:39:33 +10:00
vector.hpp iostream: use consistent ostream format 2016-03-11 13:01:57 +11:00
vector.ipp vector: add homogenous converter 2015-07-21 01:41:48 +10:00
version.cpp.rl version: add more constructors, comparators 2016-06-20 13:08:24 +10:00
version.hpp version: add more constructors, comparators 2016-06-20 13:08:24 +10:00
view.cpp view: add make_view, ref-qualifiers, comparators 2016-03-17 18:14:40 +11:00
view.hpp view: make container constructor explicit and constexpr 2016-06-28 14:09:48 +10:00
view.ipp view: make container constructor explicit and constexpr 2016-06-28 14:09:48 +10: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.