operator= 함수를 템플릿으로 만들 수 없나요?
글쓴이: dltkddyd / 작성시간: 금, 2012/04/06 - 7:06오후
클래스 템플릿에서 operator= 함수를 프렌드로 지정해 사용하려 합니다. 그런데 operator= 함수를 전역에서 템플릿으로 만들면 계속 컴파일 에러가 뜹니다.
template
T1& operator=(T1& left, T2& right);
template
struct MyPair {
friend MyPair& operator=(MyPair& left,MyPair& right);
};
template
MyPair& MyPair::operator=(MyPair& left,MyPair& right) {;
//정의합니다.
return left;
}
컴파일 하면 operator= 함수가 비정적멤버함수여야 한다는 에러메지시 출력됩니다.
Forums:
operator=는 원래 non-static member function이어야 합니다.
Template으로 만드는 것은 가능합니다. 클래스 안에서 템플릿으로 선언하세요.
http://stackoverflow.com/questions/871264/what-does-operator-must-be-a-non-static-member-mean
댓글 달기