Der Standard besagt, "Ein Mitglied einer Klasse T kann T nicht als seinen Namen verwenden, wenn das Mitglied ein statisches Datenelement, eine Elementfunktion, ein Elementtyp, eine Elementvorlage, ein Enumerator ist B. einer uncoped-Enumeration, einem Mitglied einer anonymen Unionsmitgliedschaft. Ein nicht statisches Datenelement kann jedoch den Namen T verwenden, solange es keine von Benutzern deklarierten Konstruktoren gibt. "Datenelement mit dem Klassennamen
Wenn ich jedoch diese Klasse erstellen, gibt es einen Kompilierungsfehler.
class G
{
int G;
};
Ich verwende VS2013. Ist es in Microsoft nicht erlaubt oder?
Was ist der Compiler-Fehler? Dies funktioniert mit Clang und GCC. – Hamdor
microsoft Compiler sind (in) berühmt für ihren Fehler zu jeder Art von Standard zu entsprechen. –
Fehler: C2380: Typ (en) vor 'G' (Konstruktor mit Rückgabetyp oder ungültige Neudefinition des aktuellen Klassennamens?) Also, sie erlauben es nicht :( –