Bogue de compilation avec le paramètre template = void* - page 2

 
fxsaber:

Malheureusement, je n'ai jamais vu d'exemple de son utilisation.

Eh bien, par exemple, en créant un tableau d'objets de différents types.
 
Vladimir Simakov:
Eh bien, par exemple, créer un tableau d'objets de différents types.

J'en ai moi-même donné un exemple ci-dessus. Mais alors comment s'y référer si l'on ne connaît pas les types ?

 
fxsaber:

J'en ai moi-même donné un exemple ci-dessus. Mais alors comment les aborder si vous ne connaissez pas les types ?

Comment puis-je ne pas savoir ? Je les y ai mis moi-même, c'est-à-dire que leur liste est définitive. Vous pouvez le faire en essayant des types dans cette liste, dynamic_cast pour vous aider.

 
Vladimir Simakov:

Comment puis-je ne pas savoir ? Je les ai mis là moi-même, c'est-à-dire que leur liste est finie. Vous pouvez utiliser dynamic_cast pour vous aider.

Eh bien, c'est une solution de béquille !

 

Dans MQ, par exemple, ArrayCopy est basé sur void*. Lorsque je dois le modifier, j'utilise un modèle. Et tout fonctionne, bien sûr, et strictement selon les types spécifiés.

C'est pourquoi je n'ai pas encore trouvé de script void* pratique. Apparemment, je vois les possibilités offertes par cette construction de manière étroite.

 
fxsaber:

Eh bien, c'est une solution de béquille !

Eh bien, si l'homme le veut, pourquoi le gâcher ? Et alors, pourquoi est-ce une béquille ? Si les ressources libres le permettent, pourquoi pas ? Donc, Java est une grande béquille, et l'assembleur règne. Au final, nous avons des désirs mais pas de possibilités, et on ne sait pas pourquoi, et ce n'est pas bon, nous devrions y remédier.

 
Vladimir Simakov:

Eh bien, si une personne le veut, alors pourquoi le gâcher. Et puis, pourquoi tout gâcher ? Si les ressources libres le permettent, alors pourquoi pas. Donc, Java est une grande béquille, et l'assembleur est généralement la règle. Au final, nous avons des désirs mais pas de possibilités, et on ne sait pas pourquoi, et ce n'est pas bon, nous devrions y remédier.

Pas contre cette puce. Je pose des questions afin d'apprendre des choses nouvelles et utiles. C'est la raison pour laquelle je suis sur le forum à bien des égards.

 
fxsaber:

Dans MQ, par exemple, ArrayCopy est basé sur void*. Lorsque je dois le modifier, j'utilise un modèle. Et tout fonctionne, bien sûr, et strictement selon les types spécifiés.

Mais il ne copie aucun pointeur, seulement les pointeurs compatibles qui sont castés implicitement. Toutes les fonctions définies par l'utilisateur fonctionnaient aussi de cette façon et c'était très pratique. Maintenant, il faut soit travailler avec des modèles, soit recopier dans un nouveau tableau. On ne sait pas très bien qui a voulu le réduire et pourquoi.

 
Alexey Navoykov:

Mais il ne copie pas tous les pointeurs, mais seulement les pointeurs compatibles qui sont castés implicitement. Toutes les fonctions utilisateur fonctionnaient de cette façon aussi et c'était très pratique. Maintenant, vous devez soit le faire avec des modèles, soit le copier dans un nouveau tableau. Je ne sais pas qui voulait le réduire et pourquoi.

Comment était-ce possible avant. On dirait que les types ont toujours été censés correspondre.

 
Alexey Navoykov:

Erreur de compilation. Bild 1961.

Et en 1961x32 tout fonctionne... Bien !
Raison: