반응형
템플릿 구조/클래스를 친구로 선언하는 방법은 무엇입니까?
다음을 수행하고 싶습니다.
template <typename T>
struct foo
{
template <typename S>
friend struct foo<S>;
private:
// ...
};
하지만 내 컴파일러(VC8)가 질식합니다.
error C3857: 'foo<T>': multiple template parameter lists are not allowed
나는 가능한 모든 인스턴스화 가지고 싶은 template struct foo
친구 foo<T>
모두를 T
.
이 작업을 수행하려면 어떻게 해야 합니까?
편집: 이것은
template <typename T>
struct foo
{
template <typename>
friend struct foo;
private:
// ...
};
컴파일된 것 같지만 맞습니까? 친구와 템플릿에는 매우 부자연스러운 구문이 있습니다.
template<typename> friend class foo
그러나 이것은 모든 템플릿을 서로 친구로 만듭니다. 하지만 이것이 당신이 원하는 것이라고 생각합니까?
ReferenceURL : https://stackoverflow.com/questions/3292795/how-to-declare-a-templated-struct-class-as-a-friend
반응형
'IT이야기' 카테고리의 다른 글
Windows의 전역 npm 설치 위치 (0) | 2021.09.23 |
---|---|
128비트 정수 모듈로 64비트 정수를 계산하는 가장 빠른 방법 (0) | 2021.09.23 |
runST 및 함수 구성 (0) | 2021.09.23 |
바이트 대신 Enum Int32의 기본 유형을 만들어야 하는 이유 (0) | 2021.09.23 |
두 개의 Python 모듈에는 서로의 내용이 필요한 경우 (0) | 2021.09.23 |