Standard mówi: "Członek klasy T nie może używać T jako nazwy, jeśli element jest statycznym elementem danych, funkcją składową, typem elementu, szablonem członka, modułem wyliczającym nieskopiowanego wyliczenia, członka anonimowej unii członkowskiej, jednak niestatyczny element danych może używać nazwy T, o ile nie ma konstruktorów deklarowanych przez użytkownika. "element danych o nazwie klasy
Jednak jeśli utworzę tę klasę, spowoduje to błąd kompilacji.
class G
{
int G;
};
Używam VS2013. Czy nie jest dozwolone w Microsoft lub?
Jaki jest błąd kompilacji? Działa to z Clang i GCC. – Hamdor
Kompilatory microsoft są (nie) słyną z braku zgodności z jakimkolwiek standardem. –
error: C2380: type (s) before 'G' (konstruktor z typem powrotu lub nielegalna redefinicja bieżącej nazwy klasy?) Tak więc, nie pozwalają na to :( –