On 9/18/15 2:05 PM, Nordlöw wrote:
On Friday, 18 September 2015 at 15:40:09 UTC, Jonathan M Davis wrote:
Regardless, VariantN couldn't have its opEquals explicitly marked with
pure, because it's a template and needs to work with types that don't
have a pure opEquals. But it _should_ be able to be inferred as pure
if the types in question have pure opEquals. However, the situation
with Object continues to haunt us.
I'm currently only in need of a VariantN of value-types and string.
Therefore I don't understand why I should need Object.opEquals
especially not in the case I gave above where Variant only contains a
`long` and a `double`.
Is there an easy way to modify `VariantN` to not need `Object.opEquals`
when `VariantN` contains only value types and strings?
The issue is not the comparison of the values, it's the comparison of
the TypeInfo, which is going to be Object.opEquals no matter what your
actual types are.
-Steve