Citation:
Pour une application standard dans un OS standard, tu ne peux pas sortir de la mémoire virtuelle à cause de la MMU (hors mode noyau).
L'OS ne fait qu'intercepter l'accès à des adresses virtuelles non légales et te renvois un Segmentation Fault sous UNIX et une boite d'erreur sous Windows.
On est d'accord mais on peut bien pourrir sa propre application si on a une adresse incorrecte mais légale, non?
Citation:
Tu peux avoir pleins de pépins. Mais quand tu utilises un std::vector ou similaire, tu as une gestion des erreurs (y compris les indices trop grands, ou quoi) avec exceptions, par exemple.
Je parlais des tableaux/pointeur. Il me semble bien que comme en C, il n'y a pas de contrôle fait dessus, non?
Citation:
Oui, assez subjectif. J'aurais compris que tu trouves un opérateur comme <<|||||||||******----+++<< peut pratique, mais << ça va je trouve
J'avais posté mon message non terminé par erreur
Ce n'est pas la lisibilité de la chose qui me gène mais le fait que ce n'est pas cohérent avec le fonctionnement normal d'un l'opérateur.
Il me semble qu'en toute logique un opérateur devrait simplement retourner un résultat sans interagir avec autre chose que ces opérandes et rester sans effet de bord (sauf évidement pour les opérateurs d'affectation)
Citation:
On fait de notre mieux pour répandre les bonnes pratiques d'aujourd'hui en C++, après c'est aux programmeurs C++ de se former au mieux. Par contre, tout le monde est d'accord ici je pense pour dire (à nouveau) que le C++ donne plus de libertés, mais avec les risques qui viennent avec.
Ce que je trouve gênant c'est que les outils pour mettre en œuvre ces bonnes pratiques(comme les pointeurs intelligents) ne fassent pas partie du langage ni même de la bibliothèque standard.
Sur le fait que C++ est plus souple et aussi plus risqué, je pense que tout le monde est d'accord.