Aller au contenu

Discussion:C++

Le contenu de la page n’est pas pris en charge dans d’autres langues.
Une page de Wikipédia, l'encyclopédie libre.
Autres discussions [liste]
  • Admissibilité
  • Neutralité
  • Droit d'auteur
  • Article de qualité
  • Bon article
  • Lumière sur
  • À faire
  • Archives
  • Commons


Histoire du C++

[modifier le code]

La page contient une partie "Histoire" et plus loin une partie "Histoire du C++". Je trouve que c'est un peu lourd. Ne vaudrait-il pas mieux fusionner/regrouper en une seule partie?

--Ropieur 15 septembre 2009 22:31 (CEST)



Bonjour, je me pose une question :

<<La F.A.Q C++/CLI Les réponses aux questions sur C++/CLI>>

Que fout-ce là ?


Un seul hello, world est ce qu'il faut. Sinon chacun va venir avec son placement d'accolades, son utilisation des namespace, sa façon de déclarer les paramètres formels, son indentation... En outre, le return 0; est inutile en C++. Déjà qu'en C on pourrait très bien justifier un exemple sans le return 0;. Marc Mongenet 16 jun 2004 à 05:03 (CEST)

Il aurait peut être été intéressant de rajouter que std:: est inutile si l'on a : using namespace std; non ? Francois Trazzi

Pas pour cet exemple anecdotique. Mais sûrement dans un chapitre sur les namespace. Cet article est plus proche de l'état d'ébauche que de l'article fini, pratiquement tout reste à faire. Marc Mongenet 16 jun 2004 à 09:18 (CEST)

On pourrait aussi préciser que le terme C++ provient de l'écriture en langage C/C++ de l'"incrémentation" (je crois meme, la "post-incrémentation") d'une variable. C++ est donc la variable C incrémenté. Bidoushowan

Oui. Marc Mongenet 16 aoû 2004 à 15:29 (CEST)

Extensions de fichiers

[modifier le code]

Le but de ce petit bout de page est de recence les diffrentes extensions de fichier autour de cpp :

".cpp", ".cc", ".C"
fichier source d'implémentation
".h", ".hpp"
fichier source d'entête
".o", ".obj"
fichier objet après compilation du source

<-- la suite ici

On trouve aussi parfois ".cxx" et ".hxx". Durandal 6 novembre 2005 à 21:21 (CET)[répondre]

