Guia de dedução definido pelo usuário para tipos de std
Por algum motivo, ainda falta o CTAD esperado para std::initializer_list
o clang :
std::initializer_list l{1,2,3}; // error in clang
Adicionar um guia definido pelo usuário como o seguinte pode corrigir o problema :
namespace std {
template<class T>
initializer_list(const initializer_list<T>&) -> initializer_list<T>;
}
Mas é permitido adicionar um guia definido pelo usuário para CTAD para std::
tipos?
Respostas
5 Oliv
Adicionar um guia de dedução a um tipo de biblioteca padrão é UB [namespace std]§4.4 :
O comportamento de um programa C++ é indefinido se ele declara: [...]
- um guia de dedução para qualquer modelo de classe de biblioteca padrão.
O que significa um erro “Não é possível encontrar o símbolo” ou “Não é possível resolver o símbolo”?