L'extrait suivant est une erreur de compilation indiquant que la variable c
de type const(B)
ne peut être converti en ulong
.
import std.typecons;
void main()
{
Typedef!(ulong, -1, "B") b;
const(Typedef!(ulong, -1, "B")) c = 0;
b = c;
}
Cependant, la version équivalente utilisant le type simple sous-jacent ulong
compile bien.
N'est-ce pas l'idée d'un Typedef
qu'il doit fonctionner exactement comme le type sous-jacent sans permettre les conversions implicites vers/depuis le type sous-jacent ? Pourquoi y a-t-il une différence dans ce cas ?