Ist GCC richtig, wenn es eine Klassenvorlage akzeptiert, die ein Mitglied mit einem falschen Standard-MitgliedsinitialisC++

Programme in C++. Entwicklerforum
Anonymous
 Ist GCC richtig, wenn es eine Klassenvorlage akzeptiert, die ein Mitglied mit einem falschen Standard-Mitgliedsinitialis

Post by Anonymous »

GCC 15.2 (und viele ältere Versionen) akzeptiert den folgenden Code, während Clang 21.1 (und viele ältere Versionen) dies nicht tun:

Code: Select all

struct Wrapper
{
explicit Wrapper(int) {}
};

template 
struct Test
{
Test() : w(0) {}

Wrapper w{};
};

Test t;
Sehen Sie sich die Godbolt-Demo an.
Sobald ich den Template-Parameter entferne, weigert sich GCC zu kompilieren (kommentieren Sie Zeile 6 aus (

Code: Select all

template 
), um dies zu sehen).
Was ist richtig? Wenn GCC korrekt ist, warum passiert das?

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post