Commit Graph

2178 Commits

Author SHA1 Message Date
abfc3c7878 except: move posix/win32 exceptions to own units 2017-12-19 18:18:10 +11:00
c22a5a2a07 posix/fd: prefer error::try_value over explicit checks 2017-12-18 15:57:43 +11:00
77c88438d4 except: move posix/win32 exceptions to own units 2017-12-18 15:46:52 +11:00
2ead13a063 parse: use views over explit begin/end pairs 2017-12-18 14:50:10 +11:00
60a7670326 view: delegate constructors where feasible
this will allow us to reduce code duplication for sanity checks at
construction time.
2017-12-15 18:58:33 +11:00
b4175e4593 uri: add more data fields
we now provide more fine grained field extraction from URIs, focusing
primarily on the utility of URLs.
2017-12-15 18:57:10 +11:00
c1036d8337 matrix: use vector ostream operator 2017-11-24 17:19:32 +11:00
a0b0863d61 coord: use new template form in ostream operators 2017-11-24 17:19:32 +11:00
a8088d03cd matrix: use vector for the row storage 2017-11-24 17:19:32 +11:00
59240ce83a matrix: move implementation from ipp to hpp 2017-11-24 17:19:32 +11:00
0351313c36 Merge branch 'master' into coord 2017-11-23 17:24:11 +11:00
edde2af132 cmake: bump for optimisation flags 2017-11-22 17:10:27 +11:00
d3f434b523 coord: make template parameters more flexible
The coordinate system was unable to support types that prohibited
redim or retype operations. Additionally, the `tags' type used for
providing named data parameters was unwiedly.

We remove much of the dependance on template template parameters in the
defined operations and instead define these in terms of a template
specialisation of is_coord.

The tag types were replaced with direct specialisation of the `store'
struct by the primary type, and passing this type through use of the
CRTP.
2017-11-22 17:03:00 +11:00
34788756d2 build: don't use './' as an include prefix
GCC produces ODR error when including paths of the form './foo' and
'foo' in the same binary. Rather than managing duplication we just
universally pick the absolute form over the relative form.
2017-11-22 16:49:37 +11:00
4794e84c13 build: prefer target specific includes and libs 2017-11-22 16:34:02 +11:00
d8bb00c9c3 endian: add float byteswap specialisation 2017-10-12 17:38:40 +11:00
aff4786409 traits: add bodies to test objects for ODR-used symbols 2017-10-11 17:15:47 +11:00
fb2888d2d5 maths: workaround clang lto ICE in renormalise 2017-10-11 17:15:24 +11:00
f0193ee825 colour: instantiate for u16 2017-10-10 16:50:26 +11:00
c0e8a947d0 colour: use numeric_iterator and make_infix for ostream 2017-10-10 16:50:15 +11:00
ba2eb48d63 iterator: add numeric_iterator for ostream output 2017-10-10 16:49:56 +11:00
2e5d69c095 matrix: work around instruction selection bug in clang 2017-10-10 14:09:43 +11:00
720a45deb8 matrix: move some implementation from ipp to cpp
this makes debugging under some IDEs slightly easier
2017-10-10 14:08:41 +11:00
f33ec13b50 format: don't accidentally cast local variable types 2017-10-10 13:52:46 +11:00
a36991fc83 maths: prefer int for `digits' types 2017-10-05 12:45:48 +11:00
32f3240186 json2: initial 'jsonish' support 2017-10-05 11:44:37 +11:00
340981dac2 json2: initial import 2017-10-03 17:49:08 +11:00
d64e3d244e utf8: clearer comments 2017-10-03 17:48:27 +11:00
c61fa16316 utf8: use an iterator style interface internally
this will be presented to the users shortly
2017-10-02 16:15:19 +11:00
35db5f0a7a utf8: add forgotten headers 2017-10-02 15:41:20 +11:00
5e1fab3590 utf8: use mask test object for continuation ops 2017-10-02 15:40:54 +11:00
45e2477e1b utf8: use a more verbose mask test name 2017-10-02 15:40:23 +11:00
7ecaaacd93 utf8: add a trivial utf8 decoder 2017-10-02 15:25:59 +11:00
4641d43742 view: comment style 2017-10-02 14:14:55 +11:00
d03a248138 tap: add unconditional 'fail' call 2017-10-02 14:14:39 +11:00
d67a990de3 random: add uniform integer generator for whole range 2017-09-21 15:59:03 +10:00
b04f0b0c9e random: threadlocal generator should be inline
this avoids multiply defined symbols
2017-09-21 15:58:55 +10:00
f06eab9a3a a/r/aligned: add forgotten headers and namespace qualifiers 2017-09-21 15:06:35 +10:00
09a624bf88 debug: add unhandled debug function 2017-09-17 12:41:23 +10:00
220e499681 view: make equality consistent 2017-09-15 15:22:51 +10:00
cfa272a80a string: allow tokenisation of c arrays 2017-09-15 15:22:29 +10:00
9c5b471b24 iterator: modify to allow iteration over c arrays 2017-09-15 15:21:25 +10:00
c222e4e960 view: constructor should take iterators by constref
who knows how big the iterators are, or if they can be moved.
2017-09-14 13:24:08 +10:00
015dff80a0 view: add nulling move operations 2017-09-14 13:13:45 +10:00
d0e49fb1a8 debug: expose NDEBUG as a constexpr bool 2017-09-13 12:37:53 +10:00
c1aa0f7a3d io: slurp should default to providing bytes, not chars
std::byte has less potential for abuse. if you want an array of chars
you should ask for it.
2017-09-12 14:18:34 +10:00
4050754ab4 preprocessor: use a script to create map/reduce
We need over 300 arguments for some projects and I'm not going to code
that shit by hand.
2017-09-12 14:17:30 +10:00
a2995186f6 traits: add nth_argument trait query 2017-09-10 12:42:18 +10:00
ca3851c4de tuple: `ignore' should be noexcept 2017-09-08 17:03:22 +10:00
edfe4b73bb introspection: identify the bug that CLANG_WORKAROUND addresses 2017-09-08 17:02:33 +10:00