|
DAW JSON Link
|
#include "version.h"#include "daw_json_default_constuctor.h"#include "daw_json_enums.h"#include "daw_json_link_types_aggregate.h"#include "daw_json_name.h"#include "daw_json_req_helper.h"#include <daw/json/concepts/daw_nullable_value.h>#include <daw/json/daw_json_data_contract.h>#include <daw/cpp_17.h>#include <daw/daw_fwd_pack_apply.h>#include <daw/daw_move.h>#include <daw/daw_traits.h>#include <string>#include <string_view>#include <type_traits>Go to the source code of this file.
Namespaces | |
| namespace | daw |
| namespace | daw::json |
| Customization point traits. | |
| namespace | daw::json::anonymous_namespace{daw_json_traits.h} |
Typedefs | |
| template<typename T > | |
| using | daw::json::anonymous_namespace{daw_json_traits.h}::can_single_allocation_string = std::bool_constant< can_single_allocation_string_v< T > > |
| template<typename T > | |
| using | daw::json::anonymous_namespace{daw_json_traits.h}::is_zero_terminated_string = std::bool_constant< is_zero_terminated_string_v< T > > |
Functions | |
| daw::json::anonymous_namespace{daw_json_traits.h}::DAW_JSON_MAKE_REQ_TYPE_ALIAS_TRAIT (ignore_unknown_members_v, json_data_contract< T >::ignore_unknown_members) | |
| daw::json::anonymous_namespace{daw_json_traits.h}::DAW_JSON_MAKE_REQ_TYPE_ALIAS_TRAIT (is_exact_class_mapping_v, json_data_contract< T >::exact_class_mapping) | |
Variables | |
| template<typename > | |
| constexpr bool | daw::json::anonymous_namespace{daw_json_traits.h}::can_single_allocation_string_v = false |
| Can use the fast, pseudo random string iterators. They are InputIterators with an operator- that allows for O(1) distance calculations as we often know the length but cannot provide random access. For types that only use InputIterator operations and last - first for distance calc. | |
| template<typename T > | |
| constexpr bool | daw::json::anonymous_namespace{daw_json_traits.h}::force_aggregate_construction_v |
| template<typename... Ts> | |
| constexpr bool | daw::json::anonymous_namespace{daw_json_traits.h}::is_empty_pack_v = sizeof...( Ts ) == 0 |
| template<typename T > | |
| constexpr bool | daw::json::anonymous_namespace{daw_json_traits.h}::is_pinned_type_v |
| Is the type pinned in memory and unable to be copied/moved after construction(e.g. std::mutex). These types require using RVO in order to be used but that can have a penalty as std::current_exceptions( ) must be checked which is quite noticeable on MSVC. | |
| template<typename T > | |
| constexpr bool | daw::json::anonymous_namespace{daw_json_traits.h}::is_pointer_like_v |
| template<typename > | |
| constexpr bool | daw::json::anonymous_namespace{daw_json_traits.h}::is_zero_terminated_string_v = false |
| template<typename Constructor , typename T , typename ParseState > | |
| constexpr bool | daw::json::anonymous_namespace{daw_json_traits.h}::should_construct_explicitly_v |