Commit Graph

3183 Commits

Author SHA1 Message Date
bfcd63ec65 posix/fd: add read overloads that take char/byte views 2017-12-19 18:18:10 +11:00
e48aebb503 io: remove lvalue write function
writing arbitrary lvalues is incredibly dangerous if we don't have total
coverage of suitable overloads. eg, we have accidentally written string
objects to file descriptors.

instead we prefer byte/char views which the user can create as desired.
there's a little more cognitive overhead here, but it's substantially
less dangerous in casual usage.
2017-12-19 18:18:10 +11:00
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
3ad0339474 WIP vector: spherical/cartesian conversion 2017-11-02 18:11:16 +11:00
badba6de3b tap: move ipp implementation into hpp/cpp
This makes it easier for CLion to perform syntax highlighting
accurately.
2017-11-02 18:10:56 +11:00
28ec0bd48e maths: add forgotten header to test suite 2017-11-02 18:02:53 +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