4

由于某种原因,在clang中仍然缺少预期的CTADstd::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>; 
} 

但是是否允许为std::类型添加 CTAD 的用户定义指南?

4

1 回答 1

5

为标准库类型添加推导指南是 UB [namespace std]§4.4

如果 C++ 程序声明: [...]

  • 任何标准库类模板的演绎指南。
于 2020-08-15T10:17:38.423 回答