Определяемое пользователем руководство по дедукции для стандартных типов
По какой-то причине все еще отсутствует ожидаемый CTAD дляstd::initializer_list
в лязг:
std::initializer_list l{1,2,3}; // error in clang
Добавление определяемого пользователем руководства, подобного следующему, может решить проблему:
namespace std {
template<class T>
initializer_list(const initializer_list<T>&) -> initializer_list<T>;
}
Но можно ли добавить определяемое пользователем руководство для CTAD для std::
типы?
1 ответ
Решение
Добавление руководства по выводу к стандартному типу библиотеки - это UB [namespace std]§4.4:
Поведение программы на C++ не определено, если она объявляет: [...]
- руководство по вычету для любого стандартного шаблона класса библиотеки.