Benutzerdefinierter Abzugsleitfaden für Standardtypen
Aug 15 2020
Aus irgendeinem Grund fehlt immer noch die erwartete CTAD für std::initializer_list
in clang :
std::initializer_list l{1,2,3}; // error in clang
Das Hinzufügen einer benutzerdefinierten Anleitung wie der folgenden kann das Problem beheben :
namespace std {
template<class T>
initializer_list(const initializer_list<T>&) -> initializer_list<T>;
}
Aber ist es erlaubt, eine benutzerdefinierte Anleitung für CTAD für std::
Typen hinzuzufügen?
Antworten
5 Oliv Aug 15 2020 at 17:17
Das Hinzufügen eines Abzugsleitfadens zu einem Standardbibliothekstyp ist UB [namespace std]§4.4 :
Das Verhalten eines C++-Programms ist undefiniert, wenn es deklariert: [...]
- ein Abzugsleitfaden für jede Standardbibliotheksklassenvorlage.