|
DAW JSON Link
|
#include "daw/json/impl/version.h"#include "daw/json/concepts/daw_nullable_value.h"#include "daw/json/daw_json_data_contract.h"#include "daw/json/daw_json_parse_options.h"#include "daw/json/impl/daw_json_default_constuctor.h"#include "daw/json/impl/daw_json_enums.h"#include "daw/json/impl/daw_json_link_types_aggregate.h"#include "daw/json/impl/daw_json_name.h"#include "daw/json/impl/daw_json_req_helper.h"#include "daw/json/impl/daw_json_type_options.h"#include <daw/cpp_17.h>#include <daw/daw_callable.h>#include <daw/daw_cpp20_concept.h>#include <daw/daw_fwd_pack_apply.h>#include <daw/daw_move.h>#include <daw/daw_string_view.h>#include <daw/daw_traits.h>#include <daw/impl/daw_make_trait.h>#include <string>#include <string_view>#include <type_traits>Go to the source code of this file.
Namespaces | |
| namespace | daw |
| namespace | daw::json |
| string_writer grows its string with resize_and_overwrite, leaving the new bytes uninitialized, when the standard library has it. That skips zero filling memory that is overwritten right away, but the bytes past what was written are never initialized, which resize_and_overwrite's precondition does not allow. Define DAW_JSON_NO_LESS_SAFE_STRING_WRITER to grow with resize( ) instead | |
| 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_CUSTOM (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_CUSTOM (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> | |
| DAW_CPP20_CONCEPT | 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 |