C ++: inicialização do campo herdado

Eu tenho uma pergunta sobre a inicialização de membros herdados no construtor da classe derivada. Código de exemplo:

class A
    {
public:
    int m_int;
    };

class B: public A
    {
public:
    B():m_int(0){}
    };

Este código me fornece a seguinte saída:

In constructor 'B::B()': Line 10: error: class 'B' does not have any field named 'm_int'

(Vejohttp://codepad.org/tn1weFFP)

Eu estou supondo por que isso acontece?m_int deve ser membro deBe classe paiA já deve ser inicializado quando a inicialização dom_int noB acontece (porque os construtores pai são executados antes da inicialização do membro da classe herdada). Onde está um erro no meu raciocínio? O que realmente acontece neste código?

EDIT: Conheço outras possibilidades de inicializar esse membro (construtor de base ou atribuição no construtor derivado), mas quero entender por que isso é ilegal na maneira como o tento? Algum recurso específico da linguagem C ++ ou algo assim? Por favor, aponte-me para um parágrafo no padrão C ++, se possível.