은 가정하자 나는 다음과 같은 코드를 한 : ICC 13.0.1와 연타 3.2이 나에게 준, 4.7.2 및 GCC 4.8.0는 확인이 코드를 컴파일다른 행동 - 템플릿 템플릿 인수
template <template <typename> class T>
class A {};
template <typename T>
class B
{
A<B> instance;
};
int main()
{
B<int> instance;
}
GCC를하는 동안 오류 (clang은 B 대신 B를 요구하고 icc는 템플릿 인스턴스에서 < 뒤에 공백이 필요함).
누가 맞습니까?
나는 그것에 관한 스레드 (Template class that refers to itself as a template template parameter?)를 찾았지만 표준의 14.6.1/2를 이해할 수 없으며 또한 LLVM 버그 14350 (http://www.mail-archive.com/[email protected]/msg21095.html)을 보았습니다. 그럼 여기에 잘못하고 인텔이 틀렸어?
이러한 상황에서 B와 B 형식을 모두 사용할 수 있습니까? – FrozenHeart
@NikitaTrophimov, 템플릿을 참조 할 때':: B'를 사용할 수 있습니다. – rici