une (trop?) grande partie de l'article est consacrée aux template, qui implémentent en C++ une notion déjà (partiellement) existante en ADA (avec les "generic") et qui va prendre de plus en plus d'importance (sera implanté dans C# notamment). Je pense qu'il faut créer une page à ce sujet, et tiens, je l'ai fait ;-)

Goulu 1 août 2005 à 10:03 (CEST)[répondre]

Bonne idée. Pfv2 3 octobre 2005 à 18:01 (CEST)[répondre]


Concernant la section L'encapsulation en C++

[modifier le code]
  • On y parle de fonctions membres. Ne serait-il pas plus adapté de parler de méthodes (concerne vraisemblalement également d'autres sections)?
Non, bien au contraire. Méthode est un terme impropre au C++. On va le retrouver dans d'autres langages ou dans la spéc d'UML. D'ailleurs dans cette dernière, une méthode correspond à la mise en oeuvre d'une opération. Vu sous cet angle, cela signifierait qu'une méthode est retranscrite en C++ par une fonction membre virtuelle; l'opération étant une fonction membre virtuelle pure. Parler de méthode en C++ est courant, mais il s'agit d'un abus de langage -- un peu comme de parler de polymorphisme pour désigner le polymorphisme d'inclusion (cf la taximonie détaillée par en:Luca_Cardelli).
Pour bien faire, il faudrait au contraire remplacer toutes les occurrences de méthode par fonction membre -- enfin, si on veut être respectueux jusqu'au bout de la terminologie C++.
--Luc Hermitte 27 avril 2007 à 11:16 (CEST)[répondre]
  • On y parle de fonctions déclarés comme étant friend ; il me semble que l'on peut également déclarer des classes comme étant friend (autorisant ainsi cette classe à accèder aux membres private).
Tout à fait
--Luc Hermitte 27 avril 2007 à 11:16 (CEST)[répondre]
  • Concernant les membres déclarés comme protected. Si une classe A déclare des membres protected, ceux-ci seront accessibles par une classe B héritant directement de la classe A. Mais si la classe B hérite de la classe A de manière private, ces membres seront considèrés comme des membres private de la classe B, et donc inaccessibles à une classe C qui hériterait de B. Par contre, si la classe B hérite de la classe A de manière public, ces membres seront considèrés comme des membres protected de la classe B et donc accessibles à une classe C héritant directement de la classe B.
Je n'ai pas regardé les détails, il y a des tableaux un peu partout qui résument l'évolution des droits d'accès au fil des héritages. Mais peu importe. C'est un détail syntaxique moins bien important AMHA que des aspects sémantiques, ou encore que la dichotomie "scolaire" Réutilisation (importation de code par héritage) Vs Subtituabilité (cf EST-UN, Principe de Substitution de Liskov, ...).
Du coup, je ne suis pas sûr que cela soit très pertinent.
NB: s/directement/publiquement/ ; directement sans aucun spécification implique public avec les struct, private avec les class.
--Luc Hermitte 27 avril 2007 à 11:16 (CEST)[répondre]

Si quelques spécialistes du C++ peuvent confirmer, je modifierais l'article en conséquence.

Epeios

Les pointeurs

[modifier le code]

Pourquoi avoir viré le passage sur les pointeurs ? Il ne semble pas que ça aie été discuté ici. Par ailleurs il n'y a même pas un lien vers un article Pointeur. Je trouve ça un peu dommage.
theo 9 février 2006 à 21:57 (CET)[répondre]


Les pointeurs ne forment pas un élément clé du C++ , bien au contraire! Certaines bibliothèques C++ permettent de se passer complétement de pointeur à l'utilisation (non à la programmation j'en conviens!) et donner un exemple de pointeurs semble plus adéquat pour le C que le C++ ! Ici il faudrait mieux parler de passage de paramètres ou de const pour montrer la puissance du langage !

--Zzerome 9 février 2006 à 22:26 (CET)[répondre]


Peut-être. Mais pour supprimer une section entière d'un article, il est souhaitable d'en discuter avant, d'expliquer la cause lors de la suppression et, ici, de faire au moins un paragraphe expliquant qu'on peut utiliser des pointeurs en C++ : après la modification, l'article ne contenait plus le mot "pointeur" ! J'ai restauré la section le temps que la discussion se fasse. Peter17 9 avril 2006 à 14:32 (CEST)[répondre]
Bon je n'avais pas lu ce paragraphe avant de rétablir dans le document...au temps pour moi. Bon la discussion peut avoir lieu. Je donne mes arguments en vrac:
  • Les pointeurs sont expliqués (ou doivent l'être) dans le C
  • L'usage des pointeurs n'est pas incontournable loin de la
  • Des pages trop longues ou trop complètes nuisent souvent à la compréhension d'un concept. Il faut faire des choix sur ce que l'on présente --Zzerome 9 avril 2006 à 14:38 (CEST)[répondre]
Je pense qu'il faudrait mentionner les pointeurs à au moins un endroit sur la page par une phrase du style "comme le C, le C++ permet l'utilisation de pointeurs" Peter17 19 avril 2006 à 10:53 (CEST)[répondre]

article étoffé

[modifier le code]

J'ai rajouté pas mal de sujets dans l'articles avec des exemples d'illustration. Je propose de

  1. compléter la partie objet
  2. découper la page en plusieurs sous articles tout en reprenant le même plan
  3. rajouter une charte graphique coloré et une navigation grâce à un menu (template) à droite.


qu'en pensez vous ? Merrheim 8 mars 2006 à 17:52 (CET)[répondre]


Il faudra également rajouté des liens internes. Merrheim 9 mars 2006 à 09:16 (CET)[répondre]

Votre avis

[modifier le code]

J'ai modifié en profondeur cet article :

  1. l'appréciez vous ?
  2. le trouvez vous hors sujet ?
  3. le trouvez vous trop complet (nous sommes sur une encyclopédie) ?
  4. aimez-vous ce genre de charte graphique ?
  5. aimeriez-vous qu'on introduise ce niveau de détail pour chaque langage ?
  6. remarque : il reste encore de nombreux liens vers d'autres articles à rajouter.

merci Merrheim 9 mars 2006 à 13:00 (CET)[répondre]

Que d'innovation ;) (je parle uniquement sur la forme) Je ne sais pas si tout le monde va adhérer... mais c'est le risque lié à toute innovation :p
Pour ma part, je trouve qu'il faudrait conserver sur l'article le résumé d'introduction et des sections classiques telles que par exemple l'"historique" et "voir aussi". En gros que quelquesoit l'article encyclopédique, le lecteur retrouve le desciptif traditionnel.
Après pour des exemples, des détails de définition ou de structure du langage, je te rejoins sur l'idée de faire des sous-sections. Même si je pense que jusque maintenant sur wikipédia 1 concept = 1 article...
Mon avis résumé : impossible de conserver cette présentation en l'état, mais il est possible de conserver l'idée de sous pages pour certains détails techniques propres au C++.
Le seul soucis, c'est comment récupérer en un shoot l'ensemble de l'article. Mais je commence à être hors sujet là :) --Boly 9 mars 2006 à 13:36 (CET)[répondre]
Tiens j'ai mis une nouvelle version. cliques sur Avancé tout en haut !! Merrheim 9 mars 2006 à 16:24 (CET)[répondre]
C'est exactement la réflexion que je m'étais faite, à savoir affiner un article suivant le niveau du lecteur tant sur la technique que sur le fond de l'article. maintenant peut être y aura-til un problème de mise à jour des données partout mais j'ai pas eu trop le temps d'affiner la question en lisant dans le détail. En tout cas moi je trouve çà pile-poil niveau conception d'un article. Pour avoir d'autres avis avant de modifier les autres langages, tu peux passer une annonce au bistro pour que la communauté en discute ;) Bravo encore pour toutes les idées innovantes ;) --Boly 9 mars 2006 à 18:37 (CET)[répondre]
J'avais pas regardé le bistro dsl :)
Liens utiles :

Un lien utile de plus : Discuter:C++/Avancé/Suppression. R 10 mars 2006 à 01:35 (CET)[répondre]

Je crois que, vraiment, c'est trop de modifications d'un seul coup. L'organisation en modèle rend quasi-impossible la modification par un débutant. Un des principes de WP c'est de rester simple et accessible.
Sinon, le contenu est long, très long, mais ça ne me pose pas trop de problème, le but peut tout à fait d'être exhaustif sur un sujet. Cependant, je proposerais plutôt un déplacement des explications sur le langage vers un article Syntaxe du C++, en gardant les informations générales (historique, etc.) dans C++. nojhan 10 mars 2006 à 09:18 (CET)[répondre]
Je suis d'accord ! En plus pour une partie cela fais double emplois avec la wikiversité et le cours de C++. Je pense qu'un remaniement s'impose et que la création de liens vers Wikiversity aussi Ppignol (d) 3 octobre 2009 à 03:51 (CEST)[répondre]

Suppression

[modifier le code]

J'ai supprimé mes modifications : il semble qu'elles ne plaisaient pas § Merrheim 10 mars 2006 à 11:57 (CET)[répondre]

J'ai créé un petit modèle utilisateur en éssai, à améliorer
ou suprimmer s'il n'est pas le bienvenu...
SiMonkey 10 mai 2006 à 19:25 (CEST)[répondre]

Modèle renommé avec le nom correct (avec un C majuscule). Verdy p 26 octobre 2006 à 21:03 (CEST)[répondre]
Le modèle parle de C# et C++. Quelle drôle d'idée, C et C++, pourquoi pas, mais C# ? Marc Mongenet 26 octobre 2006 à 22:11 (CEST)[répondre]
C'est vrai que je les préfèrerais séparés moi aussi. Mais sinon pourquoi pas, c'et sympa :) --Shlublu bla 27 octobre 2006 à 09:07 (CEST)[répondre]

liens externes

[modifier le code]

Bonjour,
J'ai supprimé la quasi-totalité des liens externes car ceux-ci (tutoriaux, forums, sites des projets C++; les liens sur les compilos VC et GCC sont deja dans la section compilateurs) faisaient plutot office d'annuaire de liens liés au C++ (cf Wikipédia:Ce que Wikipédia n'est pas). J'ai laissé cependant Référence des langages C et C++ qui me semble apporter une valeur à l'article. Maloq causer 26 décembre 2006 à 13:50 (CET)[répondre]

Déclaration vs. définition

[modifier le code]

Bonjour,

class MessageInternet {

private:
 string m_sSujet;
 string m_sExpediteur;
 string m_sDestinataire;
public:
 MessageInternet (string sujet, string expediteur, string destinataire);
 string GetSujet ();
 string GetExpediteur ();
 string GetDestinataire ();

};

est la DEFINITION de la classe MessageInternet. Une DECLARATION serait simplement

class MessageInternet;

Sur l'exemple d'utilisation de "using namespace std"

[modifier le code]

Etant novice en programmation c++, je m'interrogeais sur le dernier exemple dans la section "Hello World".

#include <iostream>
using namespace std;
int main()
{
    std::cout << "Hello, new world!\n";
}

Marquer le "std::" n'est-il pas redondant ? Peut-être cela se justifie-t'il, mais cela contredit à la fois ce que je sais sur le c++ et le texte de l'article (Entre autre "et nous évite à utiliser l'opérateur de résolution de porté", à propos de "using namespace std").

C'est bien une contradiction. Il y a de plus une typo. Vincent Lextrait 6 juillet 2007 à 17:44 (CEST)[répondre]

Bibliographie

[modifier le code]

En regardant les liens en bibliographie à ce jour (19 juin 2008), je vois deux ouvrages pas des plus côtés qui sont cités parmi les sources d'apprentissage. Et pas grand chose du côté des ouvrages techniquement corrects, et/ou pédagogiquement modernes (AC++ de Koenig et Moo (non traduit), Je me Lance de Glassborrow (innovant, mais limité à la partie impérative), C++ Primer de Lippman, Lajoie et Moo (traduit seulement en 3e édition))

Je me doute que de procéder maintenant, et sans rien expliquer, à la modification c'est le coup à voir ces anti-références réapparaitre. Du coup j'initie cette section pour confronter ma vision de la chose, et garder une trace des choix -- non, parce que voir des liens comme celui vers le SdZ disparaitre et réapparaitre sans cesse, je ne trouve pas ça top efficace.

--Luc Hermitte (d) 19 juin 2008 à 12:02 (CEST)[répondre]

Je propose que l'on rajoute des références comme Scott Meyers avec ses 2 ouvrages "Effective C++" et "More effective C++", ainsi que Herb Sutter avec ses 2 ouvrages "Exceptional C++" et "More Exceptional C++". Ils représentent à mon sens de très bonne sources pour une bonne maîtrise du langage.

--Ropieur 20 juin 2009 14:33 (CEST)

Tout à fait d'accord. Ce sont des incoutournables. --Jean-Christophe BENOIST (d) 20 juin 2009 à 16:54 (CEST)[répondre]

Pédagogie : Références avant Pointeurs

[modifier le code]

Le C++ a un grand pouvoir et donc de grandes responsabilités : les pointeurs !!

Et pour se simplifier la tâche, pour sécuriser les traitements, on a inventer les références !!! Dans 99 % des cas, les références peuvent remplacer les pointeurs, à condition de coder proprement.

Or comme la plupart des élèves en informatique apprennent les pointeurs avant les références, ils n'en sentent pas la puissance, ils ont toujours l'impression de ne pas pouvoir se passer des pointeurs et en mettent à toutes les sauces.

Il serait bon que Wiki change un peu cette tendance. La première chose à faire serait de présenter les références avant les pointeurs... afin que les lecteurs voient tout ce qu'il est possible de faire avec les références... et seulement ensuite, on montrerai les pointeurs, si possible dans des cas où une référence n'aurait pas fait l'affaire.

Histoire à suivre.

Je ne suis pas d'accord les pointeurs sont essentiels et s'en priver fait montre d'une grande bêtise et d'une incompréhension du langage il suffit de respecter quelques règles simples pour garantir la sécurité d'emplois de cet outil merveilleux. L'avantage principal du pointeur est de permettre d'éviter les piratages par injection de code conjugués aux débordements de pile. Si tous les développeurs développaient leurs tableaux et chaines en tas comme cela devrais être normalement le cas au lieux de les mettre bestialement en pile, cela ferais belle lurette qu'il n'y aurais plus de faille de sécurités (qu'un gamin de 10 ans puisse utiliser) dans les logiciels. Les références sont bien pratiques pour certains cas mais n'offrent pas la puissance qu'offrent les pointeurs notamment pour les programmes industriels qui accèdent directement au matériel. C'est d'ailleurs le gros problème de JAVA qui ne possède aucun moyens d'accéder au matériel en java pur, il est obligé de s'appuyer sur un autre langage comme le C/C++ au travers d'importation de DLL. Ppignol (d) 3 octobre 2009 à 03:40 (CEST)[répondre]

Introduction — C++ n'est pas C

[modifier le code]

Le C++ n'est pas le C, comme trop de gens le croient. Je propose donc de supprimer le commentaire suivant de l'introduction : (le 1er si on le regroupe avec le C), afin de ne pas continuer à induire les gens en erreur. Pylade (d) 19 janvier 2010 à 13:37 (CET)[répondre]

Plutôt d'accord; de toutes façons, je trouve que le classement n'a pas grand sens, en ce qui concerne le C et le C++. Je vois beaucoup de programmeurs qui utilisent un compilateur C++ et qui programment en fait majoritairement en C, avec peut être quelques std::string qui trainent ici et là, mais sans classes, sans structures STL etc.. Ce genre de programmes (fréquents) sont comptabilisés en C ou en C++ ? Jean-Christophe BENOIST (d) 19 janvier 2010 à 14:02 (CET)[répondre]

Mais le C++ est une amélioration du C donc un programme en C sera le même en C++ mais la réciproque n'est pas valable

> Non, pas d'accord. Le C++ est une implémentation en C d'une logique orientée objet. C'est un choix à la création. Mais le but initial est d'avoir un langage orienté objet. Ca aurait pu être Pascal, Caml, Fortran... mais ca a été C. Donc c'est un peu abusé que de parler l'amélioration, c'est plus une réutilisation du C comme base pour un tout autre langage. Bien sur, il y a reprise de la syntaxe, mais c'est voulu.— Le message qui précède, non signé, a été déposé par 92.103.140.34 (discuter)

C et C++ sont deux langages très proches mais définitivement différents. Il y a des constructions et des comportements définis qui diffèrent et aucun des deux langages n'est strictement inclus dans l'autre. Beaucoup de personnes pensent — à tord — que le C est strictement inclus dans le C++, mais c'est faux ; pour prendre un unique exemple (il y en a plein d'autres), le C supporte les macro-fonctions variadiques alors que le C++ ne les supporte pas. — Arkanosis 6 décembre 2010 à 19:24 (CET)[répondre]

