std 类型的用户定义推导指南
User-defined deduction guide for std types
由于某种原因,仍然缺少预期 CTAD for std::initializer_list
in clang:
std::initializer_list l{1,2,3}; // error in clang
像下面这样添加用户定义的向导可以fix the issue:
namespace std {
template<class T>
initializer_list(const initializer_list<T>&) -> initializer_list<T>;
}
但是是否允许为 std::
类型添加用户定义的 CTAD 指南?
对标准库类型添加推导指南是UB [namespace std]§4.4:
The behavior of a C++ program is undefined if it declares : [...]
- a deduction guide for any standard library class template.
由于某种原因,仍然缺少预期 CTAD for std::initializer_list
in clang:
std::initializer_list l{1,2,3}; // error in clang
像下面这样添加用户定义的向导可以fix the issue:
namespace std {
template<class T>
initializer_list(const initializer_list<T>&) -> initializer_list<T>;
}
但是是否允许为 std::
类型添加用户定义的 CTAD 指南?
对标准库类型添加推导指南是UB [namespace std]§4.4:
The behavior of a C++ program is undefined if it declares : [...]
- a deduction guide for any standard library class template.