<?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/"
	
	>
<channel>
	<title>Commentaires pour C++, Qt et GPU</title>
	<atom:link href="https://blog.developpez.com/gpu/?feed=comments-rss2" rel="self" type="application/rss+xml" />
	<link>https://blog.developpez.com/gpu</link>
	<description></description>
	<lastBuildDate>Fri, 15 Feb 2013 18:04:35 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>https://wordpress.org/?v=4.1.42</generator>
	<item>
		<title>Commentaires sur Un ColorPicker avec Qt &#8211; Enoncé de l&#8217;exercice par Un ColorPicker avec Qt &#8211; Version Qt &#124; C++, Qt et GPU</title>
		<link>https://blog.developpez.com/gpu/?p=340#comment-12</link>
		<dc:creator><![CDATA[Un ColorPicker avec Qt &#8211; Version Qt &#124; C++, Qt et GPU]]></dc:creator>
		<pubDate>Fri, 15 Feb 2013 18:04:35 +0000</pubDate>
		<guid isPermaLink="false">http://blog.developpez.com/gpu/?p=340#comment-12</guid>
		<description><![CDATA[[...] &#8592; Précédent [...]]]></description>
		<content:encoded><![CDATA[<p>[&#8230;] &larr; Précédent [&#8230;]</p>
]]></content:encoded>
	</item>
	<item>
		<title>Commentaires sur OpenGL dans Qt5 par Les modules de Qt 5 &#171; C++, Qt et GPU</title>
		<link>https://blog.developpez.com/gpu/?p=11#comment-11</link>
		<dc:creator><![CDATA[Les modules de Qt 5 &#171; C++, Qt et GPU]]></dc:creator>
		<pubDate>Fri, 07 Sep 2012 13:21:50 +0000</pubDate>
		<guid isPermaLink="false">#comment-11</guid>
		<description><![CDATA[[...] contexte OpenGL sans devoir dériver de QWindow ou QOpenGLFramebufferObject. Voir l&#8217;article OpenGL dans Qt5 pour plus de [...]]]></description>
		<content:encoded><![CDATA[<p>[&#8230;] contexte OpenGL sans devoir dériver de QWindow ou QOpenGLFramebufferObject. Voir l&rsquo;article OpenGL dans Qt5 pour plus de [&#8230;]</p>
]]></content:encoded>
	</item>
	<item>
		<title>Commentaires sur Les signaux et slots dans Qt5 par Les modules de Qt 5 &#171; C++, Qt et GPU</title>
		<link>https://blog.developpez.com/gpu/?p=12#comment-10</link>
		<dc:creator><![CDATA[Les modules de Qt 5 &#171; C++, Qt et GPU]]></dc:creator>
		<pubDate>Fri, 07 Sep 2012 13:17:09 +0000</pubDate>
		<guid isPermaLink="false">#comment-10</guid>
		<description><![CDATA[[...] sans avoir besoins de déclarer comme slots. Voir l&#8217;article détaillé sur le sujet : Les signaux et slots dans Qt5 [...]]]></description>
		<content:encoded><![CDATA[<p>[&#8230;] sans avoir besoins de déclarer comme slots. Voir l&rsquo;article détaillé sur le sujet : Les signaux et slots dans Qt5 [&#8230;]</p>
]]></content:encoded>
	</item>
	<item>
		<title>Commentaires sur Les accesseurs et les détails d&#8217;implémentation par gbdivers</title>
		<link>https://blog.developpez.com/gpu/?p=7#comment-3</link>
		<dc:creator><![CDATA[gbdivers]]></dc:creator>
		<pubDate>Thu, 21 Jun 2012 09:32:41 +0000</pubDate>
		<guid isPermaLink="false">#comment-3</guid>
		<description><![CDATA[Transfère des discussions sur le forum : http://www.developpez.net/forums/d1234432/c-cpp/cpp/accesseurs-details-dimplementation/&lt;br /&gt;
Merci]]></description>
		<content:encoded><![CDATA[<p>Transfère des discussions sur le forum : <a href="http://www.developpez.net/forums/d1234432/c-cpp/cpp/accesseurs-details-dimplementation/" rel="nofollow">http://www.developpez.net/forums/d1234432/c-cpp/cpp/accesseurs-details-dimplementation/</a><br />
Merci</p>
]]></content:encoded>
	</item>
	<item>
		<title>Commentaires sur Les accesseurs et les détails d&#8217;implémentation par sevyc64</title>
		<link>https://blog.developpez.com/gpu/?p=7#comment-2</link>
		<dc:creator><![CDATA[sevyc64]]></dc:creator>
		<pubDate>Wed, 20 Jun 2012 09:55:57 +0000</pubDate>
		<guid isPermaLink="false">#comment-2</guid>
		<description><![CDATA[Le concept a des limites, oui.&lt;br /&gt;
&lt;br /&gt;
Je en suis pas C++ien, mais Dotnetien, mais le principe s&#039;applique à toute programmation objet.&lt;br /&gt;
&lt;br /&gt;
Le concept expose le principe (en résumé très rapide) de ne pas exposer les variables d&#039;une classe permettant ainsi un éventuel traitement extérieur, mais au contraire d’intégrer dans la classe, les méthodes de traitements de ces variables, masquant, si possibles les dites variables.&lt;br /&gt;
&lt;br /&gt;
Hors il n&#039;est pas toujours possible/judicieux de masquer les variables en questions. Il n&#039;est pas toujours possible de définir exhaustivement tous les traitements qui pourraient être appliquer à ces variables afin d&#039;en intégrer les méthodes correspondantes dans la classe.&lt;br /&gt;
&lt;br /&gt;
Le cas de la classe de configuration est un bon exemple. Cette classe gérant l&#039;accès/sauvegarde de la configuration du logiciel, son but est donc de lire et d&#039;écrire la configuration sur le support de sauvegarde (méthodes) mais aussi de mettre à disposition du reste du programme les paramètres ainsi lus (accesseurs).&lt;br /&gt;
Prennent l&#039;exemple d&#039;une chaine de connexion à un SGBD. Ce paramètre n&#039;a pas vocation à être utilisé directement (et uniquement) dans la classe de configuration. Et pourtant ce paramètre peut amener (sous Dotnet en tout cas) à changer de type.&lt;br /&gt;
Cela voudrait dire que les méthodes utilisant cette chaine de connexion, c&#039;est à dire des méthodes d&#039;accès aux données, devraient être dans la classe configuration ? Personnellement, je pense qu&#039;elles n&#039;ont rien à y faire.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Autre point :&lt;br /&gt;
La modification du type d&#039;un accesseur, plus généralement d&#039;une surface d&#039;exposition d&#039;une classe (c&#039;est valable aussi pour les types de retour des méthodes), constitue une cassure dans la compatibilité de la classe. Certes cela doit être éviter au maximum et représente bien souvent une mauvaise conception au départ.&lt;br /&gt;
Mais lorsque cela est impossible à éviter, cela traduit une évolution majeure bien trop importante pour pouvoir assurer la compatibilité tant au niveau de la classe, qu&#039;au niveau du code l&#039;utilisant.&lt;br /&gt;
Je en trouve pas choquant dans ce cas là, que tout le code utilisant cette classe doit être repris, ne serait-ce que pour contrôler d&#039;éventuels effets de bord.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Je suis d&#039;accord que le concept exposé ici, est une &quot;bonne pratique&quot; que l&#039;on devrait essayer d&#039;appliquer le plus souvent possible, mais il ne faut pas non plus en faire sa quête du Graal, car il ne faut pas voir le voir comme un concept universel et polyvalent.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
]]></description>
		<content:encoded><![CDATA[<p>Le concept a des limites, oui.</p>
<p>Je en suis pas C++ien, mais Dotnetien, mais le principe s&rsquo;applique à toute programmation objet.</p>
<p>Le concept expose le principe (en résumé très rapide) de ne pas exposer les variables d&rsquo;une classe permettant ainsi un éventuel traitement extérieur, mais au contraire d’intégrer dans la classe, les méthodes de traitements de ces variables, masquant, si possibles les dites variables.</p>
<p>Hors il n&rsquo;est pas toujours possible/judicieux de masquer les variables en questions. Il n&rsquo;est pas toujours possible de définir exhaustivement tous les traitements qui pourraient être appliquer à ces variables afin d&rsquo;en intégrer les méthodes correspondantes dans la classe.</p>
<p>Le cas de la classe de configuration est un bon exemple. Cette classe gérant l&rsquo;accès/sauvegarde de la configuration du logiciel, son but est donc de lire et d&rsquo;écrire la configuration sur le support de sauvegarde (méthodes) mais aussi de mettre à disposition du reste du programme les paramètres ainsi lus (accesseurs).<br />
Prennent l&rsquo;exemple d&rsquo;une chaine de connexion à un SGBD. Ce paramètre n&rsquo;a pas vocation à être utilisé directement (et uniquement) dans la classe de configuration. Et pourtant ce paramètre peut amener (sous Dotnet en tout cas) à changer de type.<br />
Cela voudrait dire que les méthodes utilisant cette chaine de connexion, c&rsquo;est à dire des méthodes d&rsquo;accès aux données, devraient être dans la classe configuration ? Personnellement, je pense qu&rsquo;elles n&rsquo;ont rien à y faire.</p>
<p>
Autre point :<br />
La modification du type d&rsquo;un accesseur, plus généralement d&rsquo;une surface d&rsquo;exposition d&rsquo;une classe (c&rsquo;est valable aussi pour les types de retour des méthodes), constitue une cassure dans la compatibilité de la classe. Certes cela doit être éviter au maximum et représente bien souvent une mauvaise conception au départ.<br />
Mais lorsque cela est impossible à éviter, cela traduit une évolution majeure bien trop importante pour pouvoir assurer la compatibilité tant au niveau de la classe, qu&rsquo;au niveau du code l&rsquo;utilisant.<br />
Je en trouve pas choquant dans ce cas là, que tout le code utilisant cette classe doit être repris, ne serait-ce que pour contrôler d&rsquo;éventuels effets de bord.</p>
<p>
Je suis d&rsquo;accord que le concept exposé ici, est une &laquo;&nbsp;bonne pratique&nbsp;&raquo; que l&rsquo;on devrait essayer d&rsquo;appliquer le plus souvent possible, mais il ne faut pas non plus en faire sa quête du Graal, car il ne faut pas voir le voir comme un concept universel et polyvalent.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Commentaires sur Les accesseurs et les détails d&#8217;implémentation par Kalite</title>
		<link>https://blog.developpez.com/gpu/?p=7#comment-1</link>
		<dc:creator><![CDATA[Kalite]]></dc:creator>
		<pubDate>Wed, 20 Jun 2012 08:42:32 +0000</pubDate>
		<guid isPermaLink="false">#comment-1</guid>
		<description><![CDATA[N&#039;y a t&#039;il pas une limitation a ce concept ?&lt;br /&gt;
&lt;br /&gt;
Prenons le cas suivant réel suivant,&lt;br /&gt;
La classe A est un ensemble de paramètres de l&#039;application.&lt;br /&gt;
La classe B est une dialogue permettant l&#039;édition des paramètres de A.&lt;br /&gt;
&lt;br /&gt;
Comment faire pour permettre l&#039;édition de ces paramètres sans que le type de chaque paramètre soit connu par la classe B?&lt;br /&gt;
&lt;br /&gt;
]]></description>
		<content:encoded><![CDATA[<p>N&rsquo;y a t&rsquo;il pas une limitation a ce concept ?</p>
<p>Prenons le cas suivant réel suivant,<br />
La classe A est un ensemble de paramètres de l&rsquo;application.<br />
La classe B est une dialogue permettant l&rsquo;édition des paramètres de A.</p>
<p>Comment faire pour permettre l&rsquo;édition de ces paramètres sans que le type de chaque paramètre soit connu par la classe B?</p>
]]></content:encoded>
	</item>
	<item>
		<title>Commentaires sur Les signaux et slots dans Qt5 par gbdivers</title>
		<link>https://blog.developpez.com/gpu/?p=12#comment-8</link>
		<dc:creator><![CDATA[gbdivers]]></dc:creator>
		<pubDate>Mon, 23 Apr 2012 08:00:23 +0000</pubDate>
		<guid isPermaLink="false">#comment-8</guid>
		<description><![CDATA[Bonjour à tous

Je me suis posé les mêmes questions, c&#039;est pour cela que j&#039;ai fait un projet de test pour voir ce qu&#039;il en était en pratique.
Comme vous pouvez le voir dans le code, il faut :
&lt;ul&gt;
&lt;li&gt; que l&#039;émetteur dérive de QObject (pour les méta informations) ;&lt;/li&gt;
&lt;li&gt; que l&#039;émetteur possède la macro Q_OBJECT (cela permet au moc de reconnaître le signal) ;&lt;/li&gt;
&lt;li&gt; pour la connexion avec des pointeurs de fonctions uniquement, il faut que le récepteur hérite de QObject.&lt;/li&gt;
&lt;/ul&gt;
Donc on a besoin du moc dans tous les cas et de dériver de QObject pour les pointeurs de fonctions. Par contre, les fonctions lambdas sont plus permissives et peuvent s&#039;utiliser avec n&#039;importe quelle classe/fonction en réception.]]></description>
		<content:encoded><![CDATA[<p>Bonjour à tous</p>
<p>Je me suis posé les mêmes questions, c&rsquo;est pour cela que j&rsquo;ai fait un projet de test pour voir ce qu&rsquo;il en était en pratique.<br />
Comme vous pouvez le voir dans le code, il faut :</p>
<ul>
<li> que l&rsquo;émetteur dérive de QObject (pour les méta informations) ;</li>
<li> que l&rsquo;émetteur possède la macro Q_OBJECT (cela permet au moc de reconnaître le signal) ;</li>
<li> pour la connexion avec des pointeurs de fonctions uniquement, il faut que le récepteur hérite de QObject.</li>
</ul>
<p>Donc on a besoin du moc dans tous les cas et de dériver de QObject pour les pointeurs de fonctions. Par contre, les fonctions lambdas sont plus permissives et peuvent s&rsquo;utiliser avec n&rsquo;importe quelle classe/fonction en réception.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Commentaires sur Les signaux et slots dans Qt5 par JolyLoic</title>
		<link>https://blog.developpez.com/gpu/?p=12#comment-7</link>
		<dc:creator><![CDATA[JolyLoic]]></dc:creator>
		<pubDate>Mon, 23 Apr 2012 07:44:00 +0000</pubDate>
		<guid isPermaLink="false">#comment-7</guid>
		<description><![CDATA[En parcourant en diagonale l&#039;article, la première réaction que j&#039;ai eue était : Enfin !&lt;br /&gt;
&lt;br /&gt;
Mais la question que je me pose est : Y a-t-il encore besoin de moc, ou serait-il possible d&#039;avoir une chaîne de compilation plus classique. &lt;br /&gt;
]]></description>
		<content:encoded><![CDATA[<p>En parcourant en diagonale l&rsquo;article, la première réaction que j&rsquo;ai eue était : Enfin !</p>
<p>Mais la question que je me pose est : Y a-t-il encore besoin de moc, ou serait-il possible d&rsquo;avoir une chaîne de compilation plus classique. </p>
]]></content:encoded>
	</item>
	<item>
		<title>Commentaires sur Les signaux et slots dans Qt5 par minirop</title>
		<link>https://blog.developpez.com/gpu/?p=12#comment-6</link>
		<dc:creator><![CDATA[minirop]]></dc:creator>
		<pubDate>Mon, 23 Apr 2012 05:32:02 +0000</pubDate>
		<guid isPermaLink="false">#comment-6</guid>
		<description><![CDATA[Klaim, pour le point 4, oui, car c&#039;est QObject qui garde &quot;en mémoire&quot; la liste des connexions et qui &quot;génère&quot; les signaux (via les fichiers moc_xxxx.cpp).]]></description>
		<content:encoded><![CDATA[<p>Klaim, pour le point 4, oui, car c&rsquo;est QObject qui garde &laquo;&nbsp;en mémoire&nbsp;&raquo; la liste des connexions et qui &laquo;&nbsp;génère&nbsp;&raquo; les signaux (via les fichiers moc_xxxx.cpp).</p>
]]></content:encoded>
	</item>
	<item>
		<title>Commentaires sur Les signaux et slots dans Qt5 par Klaim</title>
		<link>https://blog.developpez.com/gpu/?p=12#comment-5</link>
		<dc:creator><![CDATA[Klaim]]></dc:creator>
		<pubDate>Mon, 23 Apr 2012 05:06:58 +0000</pubDate>
		<guid isPermaLink="false">#comment-5</guid>
		<description><![CDATA[Je voulais dire, heriter de QObject.]]></description>
		<content:encoded><![CDATA[<p>Je voulais dire, heriter de QObject.</p>
]]></content:encoded>
	</item>
</channel>
</rss>