Ce n'est pas l'affaire du siècle, mais je ne comprends pas les reverts de Marc (qui ne sont pas commentés, ce qui n'aide pas à la compréhension). Le programme "Hello" génère, en l'état, un Warning à la compilation, et le moins que l'on puisse faire dans WP est de fournir des programmes vierges de tout Warning. Marc : peux-tu justifier tes reverts s'il te plait ? Cordialement --Jean-Christophe BENOIST (d) 10 août 2010 à 11:23 (CEST)[répondre]

La raison ne varie pas: les gens modifient les articles sans avoir pris la peine de lire ne serait-ce que la ligne au-dessus de ce qu'ils modifient. Marc Mongenet (d) 10 août 2010 à 11:44 (CEST)[répondre]
Pour l'avertissement à la compilation, je dirais que c'est une petite défectuosité du compilateur. g++ -Wall (g++ v4.3.2) ne me donne pas d'avertissement. Marc Mongenet (d) 10 août 2010 à 11:48 (CEST)[répondre]
Vu. J'avais travaillé sur la base des diffs effectivement. La modif de l'IP ne m'avait pas paru mauvaise. Il serait peut-être bon de signaler en commentaire que ce source est celui.. d'une source, si ce genre de modif a lieu régulièrement. Mais je maintiens que ce source est erroné (de manière très mineure certes), ce qui provoque aussi les modifications régulières. Je vais ajouter le commentaire. --Jean-Christophe BENOIST (d) 10 août 2010 à 12:08 (CEST)[répondre]
Bonne idée le commentaire dans l'article. Concernant la validité de ce source, si c'est l'absence de return 0; qui te fait penser cela, alors je t'invite à lire le paragraphe 3.6.1 - 5 de http://www.kuzbass.ru:8086/docs/isocpp/basic.html. Marc Mongenet (d) 10 août 2010 à 14:18 (CEST)[répondre]

Supprimer dev-c++

[modifier le code]

Vu l'age du projet et de la dernière version compilée, il serait surement mieux d'intervertir son nom avec son successeur dans la ligne. (21 février 2005 la dernière version beta)

wxDev-C++ (fork actif de dev-c++)

voilà

Using dans le cas des classes

[modifier le code]

Bonjour, j'ai ajouté le cas du using à l'interieur de classes, mais je ne trouve pas de références à mettres cela me chagrine. Quelqu'un connait-il une ref à mettre ? (livre ou site web) Si oui ce serait pas mal d'ajouté les "règles" de cette directive car là j'ai rédigé via mon experience personnel (c'est ma première contribution de plus ^^) et ça manque à mon goût de précision ! J'en ai profiter pour ajouter un titre pour différencier le "hello world" du using qui n'est pas du même niveau et qui étaients sous le titre "hello world" tous les deux!


