Théo DELRIEU
be6b417c87
tweak SFINAE checks for internal types (see commit body)
...
only check for public types (iterators, json_pointer)
for private ones (m_array.iterator, primitive_iterator) simply double
parentheses on relevant Catch checks
2017-01-21 16:14:22 +01:00
Théo DELRIEU
317883b21b
cleanup, details in body
...
removes:
- is_basic_json_compatible_type traits
- a useless operator=
- void_t
- disjunction
changes:
- is_compatible_object_type's first argument is BasicJson
2017-01-21 16:14:22 +01:00
Théo DELRIEU
4e8089b9de
remove old get/get_impl overloads (doc removal is of course temporary)
2017-01-21 16:14:22 +01:00
Théo DELRIEU
7e6a6f978e
replace constructor by from/to_json: array_t
2017-01-21 16:14:22 +01:00
Théo DELRIEU
c847e0eea2
replace constructor by from/to_json: array_t
...
- tweaked a bit how `get<container<json>>` is handled
- added a from_json overload for forward list
2017-01-21 16:14:22 +01:00
Théo DELRIEU
6d427acdde
replace constructor by from/to_json: unscoped enum types
...
this also means that one can do: j.get<unscoped_enum>();
2017-01-21 16:14:22 +01:00
Théo DELRIEU
f00898331e
replace constructor by from/to_json: number_integer_t
2017-01-21 16:14:22 +01:00
Théo DELRIEU
a32de3b528
replace constructor by from/to_json: number_unsigned_t
...
This commit forces a design change in custom JSONSerializer, which might
be temporary
2017-01-21 16:14:21 +01:00
Théo DELRIEU
d257149f36
replace constructor by from/to_json: number_float_t
2017-01-21 16:14:21 +01:00
Théo DELRIEU
bbe40641a3
replace constructor by from/to_json: string_t
2017-01-21 16:14:21 +01:00
Théo DELRIEU
6b89785fba
replace constructor by from/to_json: boolean_t
2017-01-21 16:14:21 +01:00
Théo DELRIEU
c833b22b7b
move type_name outside of basic_json, make it a friend
2017-01-21 16:14:21 +01:00
Théo DELRIEU
d359684f2b
move enum class value_t outside of basic_json
2017-01-21 16:14:21 +01:00
Niels Lohmann
034d5ed97e
💄 some cleanup
2017-01-21 16:14:21 +01:00
Niels Lohmann
be1d3de49b
💄 moved changes to re2c file and ran make pretty
2017-01-21 16:14:21 +01:00
Théo DELRIEU
aa2679a8ce
fix tests, avoid instantiating JSONSerializer when it will not be used
2017-01-21 16:14:21 +01:00
Théo DELRIEU
d5ee5830ed
add more tests
2017-01-21 16:14:21 +01:00
Théo DELRIEU
1c21c87e6f
use u8 prefix in unit-udt.cpp
2017-01-21 16:14:21 +01:00
Théo DELRIEU
7e750ec1fa
fix msvc, by doubling parenthesis on catch assertions
2017-01-21 16:14:21 +01:00
Théo DELRIEU
3d405c6883
add support for enum classes
2017-01-21 16:14:21 +01:00
Théo DELRIEU
8e43d476d3
add more tests to unit-udt.cpp
2017-01-21 16:14:21 +01:00
Théo DELRIEU
f5cb089f89
add an enum constructor (quickfix)
2017-01-21 16:14:21 +01:00
Théo DELRIEU
1eafac7220
remove explicit keyword on udt-constructor
2017-01-21 16:14:21 +01:00
Théo Delrieu
c0c72b5b62
rewrite unit-udt: basic usage
2017-01-21 16:14:21 +01:00
Théo DELRIEU
60e6f822fa
add support for non-default-constructible udt
2017-01-21 16:14:21 +01:00
Théo DELRIEU
e5999c6c82
add a few tests
2017-01-21 16:14:21 +01:00
Théo Delrieu
74bb11d92c
remove some useless checks, format a bit, added some comments
2017-01-21 16:14:21 +01:00
Théo DELRIEU
907484fb43
format biggest lines
2017-01-21 16:14:21 +01:00
Théo Delrieu
47bc402113
only use conjunction & co when needed to avoid MSVC crashing
2017-01-21 16:14:21 +01:00
Théo DELRIEU
ee19acaf05
add is_compatible_basic_json_type trait
2017-01-21 16:14:21 +01:00
Théo Delrieu
9b401972a0
add a macro for has_xxx types
2017-01-21 16:14:21 +01:00
Théo DELRIEU
e2dbe7a69f
correctly constrain basic_json udt constructor
2017-01-21 16:14:21 +01:00
Théo DELRIEU
0d91113ccf
add negation, disjunction, and conjunction from C++17
2017-01-21 16:14:21 +01:00
Théo DELRIEU
88819449c2
remove constraints on JSONSerializer instances, constrain correctly new methods
2017-01-21 16:14:21 +01:00
Théo DELRIEU
23bd2bce35
add is_compatible_* traits
2017-01-21 16:14:21 +01:00
Théo DELRIEU
178441cdfd
add basic test for custom serializer
2017-01-21 16:14:21 +01:00
Théo DELRIEU
2bc685f6b4
to_json and from_json takes both two arguments now
...
the first is the basic_json type, the second the user-defined type
2017-01-21 16:14:21 +01:00
Théo DELRIEU
837b81d672
renamed unit-constructor3.cpp to unit-udt.cpp
2017-01-21 16:14:21 +01:00
Théo DELRIEU
33abccf847
add template arguments for JSONSerializer
2017-01-21 16:14:21 +01:00
Théo DELRIEU
7dc268ef42
add first version for alternate implementation
2017-01-21 16:14:21 +01:00
Théo DELRIEU
4cdc61e493
move most SFINAE trickery in to/from_json_fn
2017-01-21 16:14:21 +01:00
Théo DELRIEU
03b391c37b
remove has_destructor and has_json_traits, use decltype instead
2017-01-21 16:14:21 +01:00
Théo DELRIEU
12b4555b13
use uncvref_t<T> instead of remove_cv_t<remove_reference_t<T>>>
2017-01-21 16:14:21 +01:00
Théo DELRIEU
877d96c1d8
rename __static_const to _static_const (reserved identifier)
2017-01-21 16:14:21 +01:00
Théo DELRIEU
d54d6bb84c
add alias templates to reduce boilerplate
2017-01-21 16:14:21 +01:00
Théo DELRIEU
fe628b585b
anonymous namespace renamed to detail
2017-01-21 16:14:21 +01:00
Théo Delrieu
b443edf49e
add first version support for user-defined types
2017-01-21 16:14:20 +01:00
Niels Lohmann
ce0b3fe5a3
🚧 made type_name() public
2017-01-21 16:12:17 +01:00
Niels Lohmann
145188f264
⏪ renaming did not help
2017-01-19 19:23:56 +01:00
Niels Lohmann
69be3fa842
📝 small documentation update
2017-01-19 18:19:20 +01:00