Variant
value, as, and to [Variant class]
There are several variations of accessors to Variant values used for different purposes:
Accessor | Description |
---|---|
value |
Returns a reference to the currently held value. Requires it be of the type T otherwise would cause undefined behavior. |
as |
converts the underlying value of the variant to T in place, modifying the variant, and returns a reference to it. Safe to call if the types don't match but requires T to be one of the supported types, otherwise it will cause a compilation error. |
to |
converts the underlying value to T without modifying the variant and returns the result by value. Safe to call if the types don't match, T can be arbitrary. |
- When reading complex values like string, array, and map, using the value operator uses a reference (not a copy) so it's more efficient.
- When assigning a value to a
Variant
, theasXXX()
methods can be set the variant to be that type. Useful when building the data structure to set ledger values. - When reading values from a
Variant
, thetoXXX()
methods can be used to copy the data convert it as necessary, without modifying the original.