- /// The
type of the object instantiated. piece morpher can be derived.
- typedef typename image_id<piece_morpher<SrcType, Exact> >::exact_type
exact_type;
typedef piece_morpher<SrcType, Exact> self_type;
- typedef super_piece_morpher<SrcType, piece_morpher<SrcType, Exact> >
super_type;
+ typedef typename image_id<self_type>::exact_type exact_type;
+ typedef super_piece_morpher<SrcType, exact_type> super_type;
- typedef oln_point_type(SrcType) point_type;
- typedef oln_dpoint_type(SrcType) dpoint_type;
- typedef oln_size_type(SrcType) size_type;
- typedef oln_value_type(SrcType) value_type;
+ typedef typename image_id<exact_type>::point_type point_type;
+ typedef typename image_id<exact_type>::dpoint_type dpoint_type;
+ typedef typename image_id<exact_type>::size_type size_type;
+ typedef typename image_id<exact_type>::value_type value_type;
Pourquoi ne plus passer par les macros ?
Les macros cherchent l'exact_type, et appellent le typedef de la
class exacte.
Ici on ne cherche pas le type de point (par exemple), mais on veut
le définir. Pour le définir on passe par la définition que l'on
vient juste de donner dans la classe image_id.
Voila donc pourquoi il faut passer par l'image_id.
>- value_type& at(const point_type& p)
>+ value_type&
>+ at(const point_type& p)
> {
>- return const_cast<value_type &>(this->ima_)[p + p_];
>+ return const_cast<value_type &>
>+ ( const_cast<SrcType &>(this->ima_)[p + p_] );
> }
J'imagine que tu sais ce que tu fais. Si tu n'es pas
sur de toi, demande à damien/giovanni/moi de te relire.
> /// Override the impl method.
> const impl_type*
> impl() const
> {
>- return impl_;
>+ return &impl_;
> }
Tu es le seul d'olena a retourner du &impl_.
J'imagine que tu sais ce que tu fais. Si ce n'est
pas le cas cf plus haut.
Y'a-t-il des des sans md5. Ce dernier, c'est
l'arme ultime, il ne doit
etre ustilise que si il est impossible de faire d'autre tests.
lol
--
Niels