Grazie per la risposta a quest'ora

Non compilano neppure a me, l'errore che ho incollato in italico lo da G++ appunto

Il punto è che il compilatore per quanto ne so dovrebbe essere in grado di capire quale ramo seguire, visto che lo sto indicando in modo completo con C::A::next: è il campo next dentro all'A che sta in C.
Un caso ambiguo sarebbe d->A::next, questo si non si può risolvere visto che non si sa di quale dei due A a disposizione stiamo parlando.
Le classi basi virtuali di cui parli tu sono un'altra cosa, ora mi interessava particolarmente capire perchè g++ mi impedisce di compilare qualcosa che secondo Stroustrup dovrebbe funzionare benissimo.