DAW JSON Link
Loading...
Searching...
No Matches
daw_json_simd_iterator.h
Go to the documentation of this file.
1// Copyright (c) Darrell Wright
2//
3// Distributed under the Boost Software License, Version 1.0. (See accompanying
4// file LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt)
5//
6// Official repository: https://github.com/beached/daw_json_link
7//
8
9#pragma once
10
13
14#if defined( DAW_JSON_HAS_SIMD )
15
20
21#include <type_traits>
22
23namespace daw::json {
24 inline namespace DAW_JSON_VER {
25 namespace json_details::simd_details {
26 template<typename JsonMember>
27 struct unknown_json_simd_block_iterator_error;
28
29 template<typename JsonMember, typename CharT, auto... PolicyFlags>
30 using json_simd_block_iterator = std::conditional_t<
31 ( JsonMember::underlying_json_type == JsonBaseParseTypes::Bool ),
32 json_simd_block_iterator_bool<JsonMember, CharT, PolicyFlags...>,
33 std::conditional_t<
34 ( JsonMember::underlying_json_type == JsonBaseParseTypes::Number ),
35 json_simd_block_iterator_number<JsonMember, CharT, PolicyFlags...>,
36 std::conditional_t<
37 ( JsonMember::underlying_json_type == JsonBaseParseTypes::String ),
38 json_simd_block_iterator_string<JsonMember, CharT, PolicyFlags...>,
39 std::conditional_t<
40 ( JsonMember::underlying_json_type == JsonBaseParseTypes::Class ),
41 json_simd_block_iterator_class<JsonMember, CharT, PolicyFlags...>,
42 unknown_json_simd_block_iterator_error<JsonMember>>>>>;
43 } // namespace json_details::simd_details
44
45 inline namespace experimental {
51 template<typename JsonMember, typename CharT = char, auto... PolicyFlags>
52 using json_simd_block_iterator =
53 json_details::simd_details::json_simd_block_iterator<
54 json_details::json_deduced_type<JsonMember>, CharT, PolicyFlags...>;
55 } // namespace experimental
56 } // namespace DAW_JSON_VER
57} // namespace daw::json
58
59#endif
Customization point traits.
#define DAW_JSON_VER
The version string used in namespace definitions. Must be a valid namespace name.
Definition version.h:20