Edit : de plus j'ai testé et on peu faire le contraire : passer une fonction de la classe mère en protected alors qu'elle était public, pareil pour la mettre en private

plus minutieux que quoi ?

[modifier le code]

«La compilation d'un programme en C++ effectue également un contrôle plus minutieux sur le typage.» — Le message qui précède, non signé, a été déposé par l'IP 86.75.233.31 (discuter), le 17 septembre 2012 à 22:02

Probablement plus minutieux que C ? Parce que si on compare par exemple à Ada... Fustis (discuter) 31 décembre 2014 à 15:37 (CET)[répondre]

Le Hello World dans la partie sur l'Encapsulation

[modifier le code]

Ne faudrait il pas sortir le Hello World de la partie Encapsulation.

Ces 2 sujets n'ont rien en commun, le Hello World est du code d'exemple pour démontrer la syntaxe, il n'utilise pas d'encapsulation.

Je crois comprendre que c'est un accident. Il faudrait juste remonter ce sous-titre d'un niveau.

Prononciation

[modifier le code]

Comment est-ce qu'on prononce "C++" en Français? C-plus-plus? [se:'plysplys] ou C-double-plus? SebastianHelm (discuter) 29 février 2016 à 22:54 (CET)[répondre]

Le premier sans hésitation. JackPotte ($) 29 février 2016 à 23:53 (CET)[répondre]

