LINUX.ORG.RU

История изменений

Исправление rumgot, (текущая версия) :

int main();

namespace Ns {
   class S {
      friend int ::main();
      int i;
   };
}

int main() {
   Ns::S s{};
   ++s.i;
}

https://ru.wikipedia.org/wiki/Предварительное_объявление

Исправление rumgot, :

int main();

namespace Ns {
   class S {
      friend int ::main();
      int i;
   };
}

int main() {
   Ns::S s{};
   ++s.i;
}

Исправление rumgot, :

int main();

namespace Ns {
   class S {
      friend int ::main();
      int i;
   };
}

int main() {
   Ns::S s{};
   ++ s.i;
}

Исходная версия rumgot, :

int main();

namespace Ns {
   class S {
      friend int ::main(); // error
      int i;
   };
}

int main() {
   Ns::S s{};
   ++ s.i;
}