Ist es gültig, einen Konstruktor wie S::S{} explizit aufzurufen?C++

Programme in C++. Entwicklerforum
Anonymous
 Ist es gültig, einen Konstruktor wie S::S{} explizit aufzurufen?

Post by Anonymous »

Hier ist der Code:

Code: Select all

struct S{};

int main()
{
S::S{};
return 0;
}
Bei Verwendung von GCC und Clang schlägt dies mit einer eindeutigen Fehlerausgabe fehl:

Code: Select all

qualified reference to 'S' is a constructor name rather than a type in this context
Aber wenn es um MSVC geht, wurde es gut kompiliert, als wäre ein injizierter Klassenname „durchgesickert“
Sie können die Ausgabe unter https://www.godbolt.org/z/q1jKaeWvf sehen
Ist das also nur eine MSVC-Erweiterung oder ist der Code tatsächlich gültig?

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post