Seite 1 von 1
Woran verschluckt sich CLANG hier?
Verfasst: 05.08.2020, 17:55
von DerAlbi
https://godbolt.org/z/sP1Wex
Code: Alles auswählen
struct empty {};
template<auto arg> void Test() { }
empty e1;
void WTF()
{
Test<e1>(); //<----
empty e2;
Test<e2>(); //<----
}
Gcc tut.
Re: Woran verschluckt sich CLANG hier?
Verfasst: 06.08.2020, 08:02
von Schrompf
Du nimmst eine Instanz als Template-Parameter, keinen Typ. Mich wundert, dass der GCC das akzeptiert. Beide Test<>-Instanzen sind ja identisch, weil sie jeweils mit Typ empty instanziiert wurden.
Re: Woran verschluckt sich CLANG hier?
Verfasst: 06.08.2020, 10:28
von Matthias Gubisch
Vermutlich am unfertigen C++20 Support...
https://godbolt.org/z/Yr3f5E
Wenn du beim gcc den standard auf c++20 stellst compiliert das sauber durch, mit c++17 nicht wie du siehst.
Edit:
Das da:
http://www.open-std.org/jtc1/sc22/wg21/ ... 907r1.html
sollte genau dein Problem sein.
Laut dem hier:
https://en.cppreference.com/w/cpp/20 aktuell supported auf GCC und msvc19.26
Re: Woran verschluckt sich CLANG hier?
Verfasst: 06.08.2020, 13:21
von DerAlbi
Danke. Also warten und Tee trinken :-)
Ich hatte bisher nur die gcc-version zurückgeschraubt.. das scheint da schon eine Weile zu funktionieren