어떤 표준에 따라 잘 형성된 경우 : 3 및 4의 경우에템플릿 매개 변수 순서가 공제 되었습니까? 다음에
// 1 : Deduced template parameter in the normal order
template<typename T, typename T1 = typename std::conditional<std::is_fundamental<T>::value, T, int>::type>
void f(T x);
// 2 : Deduced template parameter in the inverted order
template<typename T1 = typename std::conditional<std::is_fundamental<T>::value, T, int>::type, typename T>
void f(T x);
// 3 : Deduced template parameter before a function pointer
template<typename T>
void f(T x, void(*g)(int, int, T*));
// 4 : Deduced template parameter after a function pointer
template<typename T>
void f(void(*g)(int, int, T*), T x);
// 5 : Deduced template parameter with inversed variables
template<typename T, typename T1 = typename std::conditional<std::is_fundamental<T>::value, T, int>::type>
void f(T1 x, T y);
// 6 : Inverted deduced parameter
template<typename T, typename T1>
void f(T1 x, T y);
변수로부터 함수 내 전달 타입 선택이 끝난 될 형, 다른 경우 : 함수 중 하나 또는 변수 중 하나? 이 선언되기 전에 의 기본 템플릿 인수에 T
이 사용 되었기 때문에
"ok"를 정의하십시오. 잘 정의 된 _and_ 잘 정의되지 않은 _ 아닌 _ 아닌가? –
'변수와 함수 내부에서 전달 된 타입이 다른 경우'그들은 그렇지 않습니다. 이제까지. 그렇게하려고하면 잘못된 인수가 전달되어 컴파일이 실패합니다. –
특성 뒤에':: value'가 없습니다. – jrok