Je suis programmeur en C et C ++, bien que je ne m'en tiens à aucun des deux langages et que j'écris un mélange des deux. Parfois, avoir du code dans des classes, peut-être avec une surcharge d'opérateur, ou des modèles et le oh si grand STL est évidemment une meilleure façon. Parfois, l'utilisation d'un simple pointeur de fonction C est beaucoup plus lisible et claire. Je trouve donc la beauté et l'aspect pratique dans les deux langues. Je ne veux pas entrer dans la discussion de "Si vous les mélangez et compilez avec un compilateur C ++, ce n'est plus un mélange, c'est tout C ++" Je pense que nous comprenons tous ce que je veux dire en les mélangeant. De plus, je ne veux pas parler de C vs C ++, cette question concerne C ++ 11.
C ++ 11 introduit ce que je pense être des changements importants dans le fonctionnement de C ++, mais il a introduit de nombreux cas spéciaux, exceptions et irrégularités qui changent la façon dont différentes fonctionnalités se comportent dans différentes circonstances, imposant des restrictions sur l'héritage multiple, des identificateurs qui agissent comme des mots clés, des extensions des littéraux de chaîne, capture de variable de fonction lambda, etc.
Je sais qu'à un moment donné dans le futur, quand vous dites C ++, tout le monde supposerait C ++ 11. Tout comme lorsque vous dites C de nos jours, vous voulez probablement dire C99. Cela me fait envisager d'apprendre C ++ 11. Après tout, si je veux continuer à écrire du code en C ++, je devrai peut-être à un moment donné commencer à utiliser ces fonctionnalités simplement parce que mes collègues l'ont fait.
Prenez C par exemple. Après tant d'années, il y a encore beaucoup de gens qui apprennent et écrivent du code en C. Pourquoi? Parce que la langue est bonne. Ce qui signifie bien, c'est qu'il suit de nombreuses règles pour créer un bon langage de programmation. Donc, en plus d'être puissant (ce qui est facile ou difficile, presque tous les langages de programmation le sont), C est régulier et a quelques exceptions, le cas échéant. C ++ 11 cependant, je ne pense pas. Je ne suis pas sûr que les changements introduits dans C ++ 11 améliorent le langage.
La question est donc: pourquoi devrais-je apprendre le C ++ 11?