erro C2582: a função 'operator =' está indisponível em 'B'

O código a seguir fornece um erro de compilação (pelo menos ao usar o MS VS 2008) para a linha "e = f" em main ():

erro C2582: a função 'operator =' está indisponível em 'B'

class A {
public:
    A() { }
    static const double x;
};
const double A::x = 0.0;

class B {
public:
    B() : x(0.0) { }
    const double x;
};

int main( int argc, char *argv[] )
{
    A c,d;
    B e,f;

    c = d;
    e = f;

    return 0;
}

O operador de atribuição padrão deve ser gerado para ambas as classes, A e B!?

em 12.8.10: "Se a definição de classe não declarar explicitamente um operador de atribuição de cópia, um será declarado implicitamente."

questionAnswers(3)

yourAnswerToTheQuestion