Przewodnik po odliczeniach zdefiniowanych przez użytkownika dla typów standardowych
Aug 15 2020
Z jakiegoś powodu nadal brakuje oczekiwanego CTAD dla std::initializer_list
in clang :
std::initializer_list l{1,2,3}; // error in clang
Dodanie przewodnika zdefiniowanego przez użytkownika, takiego jak poniższy, może rozwiązać problem :
namespace std {
template<class T>
initializer_list(const initializer_list<T>&) -> initializer_list<T>;
}
Ale czy można dodać przewodnik zdefiniowany przez użytkownika dla CTAD dla std::
typów?
Odpowiedzi
5 Oliv Aug 15 2020 at 17:17
Dodanie przewodnika dedukcji do standardowego typu biblioteki to UB [namespace std] §4.4 :
Zachowanie programu C ++ jest niezdefiniowane, jeśli deklaruje: [...]
- przewodnik dotyczący dedukcji dla dowolnego standardowego szablonu klas bibliotecznych.