Discussion:C++

message: 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)
replies: text: Oui. Marc Mongenet 16 aoû 2004 à 15:29 (CEST)
thread_title:  Histoire du C++ 

message: 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)
thread_title:  Extensions de fichiers 

message: 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)
thread_title: [[Programmation générique]] ?

message: 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)
replies: text: 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)

text: 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)
replies: text: 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)
thread_title:  Les pointeurs 

message: J'ai rajouté pas mal de sujets dans l'articles avec des exemples d'illustration. Je propose de
# compléter la partie objet
# découper la page en plusieurs sous articles tout en reprenant le même plan
# 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)
thread_title: article étoffé

message: J'ai supprimé mes modifications : il semble qu'elles ne plaisaient pas § Merrheim 10 mars 2006 à 11:57 (CET)
thread_title:  Suppression

message: 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)
replies: text: Modèle renommé avec le nom correct (avec un C majuscule). Verdy p 26 octobre 2006 à 21:03 (CEST)
replies: text: 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)
replies: text:  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)
thread_title:  [[Modèle:Utilisateur C++]] 

message: 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)
thread_title:  liens externes 

message: 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)
thread_title:  Sur l'exemple d'utilisation de "using namespace std" 

message: 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)
replies: text: Tout à fait d'accord. Ce sont des incoutournables. --Jean-Christophe BENOIST (d) 20 juin 2009 à 16:54 (CEST)
thread_title:  Bibliographie 

message: 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)
thread_title:  Pédagogie : Références avant Pointeurs 

message: 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)
replies: text: 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)

text: 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)
thread_title:  Introduction — C++ n'est pas C 

message: 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)
replies: text: 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)

text: 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)
replies: text: 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)
replies: text: 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)
thread_title:  hello ! 

message: «La compilation d'un programme en C++ effectue également un contrôle plus minutieux sur le typage.»
:Probablement plus minutieux que C ? Parce que si on compare par exemple à Ada... Fustis (discuter) 31 décembre 2014 à 15:37 (CET)
thread_title:  plus minutieux que quoi ? 

message: 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)
replies: text: Le premier sans hésitation. JackPotte ($♠) 29 février 2016 à 23:53 (CET)
thread_title:  Prononciation 

message: 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 :
* https://isocpp.org/files/papers/N3638.html
* https://isocpp.org/wiki/faq/cpp11-language#auto
: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)
thread_title:  Inférence de type 

message: 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)
thread_title:  Utiliser template, patron ou modèle?