CommonType and non-built-in types

Artur Skawina art.08.09 at gmail.com
Tue Oct 1 12:02:54 PDT 2013


On 10/01/13 19:56, Dicebot wrote:
> Definition of common type is pretty simple - it is a type both types can be implicitly converted to.

It's a bit more complicated, even for the simple cases - for example two types
that implicitly convert to a narrower type can (and usually should) have a
different "common" type. In general, implicit conversions make things more
"interesting".

> For `int` and `BigInt` common type should be `BigInt` if it was possible to define that implicit conversion. AFAIK it is not possible and thus they can't have common type.

Yes. In practice, though, the required interface for these types may not require
the missing functionality (eg function calls won't work, but both construction
and assignment will - and this can be enough). The traits-like /hacks/ can be
useful then. That's of course just a work-around, not an argument against introducing
user defined implicit conversions.

artur


More information about the Digitalmars-d-learn mailing list