647af5504b
json/schema: reimplement enum support
2018-07-12 13:06:11 +10:00
c07ce50908
json/schema: modularise the validator objects
2018-07-11 19:30:14 +10:00
3d51be1372
json/tree: correct object and array equality operators
2018-07-05 17:46:02 +10:00
65dad60e09
json/tree: forward the arguments for to_json/from_json
2018-06-22 14:08:59 +10:00
ec44c68ce6
view: require fully named types for casting
2018-05-10 12:54:45 +10:00
e7c108c770
json: remove use of the restrict qualifier
...
This mostly just complicates type manipulations. We can add it back in
if performance actually warrants it, or if it becomes an official
qualifier.
2018-05-08 21:48:17 +10:00
497d3ca970
build: update for gcc-8.1 warnings
2018-05-03 18:32:08 +10:00
93277d5d9d
json/tree: add from_json that takes a path
2018-05-01 16:01:00 +10:00
2d7e3e5d7d
build: prefer iosfwd over iostream
2018-03-22 16:11:13 +11:00
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
681768093e
hash: use a consistency, less flexible, interface
2018-01-13 15:24:12 +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
0351313c36
Merge branch 'master' into coord
2017-11-23 17:24:11 +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
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
eabf93bc2a
view: remove ipp file in preference of inline code
2017-08-01 14:16:55 +10:00
25e19b5810
build: use explicit constructors
2017-05-23 12:50:51 +10:00
e1aacef7a2
stream: use scoped manipulators
2017-01-05 20:21:20 +11:00
98dc992473
build: avoid integer length warnings
2017-01-05 19:50:28 +11:00
353cf839d4
use nested namespace declarations
2017-01-05 15:06:49 +11:00
9a6a406fa2
build: use path objects over c_str calls
2016-11-17 18:07:57 +11:00
9a798446b5
build: remove unnecessary includes
...
discovered with include-what-you-use
2016-10-12 15:08:22 +11:00
be6ca2e1d2
build: workaround unknown warning warning in clang
2016-10-11 21:44:25 +11:00
68fa98e70e
build: workaround gcc synthesis constructor cast warnings
2016-10-11 21:43:28 +11:00
48364cd227
build: use experimental::fs over boost::fs
2016-10-07 19:48:42 +11:00
d9713fe8b7
json/tree: fix signed min, unsigned max constraints
...
signed/unsigned casting issues prevented correct comparisons with the
min/max constraints. account for the source type's range before doing the
comparison.
2016-09-20 16:02:08 +10:00
116ad04a1f
build: use ostream/istream over iostream
2016-08-04 17:42:41 +10:00
f9fb0873d3
build: tidy system headers
2016-07-28 13:39:27 +10:00
f793175fdf
json/schema: add 'integer' type support
2016-07-04 15:46:01 +10:00
8694b95cec
json/tree: add is_integer query
2016-07-04 15:45:38 +10:00
10e0c4f923
json/except: use a human readable key_error message
...
the exception string was completely useless without mentioning "you
tried to dereference an invalid key".
2016-06-29 17:55:44 +10:00
74fc943f53
build: quiesce type conversion warnings
2016-06-29 17:55:12 +10:00
b1bc2a816d
json/schema: add path based validate
2016-06-28 16:59:56 +10:00
73c30561af
json/tree: reinstate path based parsers
...
json::tree::node is a fat object, so it's safe to load the source data
from within the parsing function
2016-06-28 16:57:44 +10:00
d7204d7cac
json: remove path based parsers
...
parsers don't store copies of the data, so we can't allow functions that
allocate data themselves.
2016-06-28 15:59:53 +10:00
642317f6a4
json: use templated iterator for parsing from views
2016-06-28 14:16:28 +10:00
8142944139
json: store numbers natively as uint/sint/real
...
allows more accurate representations and better error checking.
2016-05-12 17:41:31 +10:00
5b58e0afa6
json/flat: don't try to parse empty files
...
avoids debug assertions fetching data pointer on empty mappings
2016-04-27 17:07:20 +10:00
eb1b042e06
j/except: remove useless inherited constructor
2016-04-27 16:12:45 +10:00
9bbcfa6e63
make header paths more explicit
2016-04-05 11:06:35 +10:00
ab330cc520
add ref-qualifiers to avoid dangling refs/ptrs
2016-03-17 18:05:28 +11:00
ea1dbd253a
j/tree: add from_path function for clarity
2016-02-11 14:53:43 +11:00
424e6e8701
cast: move types/casts to cast
2015-11-17 16:19:27 +11:00
b1bc54ac8c
maths: move remaining operations into util namespace
2015-11-16 11:44:07 +11:00
cb12d4fd1f
io: remove redundant write overloads
2015-10-29 10:51:42 +11:00
3801842373
json/except: add line number to what output
2015-09-09 18:45:23 +10:00
ba4eb8cc45
json/fwd: add exception forward declarations
2015-09-09 18:45:23 +10:00
c2589abc8e
j/tree: add templated type conversions
2015-09-08 14:33:39 +10:00
e6b15d2a85
j/tree: remove ambiguous string parse call
...
single pointer string parsing can be confused with filesystem paths.
instead prefer the two pointer range form.
2015-09-08 14:32:48 +10:00