| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 
 | template <>
Base * DerivedCreator<d1_trait>::create(ParameterList const & pl) const{
    ConcreteParameterList<d1_trait> const & temp =
            static_cast<ConcreteParameterList<d1_trait> const & >(pl);
     return new Derivee1(temp.i);
}
Base * Factory::create(d1_trait const &, ParameterList const & pl) const{
    return DerivedCreator<d1_trait>()::create(pl);
}
template <>
Base * DerivedCreator<d2_trait>::create(ParameterList const & pl) const{
    ConcreteParameterList<d2_trait> const & temp =
            static_cast<ConcreteParameterList<d2_trait> const & >(pl);
     return new Derivee2(temp.str);
}
 
Base * Factory::create(d2_trait const &, ParameterList const & pl) const{
    return DerivedCreator<d2_trait>()::create(pl);
}
/* ... */
/* ... */
template <>
Base * DerivedCreator<dN_trait>::create(ParameterList const & pl) const{
    ConcreteParameterList<dN_trait> const & temp =
            static_cast<ConcreteParameterList<dN_trait> const & >(pl);
     return new DeriveeN(temp.str, temp.d);
}
Base * Factory::create(dN_trait const &, ParameterList const & pl) const{
    return DerivedCreator<dN_trait>()::create(pl);
} | 
Partager