48 Common::IAnyOf<T, bool, BLOB, Date, DateTime, wstring, String, Mapping<String, VariantValue>, map<wstring, VariantValue>, Sequence<VariantValue>, vector<VariantValue>>
175 using FloatType_ =
long double;
181 using IntegerType_ =
long long int;
187 using UnsignedIntegerType_ =
unsigned long long int;
231 using Type::eBoolean;
233 using Type::eDateTime;
235 using Type::eInteger;
237#if qCompilerAndStdLib_InternalCompilerErrorTSubCopy_Buggy
238 static constexpr Type eNull = Type::eNull;
243 using Type::eUnsignedInteger;
279 template <Characters::IConvertibleToString STRINGISH_T>
281 requires (not same_as<remove_cvref_t<STRINGISH_T>,
String>);
283 explicit VariantValue (
const map<wstring, VariantValue>& val);
286 explicit VariantValue (
const vector<VariantValue>& val);
292 template <
typename T>
294 requires (is_convertible_v<T, VariantValue>);
295#if qStroika_HasComponent_boost
305 template <
typename T>
312 nonvirtual Type GetType ()
const;
323 nonvirtual
bool empty ()
const;
330 nonvirtual
String ToString ()
const;
378 template <
typename RETURNTYPE>
379 nonvirtual RETURNTYPE
As () const
380 requires (Private_::IVariantValueAsBasic_<RETURNTYPE> or
381 (Common::IOptional<RETURNTYPE> and Private_::IVariantValueAsBasic_<Common::ExtractValueType_t<RETURNTYPE>>));
393 nonvirtual explicit operator
bool () const;
398 template <typename T>
399 explicit operator T () const
400 requires (requires (T) { As<T> (); })
413 nonvirtual
bool IsConvertibleTo (Type to)
const;
421 nonvirtual VariantValue ConvertTo (Type to)
const;
433 nonvirtual VariantValue Normalize ()
const;
436 nonvirtual
bool AsBool_ ()
const;
437 nonvirtual Date AsDate_ ()
const;
438 nonvirtual DateTime AsDateTime_ ()
const;
439 nonvirtual BLOB AsBLOB_ ()
const;
440 nonvirtual IntegerType_ AsInteger_ ()
const;
441 nonvirtual UnsignedIntegerType_ AsUnsignedInteger_ ()
const;
442 nonvirtual FloatType_ AsFloatType_ ()
const;
443 nonvirtual String AsString_ ()
const;
444 nonvirtual Mapping<String, VariantValue> AsMapping_ ()
const;
445 nonvirtual Sequence<VariantValue> AsSequence_ ()
const;
446#if qStroika_HasComponent_boost
447 nonvirtual boost::json::value AsBoostJSONValue_ ()
const;
454 nonvirtual strong_ordering operator<=> (
const VariantValue& rhs)
const;
460 nonvirtual
bool operator== (
const VariantValue& rhs)
const;
463 struct EqualsComparer;
466 struct ThreeWayComparer;
472 shared_ptr<IRep_> fVal_;
475 template <
typename T>
479 static const shared_ptr<IRep_> kFalseRep_;
480 static const shared_ptr<IRep_> kTrueRep_;