표준 유형에 대한 사용자 정의 추론 가이드

Aug 15 2020

어떤 이유로 여전히이 예상 부족 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>; 
} 

그러나 std::유형에 대한 CTAD에 대한 사용자 정의 가이드를 추가 할 수 있습니까?

답변

5 Oliv Aug 15 2020 at 17:17

표준 라이브러리 유형에 추론 가이드를 추가하는 것은 UB [namespace std] §4.4입니다 .

C ++ 프로그램의 동작은 다음과 같이 선언하면 정의되지 않습니다. [...]

  • 표준 라이브러리 클래스 템플릿에 대한 추론 가이드.