Merci pour ces informations, mais relis mes messages pr�c�dents. J'ai compris depuis longtemps l'aspect pratique de cette norme pour les d�veloppeurs multiplateformes.
Version imprimable
En fait je suis en train de me dire que moldavi tu parles de l'alignement qu'imposent certaines architectures (pas cote languages donc).
Note que generalement ca ne viens pas de l'OS mais du hardware (la memoire ou le processeur ou la combinaison des deux) qui est juste plus rapide si les memoires sont alignees d'une certaine facon, ou encore qui ne s'executera carrement pas correctement.
Ca ne se decide pas dans le code de l'OS. L'OS au mieux pourra faire des verifications au runtime pour eviter de crasher toute la machine, mais c'est tout. La convention est induite par la machine et c'est le compilateur qui connait l'architecture en question et qui va faire son possible pour que ca rentre dans ce que l'architecture accepte.
Sauf si tu precises a la main que ut veux un alignement precis. Auquel cas tu utilises les commandes dont on parle.
L'id�e pour r�sumer, c'est que cette norme n'a rien � sp�cifier sur l'alignement, parce qu'elle n'invente rien. L'alignement ce sont des donn�es contig�es en m�moire. Donc cette norme ne fait que pr�ciser, pas sp�cifier. On l'a pas attendu pour dire ce qu'�tait l'alignement de donn�es. Elle ne fait que pr�ciser, pas sp�cifier. Elle parle peut-�tre m�me d'une chose qui existait avant le langage C++.
Vous allez me dire, oui mais c'est le but d'une norme. Sauf que l�, les OS/compilateurs ont pr�c�d� la norme. La norme ne fait que s'adapter � la pratique.
Dans cette situation l�, la norme ne fait que des choses pour faciliter la vie du d�veloppeur (elle institue un mot-cl�). Elle s'adapte aux pratiques courantes des compilateurs. Elle n'invente rien.
Donc personnellement, je n'appelle pas cela de la sp�cification, mais de l'adaptation. C'est aussi le r�le que j'attends d'une norme : facilit� la vie des d�veloppeurs.
Oui, la norme n'a rien invente, c'est pareil pour toutes les features, elles ne fais que les normer, les standardiser, ces pratiques existantes et repandues (meme les lambdas par exemple).
Mais quel est le probleme avec ca?
Ce n'est pas cela du tout, mais il faut comprendre aussi le fonctionnement de la norme (du moins de la norme C++).
Avant qu'il n'y ait la norme, il y a une �volution dans la mani�re d'envisager la conception et la programmation, une nouvelle id�e, un nouveau concept (un nouveau langage).
cette "nouveaut�" peut �tre (ou non) impl�ment�e de "n'importe quelle mani�re" par le compilateur, sous la forme de ce que l'on pourrait plus ou moins appeler "une extension".
C'est ce qui fait que VC utilise __declspec et que Gcc utilise __attribute__.
Tot ou tard, on se rend compte qu'une possibilit� (quelle qu'elle soit) est g�n�ralis�e, mais que chaque compilateur l'impl�mente "� sa sauce" et que les diff�rentes impl�mentations sont faites de mani�re "d�cousues" (comprend :sans qu'il n'y ait la moindre concertation entre les diff�rents �diteur de compilateur quant aux noms utilis�s ou aux comportements observ�s).
La norme apporte donc un formalisme indiquant clairement quelle fonctionnalit� doit �tre propos�e, sous quel nom, ainsi que les comportements qu'elle doit proposer.
A partir de l�, les compilateurs qui pr�tendent respecter la norme sont oblig�s de fournir la fonctionnalit� telle que d�crite par la norme.
Or, l'alignement des donn�es en m�moire n'est, sommes toutes, qu'un aspect purement et simplement marginal d'un aspect beaucoup plus global qui est le mod�le m�moire utilis� par C++, qui a �t� normalis� d�s le d�but!
On peut trouver quantit� de raisons au fait que le mot cl� alignas n'est apparu qu'en C++11, mais cela ne change rien au fait, tout ce que tu as dit (� part le fait que l'on ne peut pas aligner les arguments d'une fonction) est totalement faux:
- On peut aligner tout aussi bien des structures que des classes (ou meme des unions), et ce, m�me si l'habitude de x ou de y tend plus ou moins � n'aligner que des structures
- Le fait qu'une fonction aie recours � l'allocation dynamique de la m�moire n'emp�che absolument pas l'alignement des donn�es
- L'accessibilit� des donn�es n'a strictement rien � voir avec l'alignement des donn�es en m�moire
- La pr�sence (ou l'absence) de fonction(s) membre(s) ne joue absolument pas sur la capacit� d'aligner les donn�es en m�moire
Cela fait maintenant pr�s de 60 messages que l'on te dis que presque tout ce que tu d�clares est erron�, et tu essayes malgr� tout de te contorsionner comme un chat afin de retomber sur tes pattes.
Il ne faut donc pas forc�ment t'�tonner si tes propos sont r�fut�s ;)
Bonjour.
Flob90 nous a fournit un lien qui montre que cela existe... Je veux bien que tu me donnes des cours sur la norme C++, ce n'est pas inint�ressant. Mais il faudrait que je sois certain que tu ma�trises le sujet pour te faire confiance.
Sinon je suis comme un chat, c'est vrai, mais pas pour le contorsionnisme, plut�t pour l'ind�pendance (d'esprit) et la paresse.
:calim2: Je te prie de ne pas d�tourner mes propos :aie:
Je ne vois rien dans les �l�ments que j'ai cit� quelque-chose que va dans le sens :
Qui �tait l'assertion � laquelle s'opposait Koala01 et Germinolegrand.
Mon message s'opposait aussi � ton assertion :
Alors oui c'est un mot-cl�, oui la norme explique comment ce mot-cl� doit impacter le cod� g�n�r� par rapport au mod�le m�moire du C++. Le lien OS <-> code est fait par le compilateur, c'est un peu le principe d'un compilateur.
Franchement, je suis ouvert � la discussion. Mais l� cela devient lourd.
L� je dis que Flob90 nous a fournit un lien... C'est tout... Je r�p�te.. Flob90 nous a fournit un lien qui montre que la norme nous parle d'alignement.
Dis-moi o� je dis que Flob90 appuie mon propos initial ? Tu ne peux pas. Voil� ce � quoi je bataille depuis 60 messages, dixit un posteur.
Je cherche la phrase o� je dis que Flob90 est 100% d'accord avec moi, je ne la trouve pas...
D�sol� mais pour moi la discussion est close.
Il y a un point sur lequel on est d'accord : �a devient lourd.
Je pense que le tour de la question de la diff�rence entre struct et class a �t� fait. Le lecteur int�ress� pourra se faire sa propre opinion en lisant les 4 pages de discussion (ou juste la premi�re r�ponse, qui r�pondait d�j� � la question). Il n'est donc pas n�cessaire de continuer plus en avant une discussion qui risque de tourner aux argumentations personnelles...
Merci
Non mais c'�tait une vraie question de ma part, rien de plus.
C'est ce que j'avais compris dans ton message � cause de :
Citation:
Envoy� par koala01
Mais si tu voulais juste dire que Flob avait fourni un lien sur le draft de la norme, alors OK.Citation:
Envoy� par moldavi