15 UNKNOWN = classify_scalar::scalar_invalid,
16 CSV_NULL = classify_scalar::scalar_null,
18 CSV_BOOL = classify_scalar::scalar_bool,
19 CSV_INT8 = classify_scalar::scalar_int8,
20 CSV_INT16 = classify_scalar::scalar_int16,
21 CSV_INT32 = classify_scalar::scalar_int32,
22 CSV_INT64 = classify_scalar::scalar_int64,
26 scalar_custom_begin = classify_scalar::scalar_custom_begin - 1
46 template<
classify_scalar::ScalarKind Kind>
47 typename std::enable_if<
48 Kind == classify_scalar::scalar_int8
49 || Kind == classify_scalar::scalar_int16
50 || Kind == classify_scalar::scalar_int32
51 || Kind == classify_scalar::scalar_int64,
52 void>::type set(std::int64_t parsed)
const noexcept {
53 value.integer = parsed;
56 template<
classify_scalar::ScalarKind Kind>
57 typename std::enable_if<Kind == classify_scalar::scalar_float, void>::type set(
long double parsed)
const noexcept {
58 value.floating = parsed;
61 template<
classify_scalar::ScalarKind Kind>
62 typename std::enable_if<Kind == classify_scalar::scalar_bool, void>::type set(
bool parsed)
const noexcept {
63 value.boolean = parsed;
66 template<
classify_scalar::ScalarKind Kind>
67 typename std::enable_if<Kind == classify_scalar::scalar_timestamp, void>::type set(std::uint64_t parsed)
const noexcept {
68 value.timestamp = parsed;
89 true>(first, last, CSVFieldScalarOutput{ scalar }, csv_field_policy_pack());
102 const char* first = in.data();
103 const char* last = first + in.size();
104 typedef classify_scalar::policy_pack<
105 classify_scalar::builtin_numeric_policy<
'.',
false>,
106 classify_scalar::builtin_timestamp_policy,
107 classify_scalar::builtin_bool_policy
108 > csv_field_policy_pack;
110 return classify_scalar::classify_scalar<
112 true>(first, last, classify_scalar::classify_only_output(), csv_field_policy_pack());