<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
		>
<channel>
	<title>Commentaires sur : Si les types étaient des animaux, TypedReference serait un ornithorynque</title>
	<atom:link href="http://codingly.com/2009/01/15/si-les-types-etaient-des-animaux-typedreference-serait-un-ornithorynque/feed/" rel="self" type="application/rss+xml" />
	<link>http://codingly.com/2009/01/15/si-les-types-etaient-des-animaux-typedreference-serait-un-ornithorynque/</link>
	<description>Par Romain Verdier</description>
	<lastBuildDate>Wed, 18 Apr 2012 13:58:53 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
	<item>
		<title>Par : bamboo</title>
		<link>http://codingly.com/2009/01/15/si-les-types-etaient-des-animaux-typedreference-serait-un-ornithorynque/#comment-738</link>
		<dc:creator><![CDATA[bamboo]]></dc:creator>
		<pubDate>Tue, 21 Sep 2010 14:19:22 +0000</pubDate>
		<guid isPermaLink="false">http://codingly.com/?p=535#comment-738</guid>
		<description><![CDATA[Rien à voir : 

double sum = 0;
foreach (var i in values)
  sum += i;
return sum / values.Length;

on fait sum += i / values.Length ! Sinon sum dépasse double.max et les fusées s&#039;écrasent...
(c) Barrios

;)]]></description>
		<content:encoded><![CDATA[<p>Rien à voir : </p>
<p>double sum = 0;<br />
foreach (var i in values)<br />
  sum += i;<br />
return sum / values.Length;</p>
<p>on fait sum += i / values.Length ! Sinon sum dépasse double.max et les fusées s&#8217;écrasent&#8230;<br />
(c) Barrios</p>
<p>;)</p>
]]></content:encoded>
	</item>
	<item>
		<title>Par : Jb Evain</title>
		<link>http://codingly.com/2009/01/15/si-les-types-etaient-des-animaux-typedreference-serait-un-ornithorynque/#comment-236</link>
		<dc:creator><![CDATA[Jb Evain]]></dc:creator>
		<pubDate>Fri, 27 Feb 2009 12:23:58 +0000</pubDate>
		<guid isPermaLink="false">http://codingly.com/?p=535#comment-236</guid>
		<description><![CDATA[Cyril: C&#039;est faux, vous confondez la fonctionnalité params de C#, qui est du sucre syntaxique et qui passe effectivement un tableau, et varargs, qui est bien le même méchanisme qu&#039;en C/C++, où l&#039;on parcours les éléments en incrémentant le pointeur en fonction de la taille des éléments.]]></description>
		<content:encoded><![CDATA[<p>Cyril: C&#8217;est faux, vous confondez la fonctionnalité params de C#, qui est du sucre syntaxique et qui passe effectivement un tableau, et varargs, qui est bien le même méchanisme qu&#8217;en C/C++, où l&#8217;on parcours les éléments en incrémentant le pointeur en fonction de la taille des éléments.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Par : mcoolive</title>
		<link>http://codingly.com/2009/01/15/si-les-types-etaient-des-animaux-typedreference-serait-un-ornithorynque/#comment-235</link>
		<dc:creator><![CDATA[mcoolive]]></dc:creator>
		<pubDate>Fri, 27 Feb 2009 09:59:57 +0000</pubDate>
		<guid isPermaLink="false">http://codingly.com/?p=535#comment-235</guid>
		<description><![CDATA[Salut Romain,

J&#039;ai une remarque / correction à apporter au sujet des varargs en C++.

&gt; Bah c’est encore plus moche, et plus contraignant. Rappelez-vous :
&gt; ...
&gt; La principale différence est finalement assez subtile on n’utilise pas explicitement
&gt; un tableau, mais on fournit un pointeur vers le début de la liste d’arguments.

Déjà je trouve la syntaxe du C++/CLI bien plus moche, mais ce n&#039;est qu&#039;une affaire de goût.

Je voulais insister sur le fait que même si la syntaxe est proche, le varargs du C++ et du .NET sont deux choses très différentes.

En C++ (ISO) varargs n&#039;est pas un tableau du tout ! Le méthode joue avec le pointeur de pile (SP = stack pointer). En particulier on ne parcourt pas les arguments par une arithmétique simple du genre adrr = base + n * taille. Il faut sommer la taille des objets stockés sur la pile plus du padding sur certaine architecture pour des histoires d&#039;alignement d&#039;adresse et tout ça...
L&#039;utilisation de macros qui masquent cette réalité est requise justement parce que le calcul dépend de la machine qui exécutera la chose.
Bref, ce n&#039;est pas un tableau.

Le varargs en Java ou en C# a repris l&#039;idée de fonctions à nombre variable d&#039;arguments, mais on lieu de placer des choses de tailles diverses sur la pile, on passe TOUJOURS un tableau. C&#039;est-à-dire qu&#039;on stocke sur la pile une référence sur un objet bien fichu et typé. Ces langages (Java, C#, etc.) permettent d&#039;écrire librement les arguments mais on devine bien que le compilateur va réécrire ce bout de code pour instancier un tableau. C&#039;est du sucre syntaxique.

Cyril Martin (alias mcoolive).]]></description>
		<content:encoded><![CDATA[<p>Salut Romain,</p>
<p>J&#8217;ai une remarque / correction à apporter au sujet des varargs en C++.</p>
<p>&gt; Bah c’est encore plus moche, et plus contraignant. Rappelez-vous :<br />
&gt; &#8230;<br />
&gt; La principale différence est finalement assez subtile on n’utilise pas explicitement<br />
&gt; un tableau, mais on fournit un pointeur vers le début de la liste d’arguments.</p>
<p>Déjà je trouve la syntaxe du C++/CLI bien plus moche, mais ce n&#8217;est qu&#8217;une affaire de goût.</p>
<p>Je voulais insister sur le fait que même si la syntaxe est proche, le varargs du C++ et du .NET sont deux choses très différentes.</p>
<p>En C++ (ISO) varargs n&#8217;est pas un tableau du tout ! Le méthode joue avec le pointeur de pile (SP = stack pointer). En particulier on ne parcourt pas les arguments par une arithmétique simple du genre adrr = base + n * taille. Il faut sommer la taille des objets stockés sur la pile plus du padding sur certaine architecture pour des histoires d&#8217;alignement d&#8217;adresse et tout ça&#8230;<br />
L&#8217;utilisation de macros qui masquent cette réalité est requise justement parce que le calcul dépend de la machine qui exécutera la chose.<br />
Bref, ce n&#8217;est pas un tableau.</p>
<p>Le varargs en Java ou en C# a repris l&#8217;idée de fonctions à nombre variable d&#8217;arguments, mais on lieu de placer des choses de tailles diverses sur la pile, on passe TOUJOURS un tableau. C&#8217;est-à-dire qu&#8217;on stocke sur la pile une référence sur un objet bien fichu et typé. Ces langages (Java, C#, etc.) permettent d&#8217;écrire librement les arguments mais on devine bien que le compilateur va réécrire ce bout de code pour instancier un tableau. C&#8217;est du sucre syntaxique.</p>
<p>Cyril Martin (alias mcoolive).</p>
]]></content:encoded>
	</item>
	<item>
		<title>Par : loic</title>
		<link>http://codingly.com/2009/01/15/si-les-types-etaient-des-animaux-typedreference-serait-un-ornithorynque/#comment-227</link>
		<dc:creator><![CDATA[loic]]></dc:creator>
		<pubDate>Fri, 16 Jan 2009 21:26:14 +0000</pubDate>
		<guid isPermaLink="false">http://codingly.com/?p=535#comment-227</guid>
		<description><![CDATA[Quitte à perdre son temps, autant le perdre à lire de longs articles inutiles, j&#039;adore ce blog, bravo

J&#039;aimerai, tant qu&#039;à y être ajouter une ligne ou deux pour parfaire l&#039;inutilité avouée de ce post:
&quot;Bah c’est encore plus moche&quot; [va_xxx en C++ pas CLI]; oui, je te l&#039;accorde c&#039;est laid... mais C++ s&#039;évite un downcast disgracieux dans le cas ou les paramètres sont de types différents, bien que ne connaissant C# qu&#039;au travers de ce blog - et si je ne m&#039;abuse - en C#, le type passé dans ces cas la est souvent params Object[]... downcast obligatoire.
Je ne sais pas si le mot clé __refvalue s&#039;évite ce downcast (il le pourrait) mais ça pourrait être l&#039;un de ses -nombreux- intérêts. (?)

Pour parfaire l&#039;inutilité de mon commentaire -que j&#039;avais d&#039;ailleurs promis - et pour rester dans l&#039;esprit de l&#039;article original, je note que souvent, dans les cas où le type des paramètres varie, le test sur le type doit être fait directement ou indirectement; ça ou un downcast...

je vous laisse

adieu]]></description>
		<content:encoded><![CDATA[<p>Quitte à perdre son temps, autant le perdre à lire de longs articles inutiles, j&#8217;adore ce blog, bravo</p>
<p>J&#8217;aimerai, tant qu&#8217;à y être ajouter une ligne ou deux pour parfaire l&#8217;inutilité avouée de ce post:<br />
&#8220;Bah c’est encore plus moche&#8221; [va_xxx en C++ pas CLI]; oui, je te l&#8217;accorde c&#8217;est laid&#8230; mais C++ s&#8217;évite un downcast disgracieux dans le cas ou les paramètres sont de types différents, bien que ne connaissant C# qu&#8217;au travers de ce blog &#8211; et si je ne m&#8217;abuse &#8211; en C#, le type passé dans ces cas la est souvent params Object[]&#8230; downcast obligatoire.<br />
Je ne sais pas si le mot clé __refvalue s&#8217;évite ce downcast (il le pourrait) mais ça pourrait être l&#8217;un de ses -nombreux- intérêts. (?)</p>
<p>Pour parfaire l&#8217;inutilité de mon commentaire -que j&#8217;avais d&#8217;ailleurs promis &#8211; et pour rester dans l&#8217;esprit de l&#8217;article original, je note que souvent, dans les cas où le type des paramètres varie, le test sur le type doit être fait directement ou indirectement; ça ou un downcast&#8230;</p>
<p>je vous laisse</p>
<p>adieu</p>
]]></content:encoded>
	</item>
	<item>
		<title>Par : Safia</title>
		<link>http://codingly.com/2009/01/15/si-les-types-etaient-des-animaux-typedreference-serait-un-ornithorynque/#comment-226</link>
		<dc:creator><![CDATA[Safia]]></dc:creator>
		<pubDate>Fri, 16 Jan 2009 03:03:30 +0000</pubDate>
		<guid isPermaLink="false">http://codingly.com/?p=535#comment-226</guid>
		<description><![CDATA[Cet article est complètement redoutable. (k)]]></description>
		<content:encoded><![CDATA[<p>Cet article est complètement redoutable. (k)</p>
]]></content:encoded>
	</item>
	<item>
		<title>Par : Romain Verdier</title>
		<link>http://codingly.com/2009/01/15/si-les-types-etaient-des-animaux-typedreference-serait-un-ornithorynque/#comment-225</link>
		<dc:creator><![CDATA[Romain Verdier]]></dc:creator>
		<pubDate>Thu, 15 Jan 2009 22:03:26 +0000</pubDate>
		<guid isPermaLink="false">http://codingly.com/?p=535#comment-225</guid>
		<description><![CDATA[En fait, je parlais avec un certain Jean-Baptiste E. de stackoverflow.com, et plus particulièrement de la question des &quot;hidden features&quot; de C#. Il me disait ne pas se souvenir avoir vu quelqu&#039;un mentionner les mots clés bizarres &lt;code&gt;__arglist&lt;/code&gt;, etc. Je croyais connaitre tous les mots clés du langage...

Du coup, je me suis dit que ça ferait un bon post rigolo pour janvier. Mais il semblerait que je sois passé sans m&#039;en rendre compte du &quot;lol saviez-vous que ?&quot; à &quot;mangez mon gros post à faible valeur ajoutée&quot;.

Cependant, il faudra probablement qu&#039;un jour nous gérions ça aussi dans Cecil.Decompiler, comme ce bon Reflector ! ]]></description>
		<content:encoded><![CDATA[<p>En fait, je parlais avec un certain Jean-Baptiste E. de stackoverflow.com, et plus particulièrement de la question des &#8220;hidden features&#8221; de C#. Il me disait ne pas se souvenir avoir vu quelqu&#8217;un mentionner les mots clés bizarres <code>__arglist</code>, etc. Je croyais connaitre tous les mots clés du langage&#8230;</p>
<p>Du coup, je me suis dit que ça ferait un bon post rigolo pour janvier. Mais il semblerait que je sois passé sans m&#8217;en rendre compte du &#8220;lol saviez-vous que ?&#8221; à &#8220;mangez mon gros post à faible valeur ajoutée&#8221;.</p>
<p>Cependant, il faudra probablement qu&#8217;un jour nous gérions ça aussi dans Cecil.Decompiler, comme ce bon Reflector ! </p>
]]></content:encoded>
	</item>
	<item>
		<title>Par : Evilz</title>
		<link>http://codingly.com/2009/01/15/si-les-types-etaient-des-animaux-typedreference-serait-un-ornithorynque/#comment-224</link>
		<dc:creator><![CDATA[Evilz]]></dc:creator>
		<pubDate>Thu, 15 Jan 2009 12:12:35 +0000</pubDate>
		<guid isPermaLink="false">http://codingly.com/?p=535#comment-224</guid>
		<description><![CDATA[Très intéressant !

Mais je me demande comment tu es venu à creuser ce sujet ? C&#039;était pour Cecil.Decompiler ?

@+]]></description>
		<content:encoded><![CDATA[<p>Très intéressant !</p>
<p>Mais je me demande comment tu es venu à creuser ce sujet ? C&#8217;était pour Cecil.Decompiler ?</p>
<p>@+</p>
]]></content:encoded>
	</item>
</channel>
</rss>

