Niels Lohmann
2c17c1b1b2
💄 cleanup
2017-02-16 08:01:01 +01:00
Niels Lohmann
973402c11e
🚧 replaced throws ( #440 ) and _MAX/_MIN macros ( #451 )
2017-02-15 22:44:18 +01:00
Niels Lohmann
b9f3149451
🚑 fix for #452
2017-02-15 21:30:28 +01:00
Mihai STAN
6bf93b3d06
Merge remote-tracking branch 'upstream/develop' into develop
2017-02-15 15:00:25 +02:00
Niels Lohmann
265c5b5207
🔨 more work on the number parser
2017-02-13 18:51:23 +01:00
Niels Lohmann
c8191c8172
🔨 further cleanup
2017-02-12 18:50:17 +01:00
Niels Lohmann
c2d55109c1
🔨 make lexer distinguishes number types
2017-02-11 16:54:25 +01:00
Niels Lohmann
9f5dccbab5
💄 cleanup
2017-02-11 15:55:53 +01:00
Niels Lohmann
926af6d50b
🔀 merge branch 'develop' into TurpentineDistillery-feature/locale_independent_str_to_num
2017-02-11 15:17:47 +01:00
Niels Lohmann
662a9b8f3c
✏️ fixed more typos
2017-02-08 18:19:41 +01:00
Niels Lohmann
4746a4c536
💄 minor change
2017-02-08 17:56:43 +01:00
Niels Lohmann
8d88a1da2a
🔀 merged #379 and fixed conflicts
2017-02-05 13:13:41 +01:00
Niels Lohmann
c75865d88c
🐛 fixed -Weffc++
warnings
2017-02-01 15:13:21 +01:00
Niels Lohmann
b210f2dbf4
💄 minor refactoring
2017-01-29 21:40:37 +01:00
Niels Lohmann
38e4935db0
📝 added example and documentation for the meta function
2017-01-28 17:12:29 +01:00
Niels Lohmann
cdde1a9436
🔖 set version to 2.1.0
2017-01-28 16:46:03 +01:00
Niels Lohmann
d870826811
🔖 set version to 2.1.0
2017-01-28 16:03:35 +01:00
Niels Lohmann
cd9701b123
💄 cleanup
2017-01-26 20:51:30 +01:00
Niels Lohmann
77bb7af5d9
📝 added more documentation
2017-01-26 07:29:37 +01:00
Niels Lohmann
4d3053cd42
💄 some cleanup
2017-01-25 22:21:07 +01:00
Niels Lohmann
94d9b7bc86
📝 overworked documentation (re-added constructor examples)
2017-01-25 21:59:54 +01:00
Niels Lohmann
ec03c9c53e
📝 overworked docs #435
2017-01-25 19:01:31 +01:00
Mihai STAN
6198439f59
fix #414 - comparing to 0 literal
...
Overload comparison operators for all types that could be converted
to nullptr.
2017-01-24 22:33:37 +02:00
Niels Lohmann
c154f3133d
🚧 rephrased assertions
2017-01-24 15:02:35 +01:00
Niels Lohmann
250e5bf43d
💄 overworked documentation and indentation
2017-01-24 13:47:33 +01:00
Théo DELRIEU
9f8b270ed9
fix some warnings
2017-01-22 14:07:28 +01:00
Théo DELRIEU
9c6ef74a28
add static_asserts/remove the need for CopyConstructible in get
2017-01-21 19:12:40 +01:00
Théo DELRIEU
ba0b35f414
use typename U = uncvref_t where appropriate
2017-01-21 19:12:40 +01:00
Théo DELRIEU
37fd20b2eb
put uncvref_t, enable_if_t, value_t and operator<(value_t) in detail
2017-01-21 19:12:40 +01:00
Théo DELRIEU
7d771c71ed
put back type_name in basic_json
...
This can however not be done easily for value_t, since
external_constructor depends on it, as is operator< which was moved
outside basic_json too.
This is not really an issue, since all basic_json classes share the same
enum
2017-01-21 19:12:40 +01:00
Théo DELRIEU
f997758cad
remove useless forward declaration of primitive_iterator_t
2017-01-21 19:12:40 +01:00
Théo DELRIEU
40ba5a8b7b
remove inline keyword from anonymous namespace (not needed)
2017-01-21 19:12:40 +01:00
Théo DELRIEU
7f359017d2
rename template argument Json -> BasicJsonType
2017-01-21 19:12:40 +01:00
Théo DELRIEU
889b269a4f
rename template argument: BasicJson -> Json
2017-01-21 16:14:23 +01:00
Théo DELRIEU
a6b028286b
move conjunction/disjunction to the top of detail
2017-01-21 16:14:23 +01:00
Théo DELRIEU
d566bb81c4
use switchs where appropriate
2017-01-21 16:14:23 +01:00
Théo DELRIEU
1e20887cff
use JSON_THROW
2017-01-21 16:14:22 +01:00
Théo DELRIEU
447c6a670f
run make re2c
2017-01-21 16:14:22 +01:00
Théo DELRIEU
3e15b551e0
run make pretty
2017-01-21 16:14:22 +01:00
Théo DELRIEU
b56117b148
add noexcept tests
2017-01-21 16:14:22 +01:00
Théo DELRIEU
af94e712c7
add basic doxygen documentations
2017-01-21 16:14:22 +01:00
Théo DELRIEU
1d87097741
remove some boilerplate
2017-01-21 16:14:22 +01:00
Théo DELRIEU
e60e458a7e
move static_const to the detail namespace
2017-01-21 16:14:22 +01:00
Théo DELRIEU
07bc82d3a7
put const to the left
2017-01-21 16:14:22 +01:00
Théo DELRIEU
f2c71fafda
minor message/comments tweak
2017-01-21 16:14:22 +01:00
Théo DELRIEU
63e4249e9f
use a priority_tag instead of int and longs with sfinae-dispatch
2017-01-21 16:14:22 +01:00
Théo DELRIEU
b8012876a5
add noexcept checks, and some missing noexcepts
2017-01-21 16:14:22 +01:00
Théo DELRIEU
a9d5ae4fad
put back a specialization for containers with a reserve method
2017-01-21 16:14:22 +01:00
Théo DELRIEU
e247e01a6e
use static_casts to silence MSVC warnings
...
Those warnings are not "fixed", but that's intentional.
Truncations are expected when ArithmeticType is not the same type than
number_unsigned_t (or another basic_json template argument)
2017-01-21 16:14:22 +01:00
Théo DELRIEU
d0d8070422
add static_asserts
...
remove some useless trailing return types and && to help MSVC
2017-01-21 16:14:22 +01:00
Théo DELRIEU
e678c075dd
check for is_number_unsigned before is_number_integer
2017-01-21 16:14:22 +01:00
Théo DELRIEU
cb3d455bd2
do not const_cast when calling get_ptr
2017-01-21 16:14:22 +01:00
Théo DELRIEU
1f25ec5d36
add some constexpr + noexcept
2017-01-21 16:14:22 +01:00
Théo DELRIEU
29f9fe6ae9
remove one has_to/from_json template parameter
2017-01-21 16:14:22 +01:00
Théo DELRIEU
5839795725
remove useless helpers
2017-01-21 16:14:22 +01:00
Théo DELRIEU
b4cea6825d
remove is_compatible_array_type_impl trait
2017-01-21 16:14:22 +01:00
Théo DELRIEU
b2543e06d8
removed is_compatible_float_type trait
2017-01-21 16:14:22 +01:00
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
3d405c6883
add support for enum classes
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
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