Développement › C et C++

Tous ces billets on trait au langages C et/ou C++ (non, il n'existe aucun langage du nom de C/C++)

Fil des billets - Fil des commentaires

08 fév. 2010

Le futur standard C++ : les templates variadiques

Oui, je sais, variadique n'est pas un mot très franchouillard (et franchouillard n'est pas trouvé par le dictionnaire de Firefox, qui me propose antibrouillard à la place). Il faut toutefois bien trouver quelque chose. Les fonctions à un argument sont des fonctions monadiques. Une fonction à plusieurs arguments est dite polyadique. Alors utiliser le néologisme "variadique" pour parler d'un nombre d'arguments variable ne me choque pas vraiment - d'autant plus que ce néologisme est très utilisé dans la communauté C / C++.

Outre cette digression, reste à expliciter le but de cet article. Comme les articles précédents de la série (et certains commencent à être ancien), cette saillie technique va tenter de vous donner quelques informations d'importance concernant cette nouveauté du futur standard C++ - l'une des plus importante, si vous voulez mon avis.

Lire la suite...

04 fév. 2010

const X& x ou X const& x ? (et autres amusements)

Parce que ces deux notations sont strictement équivalentes[1], quelle est celle qu'il faut utiliser ? Est-ce qu'il est nécessaire de préciser que la surcharge d'une méthode virtuelle est elle-même virtuelle ? Faut-il utiliser les version post-fixée ou pré-fixées des opérateurs d"incrémentation/décrémentation ?

Je ne prétends pas vous donner une réponse définitive à ces questions, mais j'ai ma petite idée sur ce qu'il est préférable de faire.

Notes

[1] si vous êtes un peu rouillé sur le sujet et que vous lisez relativement bien l'anglais, vous pouvez vous reporter à la C++ FAQ Lite. Si vous êtes en plus rouillé en anglais, dirigez vous vers la FAQ de dvp.com

Lire la suite...

17 déc. 2009

template<typename T> struct do_not_misuse

En C++, être capable d'abstraire un type de données pour qu'il puisse être utilisé sous une forme paramétrée est à la fois tentant, amusant, difficile et très souvent inutile. Je vais laisser de coté le dernier point (j'y reviendrait peut-être dans un article futur, et ceux qui lisent ce blog régulièrement savent que j'ai déjà traité le sujet dans un billet datant de 2007) pour me concentrer sur le précédent : la difficulté intrinsèque liée à la programmation générique en C++.

Mesdames et messieurs, venez vous assoir - le show va commencer...

Lire la suite...

01 sept. 2008

Etude du C++ Technical Report 1 - reference_wrapper : je confirme, c'est tordu.

Souvenez vous : il y a près de deux ans, j'essayais avec grand peine d'implémenter la classe std::tr1::reference_wrapper<>, et j'ai du abandonner.Tout content de pouvoir installer l'implémentation du TR1 de Microsoft Visual C++ 2008 SP1, j'ai tenu à vérifier que mon échec épique n'était pas du à ma stupidité, mais à (comme je le pense sincèrement) une mauvaise formulation du texte du TR1.

Lire la suite...

28 août 2008

Le futur standard C++ : concepts, deuxième prise

Si vous voulez expérimenter les concepts dont il est question dans l'article précédent, je vous signale que Douglas Gregor propose ConceptGCC, un prototype de compilateur C++ basé sur GCC 4.3.0 et qui implémente les extensions de langage définies dans les dernières propositions de Stroustrup et Gregor.

27 août 2008

Le futur standard C++ : concepts

Note du 15/07/2010: les concepts ont été retirés de la proposition du standard C++ depuis déjà quelques mois. Il n'est pas impossible qu'ils rentrent par une petite porte plus tard, mais ils ne sont aujourd'hui plus d'actualité. Cet article est néanmoins gardé, pour des raisons plus ou moins historiques. Ou parce que l'hôte de ces bois est un peu fainéant. A vous de voir... :)

Le système de type du langage C++ s'enrichit d'une nouveauté déroutante: la notion de concepts (que l'on retrouve déjà dans certains langages fonctionnels) est en passe d'être intégrée au coeur du langage - pour le meilleur et pour le meilleur.

Lire la suite...

25 mar. 2008

Le futur standard C++ : nouvelle version du draft

Le standard C++ se précise davantage. Vendredi dernier, le mailing résultant de la dernière réunion du comité de normalisation a été posté sur le site officiel du workgroup. Parmi les documents les plus importants, on retrouve bien évidemment la dernière mouture du brouillon du futur standard.

Lire la suite...

11 janv. 2008

Le futur standard C++ : les expressions constantes

Il y a quelques mois, je vous parlais des classes d'énumération telles qu'elles seront intégrées dans le standard C++0x. Le même article de Herb Sutter auquel ce billet faisait référence nous indique qu'une foultitude d'autres fonctionnalités ont été votées dans le draft du futur standard - parmi lesquelles, les expressions constantes.

Lire la suite...

11 sept. 2007

Le futur standard C++ : les classes d'énumérations

Herb Sutter reviens du dernier meeting du WG21 - le workgroup normatif du langage C++ - et il semblerait que cette réunion ait été particulièrement productive. Un certain nombre de discussions importantes ont été sanctionnées par un vote d'approbation, il est donc temps d'en étudier certaines.

Lire la suite...

09 juil. 2007

C++ et memset()

En C++ il est relativement courant d'initialiser une structure avec la terrible fonction std::memset() de la librairie standard. Je vous livre ici mon opinion: c'est Mal, et c'est Dangereux. Et je vais maintenant vous expliquer pourquoi.

Lire la suite...

- page 2 de 4 -