Appel de constructeur de base de modèle dans l'erreur de liste d'initialisation de membre

J'ai une classe de base qui ressemble à celui-ci.

template<typename T>
class Base
{
   public:
      Base(int someValue);

      virtual T someFunc() =0;
};

template<typename T>
Base<T>::Base(int someValue)
{}

Et puis le suivant.

#include "base.hpp"

class Foo
   : public Base<Foo>
{
   public:
      Foo(int someValue);

      virtual Foo someFunc();
};

Foo::Foo(int someValue)
   : Base(someValue)
{}

J'obtiens l'erreur suivante à partir de gcc 4.2.1.

error: class Foo does not have any field named Base

Je dois mentionner que cette compile très bien sur mon Fedora boîte qui est en cours d'exécution gcc 4.6.2. Cette erreur se produit lors de la compilation sur mes os x Lion machine.

Merci d'avance pour l'aide.

MODIFIER

Problème semble que je ne suis pas en indiquant le type de modèle dans la classe Foo lors de l'appel du constructeur. Les correctifs suivants l'erreur dans os x.

: Base<Foo>(someValue, parent)

MODIFIER

Oui, cela ressemble à un bug. Ce que j'ai mentionné avant corrige l'erreur sous os x et le code compile bien dans fedora avec ce correctif. Vais aller voir si il y a une mise à jour de gcc sous os x.

source d'informationauteur user174084