Pourquoi cela ne compile-t-il pas?
template struct Base
{
typename Child::Type t; // Ne compile pas. "Pas de type nommé Type dans Child"
};
struct Derived : public Base
{
typedef int Type;
};
Comment se fait-il que Base
ne puisse pas accéder au Type de son enfant? J'ai essayé la même chose avec une fonction statique au lieu d'un typedef, et cela fonctionne très bien.
J'ai essayé à la fois GCC 4.4.2 et clang 3.0.