Après réflexion c'est vrai que le type est forcé en ARRAY[G] ... il doit y avoir un truc, ça m'étonnerait que ça soit innocent.
s est déclarée comme STACK[G], ça se fait comme ça :
plop is local
s : STACK[G] do
!ARRAYED_STACK[G]!s.make -- ou autre syntaxe avec create end -- plop
L'arrayed stack est un détail d'implantation, c'est sensé être utilisé avec une sémantique STACK et quand on code en eiffel on pose pour les variables un type "générique", plus comportemental qu'orienté implantation.
Dans ce cas, je ne peux pas ramener s à un ARRAY[WHATEVER]. Peut-être avec des typage dégueux à base de ?= (c'est ça, non ?) mais là c'est du gruïkage donc bon, c'est normal de tout faire foirer.
Bref, ça ne me viendrais pas à l'idée de déclarer une variable en tant qu'ARRAYED_STACK en dehors d'ARRAYED_STACK.
[^] # Re: Si j'ai bien tout compris
Posté par Jean-Yves B. . En réponse au journal Si j'ai bien tout compris. Évalué à 1.
s est déclarée comme STACK[G], ça se fait comme ça :
plop is
local
s : STACK[G]
do
!ARRAYED_STACK[G]!s.make
-- ou autre syntaxe avec create
end -- plop
L'arrayed stack est un détail d'implantation, c'est sensé être utilisé avec une sémantique STACK et quand on code en eiffel on pose pour les variables un type "générique", plus comportemental qu'orienté implantation.
Dans ce cas, je ne peux pas ramener s à un ARRAY[WHATEVER]. Peut-être avec des typage dégueux à base de ?= (c'est ça, non ?) mais là c'est du gruïkage donc bon, c'est normal de tout faire foirer.
Bref, ça ne me viendrais pas à l'idée de déclarer une variable en tant qu'ARRAYED_STACK en dehors d'ARRAYED_STACK.