hamada do construtor base do modelo na lista de inicialização do memb
Tenho uma classe base que se parece com o seguint
template<typename T>
class Base
{
public:
Base(int someValue);
virtual T someFunc() =0;
};
template<typename T>
Base<T>::Base(int someValue)
{}
E depois o seguinte.
#include "base.hpp"
class Foo
: public Base<Foo>
{
public:
Foo(int someValue);
virtual Foo someFunc();
};
Foo::Foo(int someValue)
: Base(someValue)
{}
Eu recebo o seguinte erro do gcc 4.2.
error: class ‘Foo’ does not have any field named ‘Base’
Eu devo mencionar que isso compila bem na minha caixa do Fedora que está executando o gcc 4.6.2. Este erro ocorre ao compilar na minha máquina os x Lion.
Obrigado antecipadamente pela ajuda
EDITA
O problema parece que não estou indicando o tipo de modelo na classe Foo ao chamar o construtor. O seguinte corrige o erro no os x.
: Base<Foo>(someValue, parent)
EDITA
Sim, isso parece um bug. O que eu mencionei antes corrige o erro no os x e o código compila bem no fedora com essa correção. Irá ver se há uma atualização para o gcc no os x.