Inférence de type

[modifier le code]

Dans les "Fonctionnalités introduites", il est précisé : l'inférence de type auto (C++11) ;

Est-ce vraiment exact de parler d'inférence de type dans le cas de C++ ? Je m'explique, il y a une différence significative entre le mécanisme d'inférence de type entre des langages comme les langages fonctionnels, par exemple en rust, on peut écrire le code suivant :

 let a; //déclaration d'une variable, sans type, et non initialisée
 
 if condition
 {
   a = 5; //ici le compilateur comprend que a est un entier
 }
 else if condition2
 {
   a = 3;
 }

En C++, écrire ceci est impossible, l'utilisation du mot clé "auto" nécessite une initialisation directe, on écrira donc par exemple :

 auto a = 0; //ici on déclare la variable et son type en même temps via la déduction du type de 0
 if (condition)
 {
   a = 5;
 }
 else if (condition2)
 {
   a = 3;
 }

D'autres arguments vont dans ce sens, par exemple considérons le code suivant :

 struct A
 {
   A(A const &) = default; //constructeur par copie
   A & operator=(A const &) = default; //assignement par copie
 };
 
 int main(int, char**)
 {
   A a, b;
   auto c = (a = b); //ici bien que le résultat de A::operator=(A const &) renvoie une référence, c sera un objet A et pas une référence vers l'objet a, ici en fait, on appelle la construction par copie
   assert(&a != &c); //vous pouvez vérifier avec ça que l'adresse des deux objets est différente, il s'agit de deux objets différents
   //si on veut vraiment avoir la référence vers a, on peut utiliser le code suivant :
   decltype(auto) d = (a = b); //d est du type A&
   assert(&a == &d); //ici les deux adresses sont les mêmes, il s'agit bien d'une référence vers a
   return 0;
 }

