다음 코드를 고려하시기 바랍니다. bar
이 중첩 템플릿이 아닌 경우 위 구문은 정상적으로 작동합니다. 내가 예를 들어 할 때템플릿 친구와 중첩 된 클래스
int main()
{
foo<int> x;
}
MSVC8 (비주얼 C++ 2005)을 좋아하지 않는다 :
1>.\main.cpp(11) : error C3855: 'foo<T>::bar': template parameter 'S' is incompatible with the declaration
1> .\main.cpp(12) : see reference to class template instantiation 'foo<T>::bar<S>' being compiled
1> .\main.cpp(14) : see reference to class template instantiation 'foo<T>' being compiled
을 내가 대신
template <typename> friend struct foo<T>::bar;
을 사용하는 경우 컴파일러는 나에게 같은 오류를 제공합니다 . 내가 원하는 것을 어떻게 얻을 수 있습니까?
편집 :이는 것 같다 나는 (여기의 아침, 나는 정말 깨어 아니에요) 검사의 double VC8 bug :
내 컴퓨터에서 작동하는 것 같습니다. 그래도 같은 컴파일러. – DumbCoder
위의 정확한 코드를 복사하고 포함하지 않으며 복사 한 다음 오류 메시지를 붙여 넣습니다. –