35e3f69ad2
maths, view: rationalise equal,almost_equal,==
...
views should not do elementwise comparisons for equality operators.
they are pairs of iterators and are only equal if their iterators are
equal.
instead, use `equal` for elementwise equality. we update the name of
exactly_equal to perform this operation too.
2018-01-31 19:33:42 +11:00
5d32408126
io: allow write
to take rvalue file objects
...
This simplifies using temporaries in a few locations.
2018-01-31 19:31:57 +11:00
9045e16476
io: expose only view style read/write from io module
...
Allow the destination file-like object to implement whatever style
writers and readers they want, but don't expose those directly via the
io module.
2018-01-31 19:30:48 +11:00
6f14c7c65b
view: allow implicit conversion from const*const* to const**
2018-01-30 16:25:48 +11:00
c9cc38eac7
cast: tighten type constraints for narrow cast
2018-01-30 16:25:28 +11:00
18a7790a2a
macro: trivial preprocessor for includes
2018-01-30 12:53:43 +11:00
8682381618
io: add slurp overload for string views
2018-01-30 12:53:43 +11:00
c4e0cd31f9
string: move tokeniser into the header
...
This allows more varied template parameters to be used.
2018-01-30 12:53:43 +11:00
32a4aa23e5
view: add slicing operation, stolen from python
2018-01-30 12:53:43 +11:00
f9a202877a
iterator: add make_infix example
2018-01-26 14:05:21 +11:00
d206b316a9
strongdef: style
2018-01-24 17:31:22 +11:00
6f51b82f65
siphash: add initial implementation
2018-01-23 18:57:04 +11:00
dd9a4a4646
xxhash: update copyright date
2018-01-23 18:57:04 +11:00
bc4a0c3179
xxhash: rewrite for safety and accurate tests
...
there were a few potential buffer overflows, inaccurate test data, and
the 64 bit path wasn't correct.
fixes buffer overflow from clang-analyze
2018-01-23 18:57:04 +11:00
b5d8b6bca3
build: temporarily add -ldl unconditionally
2018-01-23 18:52:42 +11:00
dda3a4a8e7
ascii: add UDL for vector and array conversions
2018-01-23 18:51:37 +11:00
007add45f2
tuple: add query for nth parameter pack value
2018-01-23 17:25:43 +11:00
82a8446e10
build: silence various type conversion warnings
2018-01-18 11:56:42 +11:00
d037e71bba
encode/base: correct decode table indexing
2018-01-17 20:10:26 +11:00
d323197459
types/bits: add bytes_uint_t and bits_uint_t
2018-01-17 20:09:21 +11:00
c7ce526383
vector: use separate cartesian/spherical tests
...
some tests aren't uniquely invertible, so it's more reliable to use test
data that doesn't suffer from this issue.
2018-01-17 17:45:21 +11:00
51ffcbb07e
vector: add spherical canonicalisation function
2018-01-17 17:44:59 +11:00
a8b6184e65
vector: use atan2 for spherical conversions
2018-01-17 17:44:45 +11:00
a8b4c93ccd
coord: mitigate gcc ICE when using redim
2018-01-17 13:28:44 +11:00
b4e242ffd4
Merge remote-tracking branch 'origin/master'
2018-01-16 15:17:25 +11:00
1d11f05918
cast: move casting functions into util::cast namespace
2018-01-16 15:11:15 +11:00
c6d025453a
view: avoid signed comparison issues with sizes
2018-01-16 13:31:53 +11:00
959617277f
coord: use consistent technique for assignment operators
2018-01-16 13:31:37 +11:00
65cea4afd1
point: style
2018-01-16 13:29:58 +11:00
a2daa12d03
README: update required clang version
2018-01-14 17:21:07 +11:00
aa997ca996
crypto: remove warning message in README
2018-01-14 17:20:49 +11:00
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
681768093e
hash: use a consistency, less flexible, interface
2018-01-13 15:24:12 +11:00
e2f0d23a6d
io: ensure we only write views that look like bytes
2018-01-10 18:50:02 +11:00
b8fd18f1cc
io: ensure view writes only take byte sized data
2018-01-10 18:50:02 +11:00
2f31cb5a1d
view: disambiguate equality operators
2018-01-10 18:50:02 +11:00
a2806cfa75
view: add single iterator consume operator
2018-01-10 18:50:02 +11:00
ad02c94511
view: return unsigned types for size
2018-01-10 18:50:02 +11:00
2840810f64
build: remove unnecessary cmake module
2018-01-10 17:51:59 +11:00
9bb2bdbaba
Merge remote-tracking branch 'origin/master'
2018-01-10 17:19:39 +11:00
2713da45f4
format: rework parser for currying support
2018-01-09 16:28:46 +11:00
2af828e82d
time: add iso8601 parsing
2018-01-01 15:50:48 +11:00
9fbfba580a
maths: allow digits10 for 64 bit integers
2018-01-01 15:46:29 +11:00
4bd693a799
maths: allow any integral exponent for pow()
2018-01-01 15:45:56 +11:00
ed7ab6cb9e
debug: add validate specialisation for pointers
2018-01-01 13:40:34 +11:00
dc010d87be
view: add yet more constructors
2017-12-30 13:40:37 +11:00
0f450b5b1c
p/socket: correctly iterate through name lookups
2017-12-30 13:40:04 +11:00
52aa37dbf7
m/b/circular: add pointer rebalancing operation
2017-12-30 13:39:42 +11:00
dd69da09c3
m/b/circular: template based on data type
2017-12-30 13:39:12 +11:00
59b21e67dd
time: more inline implementation into the header
2017-12-30 13:38:11 +11:00