Ainsi auto ignore les "cv-qualifiers" et les "ref-qualifiers" de la valeur dont il est censé déduire le type, ce qui est encore une fois différent de l'inférence de type dans les langages fonctionnels.

Un autre argument c'est l'absence totale du mot clé "inference" sur le site isocpp.org : https://isocpp.org/search/google?q=inference

Il n'y a qu'une seule occurrence sur tout le site et il s'agit en fait d'une question d'un internaute sur stack overflow partagé par le site : https://isocpp.org/blog/2018/12/quick-q-type-inference-of-auto-when-using-range-for-loop-in-multidimensiona

Sur auto, ils parlent plutôt de "type deduction" ce qui est plus proche du comportement du compilateur qui n'a qu'à déduire la type lié à l'initialisation directe de la variable directement contrairement aux langages fonctionnels où le compilateur (ou l'interpréteur) suspendra son jugement du type de la variable avant de rencontrer sa première initialisation qui peut intervenir bien après sa déclaration :

— Le message qui précède, non signé, a été déposé par Steranoid (discuter)

Pourquoi pas utiliser l'expression "déduction de type" si c'est l'usage dans les sources. Maintenant le mot "inférence" dans ce cadre semble valable vu la définition du dictionnaire. On parle ici de la section "Fonctionnalités introduites" par rapport au C, et pour le coup sans même parler de auto, le C++ possède une inférence de types très complète que n'a pas le C via l'introduction des templates. ‒ Quasar (D) 14 décembre 2018 à 23:18 (CET)[répondre]

Utiliser template, patron ou modèle?

[modifier le code]

Depuis https://fr.wikipedia.org/w/index.php?title=C%2B%2B&diff=182378190&oldid=182088175&diffmode=source je me pose la question si nous devrions vraiment utiliser modèle à la place de template ou patron. Car oui, je suis d’accord que modèle/patron est plus “français” mais rechercher “template C++” donnera inévitablement plus de résultats que “modèles C++”. Et clairement, il est impossible d’expliquer tout sur les templates C++ dans un seule page ce qui rend nécessaire une recherche ultérieure. Je propose donc de continuer à utiliser le plus populaire mot template, tout en mentionnant l’existence des autres termes plus “français”. OllivierRob (discuter) 28 avril 2021 à 18:25 (CEST)[répondre]