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 | |
daw | |
daw::json | |
Customization point traits. | |
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. More... | |
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. More... | |
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 |