템플릿 별칭 (, 예 : 누락 된 멤버 typename의 템플릿 별칭, 아래 코드 조각과 같이)이 포함 된 대체 오류의 경우 오류가 발생해야합니까? 올바른 누가, 왜 : 그래서 질문은템플릿 별칭 및 파일
// some types
struct bar { };
struct foo {
typedef void member_type;
};
// template alias
template<class T>
using member = typename T::member_type;
template<class T>
void baz(...) { }
// only works for gcc, clang fails with: no type named 'member_type'
// in 'bar'
template<class T>
void baz(member<T>*) { }
int main(int, char**) {
baz<bar>(0); // picks first
baz<foo>(0); // picks second
return 0;
}
을 :
연타와 GCC는 이것에 동의하는 것? 기준에 따르면
'clang -v'는 무엇을 말합니까? Clang 3.3 트렁크는 코드를 잘 컴파일합니다. – Xeo
여기 데비안 clang 버전 3.1-8은 기다릴 필요가 있습니다. 귀하의 의견에 감사드립니다! – max
조금 단순화하기 위해 템플릿 별칭을 제거 할 수 있습니까? – David