Assegnamenti nelle funzioni const non ne vedo.
Può essere che il set richieda un operatore di confronto globale. (In genere si scrivono tutti e due)
codice:
bool operator<(aula const&  au, aula const& au1) const {
   return au < au1;
}