Bonjour,
Je me demandais s'il était possible d"utiliser un constructeur (autre que
celui par défaut) dans un constructeur d'un autre objet, je m'explique :
L'exemple 1er qui me vient à l'esprit est avec une classe Ligne avec en
attributs 2 objets de la classe Point. Si je veux faire un constructeur pour
la classe Ligne avec les 4 coordonnées des points en paramètre. Est-il
possible d'utiliser un constructeur pour chaque Point qui va les construire
à partir de ses coordonnées ou est ce que je suis obligé de faire une
méthode de type setCoordonnées(param, param) ?
Tiens, je pensais que toutes les class/struct avaient les mêmes contraintes, et qu'en plaçant le tableau comme premier champs de segment, ça devait passer.
Non. Je crois que tu confonds avec le fait que le format des pointeurs pour toutes les class/struct/union doit etre le meme. Ou alors avec le fait que les allocateurs de la bibliotheque standard doivent retourner de la memoire correctement alignee pour n'importe quel type.
Je confonds surtout avec le fait que l'alignement d'une structure (en C, mais ça doit être idem en C++) doit être celui de son champs le plus contraignant. Ceci dit, ma remarque est bête: une telle contrainte impliquerait qu'une structure aurait pour taille minimale la contrainte d'alignement la plus forte possible, ce qui n'est pas vraiment dans l'esprit d'économie du C.
Sinon, une question qui me vient en passant: est-il possible de connaitre à la compilation les contraintes d'alignement pour un type donné ?
Pas a ma connaissance.
Ce qui rend l'écriture d'allocateur utilisateur un rien plus difficile.
Marc Boyer -- Je ne respecte plus le code de la route à vélo depuis une double fracture due au fait que j'étais le seul à le respecter.
Jean-Marc Bourguet wrote:
Marc Boyer <Marc.Boyer@enseeiht.yahoo.fr.invalid> writes:
Tiens, je pensais que toutes les class/struct avaient les mêmes
contraintes, et qu'en plaçant le tableau comme premier champs
de segment, ça devait passer.
Non. Je crois que tu confonds avec le fait que le format des
pointeurs pour toutes les class/struct/union doit etre le meme. Ou
alors avec le fait que les allocateurs de la bibliotheque standard
doivent retourner de la memoire correctement alignee pour n'importe
quel type.
Je confonds surtout avec le fait que l'alignement d'une structure
(en C, mais ça doit être idem en C++) doit être celui de
son champs le plus contraignant.
Ceci dit, ma remarque est bête: une telle contrainte impliquerait
qu'une structure aurait pour taille minimale la contrainte
d'alignement la plus forte possible, ce qui n'est pas vraiment
dans l'esprit d'économie du C.
Sinon, une question qui me vient en passant: est-il possible
de connaitre à la compilation les contraintes d'alignement
pour un type donné ?
Pas a ma connaissance.
Ce qui rend l'écriture d'allocateur utilisateur un rien plus
difficile.
Marc Boyer
--
Je ne respecte plus le code de la route à vélo depuis une double fracture
due au fait que j'étais le seul à le respecter.
Tiens, je pensais que toutes les class/struct avaient les mêmes contraintes, et qu'en plaçant le tableau comme premier champs de segment, ça devait passer.
Non. Je crois que tu confonds avec le fait que le format des pointeurs pour toutes les class/struct/union doit etre le meme. Ou alors avec le fait que les allocateurs de la bibliotheque standard doivent retourner de la memoire correctement alignee pour n'importe quel type.
Je confonds surtout avec le fait que l'alignement d'une structure (en C, mais ça doit être idem en C++) doit être celui de son champs le plus contraignant. Ceci dit, ma remarque est bête: une telle contrainte impliquerait qu'une structure aurait pour taille minimale la contrainte d'alignement la plus forte possible, ce qui n'est pas vraiment dans l'esprit d'économie du C.
Sinon, une question qui me vient en passant: est-il possible de connaitre à la compilation les contraintes d'alignement pour un type donné ?
Pas a ma connaissance.
Ce qui rend l'écriture d'allocateur utilisateur un rien plus difficile.
Marc Boyer -- Je ne respecte plus le code de la route à vélo depuis une double fracture due au fait que j'étais le seul à le respecter.
Gabriel Dos Reis
Marc Boyer writes:
| Sinon, une question qui me vient en passant: est-il possible | de connaitre à la compilation les contraintes d'alignement | pour un type donné ?
À ma connaissance, uniquement ds approximations grossières avec des unions. C'est pour cela qu'il y a des propositions pour aligned_storage<>.
-- Gaby
Marc Boyer <Marc.Boyer@enseeiht.yahoo.fr.invalid> writes:
| Sinon, une question qui me vient en passant: est-il possible
| de connaitre à la compilation les contraintes d'alignement
| pour un type donné ?
À ma connaissance, uniquement ds approximations grossières avec des
unions. C'est pour cela qu'il y a des propositions pour
aligned_storage<>.
| Sinon, une question qui me vient en passant: est-il possible | de connaitre à la compilation les contraintes d'alignement | pour un type donné ?
À ma connaissance, uniquement ds approximations grossières avec des unions. C'est pour cela qu'il y a des propositions pour aligned_storage<>.
-- Gaby
Gabriel Dos Reis
Marc Boyer writes:
| >> Sinon, une question qui me vient en passant: est-il possible | >> de connaitre à la compilation les contraintes d'alignement | >> pour un type donné ? | > | > Pas a ma connaissance. | | Ce qui rend l'écriture d'allocateur utilisateur un rien plus | difficile.
Je pense que cela a toujours été le cas :-)
-- Gaby
Marc Boyer <Marc.Boyer@enseeiht.yahoo.fr.invalid> writes:
| >> Sinon, une question qui me vient en passant: est-il possible
| >> de connaitre à la compilation les contraintes d'alignement
| >> pour un type donné ?
| >
| > Pas a ma connaissance.
|
| Ce qui rend l'écriture d'allocateur utilisateur un rien plus
| difficile.
| >> Sinon, une question qui me vient en passant: est-il possible | >> de connaitre à la compilation les contraintes d'alignement | >> pour un type donné ? | > | > Pas a ma connaissance. | | Ce qui rend l'écriture d'allocateur utilisateur un rien plus | difficile.