La surcharge d'opérateurs, ça n'est pas un exemple typique de sucre syntaxique pour des cas particuliers? Le compilo fait déja plein de trucs en douce pour rendre l'écriture du code moins galère (typiquement, des cast automatiques dans tous les sens); remplacer a != b par !(a==b) quand l'opérateur != n'est pas défini (ou ++ par += 1), ça me semble nettement moins problématique que plein de trucs chelous autorisés par le standard (comme le court-circuitage du constructeur de copie).
Je ne doute pas que les gens qui écrivent le standard sont des gens très compétents, qui prennent des décisions après longue reflexion. J'ai juste l'impression que ces gens se servent d'abord eux-mêmes, et ont une vision hyper-technique du langage et de son évolution. Pour revenir au sujet du journal par exemple, c'est rigolo de pouvoir éviter un long switch par une utilisation alambiquée d'une syntaxe avancée de méta-programmation. Mais dans le même temps, tu gères encore à la main l'affectation et le constucteur de copie d'une classe qui contient 49 variables membres à copier telles quelles et un malheureux pointeur (c'est évidemment un problème de conception, mais ce problème de conception révèle un comportement étrange du standard).
[^] # Re: Namespace bits ?
Posté par arnaudus . En réponse au journal Jouons avec le ``switch`` et C++17. Évalué à 3.
La surcharge d'opérateurs, ça n'est pas un exemple typique de sucre syntaxique pour des cas particuliers? Le compilo fait déja plein de trucs en douce pour rendre l'écriture du code moins galère (typiquement, des cast automatiques dans tous les sens); remplacer a != b par !(a==b) quand l'opérateur != n'est pas défini (ou ++ par += 1), ça me semble nettement moins problématique que plein de trucs chelous autorisés par le standard (comme le court-circuitage du constructeur de copie).
Je ne doute pas que les gens qui écrivent le standard sont des gens très compétents, qui prennent des décisions après longue reflexion. J'ai juste l'impression que ces gens se servent d'abord eux-mêmes, et ont une vision hyper-technique du langage et de son évolution. Pour revenir au sujet du journal par exemple, c'est rigolo de pouvoir éviter un long switch par une utilisation alambiquée d'une syntaxe avancée de méta-programmation. Mais dans le même temps, tu gères encore à la main l'affectation et le constucteur de copie d'une classe qui contient 49 variables membres à copier telles quelles et un malheureux pointeur (c'est évidemment un problème de conception, mais ce problème de conception révèle un comportement étrange du standard).