Guía de deducción definida por el usuario para tipos estándar
Aug 15 2020
Por alguna razón, todavía falta el CTAD esperado para std::initializer_list
in clang :
std::initializer_list l{1,2,3}; // error in clang
Agregar una guía definida por el usuario como la siguiente puede solucionar el problema :
namespace std {
template<class T>
initializer_list(const initializer_list<T>&) -> initializer_list<T>;
}
Pero, ¿está permitido agregar una guía definida por el usuario para CTAD para std::
tipos?
Respuestas
5 Oliv Aug 15 2020 at 17:17
Agregar una guía de deducción a un tipo de biblioteca estándar es UB [namespace std]§4.4 :
El comportamiento de un programa C++ no está definido si declara: [...]
- una guía de deducción para cualquier plantilla de clase de biblioteca estándar.