@@ -66,7 +66,7 @@ namespace daw::json {
66
66
" The method to_json_data in the json_data_contract does not match "
67
67
" the mapping. The number of members is not the same." );
68
68
static_assert (
69
- ( (not std::is_rvalue_reference_v<Ts>) and ... ),
69
+ ( ( not std::is_rvalue_reference_v<Ts> ) and ... ),
70
70
" The Tuple contains rvalue references. The values "
71
71
" passed are now dangling. daw::forward_nonrvalue_as_tuple in "
72
72
" <daw/daw_tuple_forward.h> can forward only non-rvalue refs and "
@@ -87,11 +87,10 @@ namespace daw::json {
87
87
* @param parse_state JSON data to parse
88
88
* @return A T object
89
89
*/
90
- template <typename JsonClass, typename ParseState>
90
+ template <typename JsonClass, bool /* KnownBounds */ , typename ParseState>
91
91
[[nodiscard]] DAW_ATTRIB_INLINE static constexpr json_details::
92
92
json_result_t <JsonClass>
93
- parse_to_class ( ParseState &parse_state,
94
- template_param<JsonClass> = template_arg<JsonClass> ) {
93
+ parse_to_class ( ParseState &parse_state ) {
95
94
96
95
static_assert ( json_details::is_no_name_v<JsonClass> );
97
96
static_assert ( json_details::is_a_json_type_v<JsonClass> );
@@ -179,10 +178,10 @@ namespace daw::json {
179
178
using result_type =
180
179
json_details::json_class_parse_result_t <Constructor, json_member>;
181
180
182
- template <typename JsonClass, typename ParseState>
181
+ template <typename JsonClass, bool KnownBounds, typename ParseState>
183
182
[[nodiscard]] DAW_ATTRIB_INLINE static constexpr json_details::
184
183
json_result_t <JsonClass>
185
- parse_to_class ( ParseState &parse_state, template_param<JsonClass> ) {
184
+ parse_to_class ( ParseState &parse_state ) {
186
185
static_assert ( json_details::is_a_json_type_v<JsonClass> );
187
186
static_assert ( json_details::has_json_data_contract_trait_v<
188
187
json_details::json_result_t <JsonClass>>,
@@ -194,7 +193,7 @@ namespace daw::json {
194
193
template_args<JsonClass, daw::construct_a_t <
195
194
json_details::json_result_t <JsonClass>>>,
196
195
parse_state,
197
- json_details::parse_value<json_member, false >(
196
+ json_details::parse_value<json_member, KnownBounds >(
198
197
parse_state, ParseTag<json_member::expected_type>{ } ) );
199
198
}
200
199
};
@@ -321,10 +320,10 @@ namespace daw::json {
321
320
* @param parse_state JSON data to parse
322
321
* @return A T object
323
322
*/
324
- template <typename JsonClass, typename ParseState>
323
+ template <typename JsonClass, bool /* KnownBounds */ , typename ParseState>
325
324
[[nodiscard]] DAW_ATTRIB_INLINE static constexpr json_details::
326
325
json_result_t <JsonClass>
327
- parse_to_class ( ParseState &parse_state, template_param<JsonClass> ) {
326
+ parse_to_class ( ParseState &parse_state ) {
328
327
static_assert ( json_details::is_a_json_type_v<JsonClass> );
329
328
static_assert ( json_details::has_json_data_contract_trait_v<
330
329
json_details::json_base_type_t <JsonClass>>,
@@ -394,10 +393,10 @@ namespace daw::json {
394
393
* @param parse_state JSON data to parse
395
394
* @return A T object
396
395
*/
397
- template <typename JsonClass, typename ParseState>
396
+ template <typename JsonClass, bool /* KnownBounds */ , typename ParseState>
398
397
[[nodiscard]] DAW_ATTRIB_INLINE static constexpr json_details::
399
398
from_json_result_t <JsonClass>
400
- parse_to_class ( ParseState &parse_state, template_param<JsonClass> ) {
399
+ parse_to_class ( ParseState &parse_state ) {
401
400
static_assert ( json_details::is_a_json_type_v<JsonClass> );
402
401
static_assert ( json_details::has_json_data_contract_trait_v<
403
402
json_details::json_base_type_t <JsonClass>>,
@@ -406,8 +405,8 @@ namespace daw::json {
406
405
407
406
std::size_t const idx = [parse_state]( ) mutable {
408
407
return Switcher{ }( std::get<0 >(
409
- json_details::parse_value_class<json_base::json_class<tag_class_t >>(
410
- parse_state )
408
+ json_details::parse_value_class<json_base::json_class<tag_class_t >,
409
+ false >( parse_state )
411
410
.members ) );
412
411
}( );
413
412
daw_json_assert_weak ( idx < sizeof ...( JsonClasses ),
0 commit comments