Bin moi ça m'arrivais facile une à deux fois par mois, du coup, ça reste quand même le gros point noire d'une distribution autrement excellente. Après tout est question d'usage.
Par contre avec const int **p, en D tout est constant p, *p, **p, et c'est pas le cas en C++, et tant mieux. C'est quand même vachement pratique de pouvoir maintenir des listes de pointeurs vers des tableaux de constantes. Et si on veut que p, *p, **p soient constant, on écrit ça:
constint*const*constp;
C'est un peu lourd, mais ça a le mérite d'être claire.
Après pour ce qui est d'être thread-safe, j'ai l'impression que la seule raison pour qu'immutable soit plus sûr est l'impossibilité de faire un const_cast (ou plutot immutable_cast). Mais si on utilise pas const_cast, je vois pas en quoi le const de C++ est moins thread-safe que le immutable de D.
[^] # Re: Présence dans Debian
Posté par cyrilleberger . En réponse à la dépêche Mesa 9.1 est sorti. Évalué à 1.
Bin moi ça m'arrivais facile une à deux fois par mois, du coup, ça reste quand même le gros point noire d'une distribution autrement excellente. Après tout est question d'usage.
[^] # Re: Le langage D est-il choisi lorsqu'on ne sait pas avec quoi coder ?
Posté par cyrilleberger . En réponse à la dépêche Le langage D. Évalué à 1.
Sauf que
const
est aussi transitif en C++ pour les types composites.Avec gcc, le code suivant renvoi une erreur:
Par contre avec
const int **p
, en D tout est constantp
,*p
,**p
, et c'est pas le cas en C++, et tant mieux. C'est quand même vachement pratique de pouvoir maintenir des listes de pointeurs vers des tableaux de constantes. Et si on veut quep
,*p
,**p
soient constant, on écrit ça:C'est un peu lourd, mais ça a le mérite d'être claire.
Après pour ce qui est d'être thread-safe, j'ai l'impression que la seule raison pour qu'immutable soit plus sûr est l'impossibilité de faire un const_cast (ou plutot immutable_cast). Mais si on utilise pas const_cast, je vois pas en quoi le
const
de C++ est moins thread-safe que leimmutable
de D.