템플릿 구조체/클래스를 친구로 선언
C 프로그래밍에서 템플릿 구조체나 클래스를 친구로 선언하는 시나리오가 발생할 수 있습니다. 원하는. 그러나 아래의 일반적인 접근 방식을 시도하면 Visual C 8(VC8)과 같은 일부 컴파일러에서 오류가 발생합니다.
template <typename T> struct foo { template <typename S> friend struct foo<S>; };
이 오류의 원인은 컴파일러가 여러 템플릿 매개 변수 목록을 한 줄. 이러한 장애를 극복하기 위해 대체 구문이 도입되었습니다.
template <typename> friend class foo;
빈 템플릿 매개변수 목록을 지정하면 이제 친구 선언이 템플릿 구조체 또는 클래스의 모든 잠재적 인스턴스화에 적용됩니다. 그러나 이 접근 방식을 통해 모든 템플릿이 서로 친구가 된다는 점은 주목할 가치가 있습니다. 예를 들어, foo
위 내용은 C에서 템플릿 구조체를 친구로 선언하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!