2
클래스 A
및 함수 객체 A_less
을 고려하십시오. A_less
은 두 개의 A
포인터를 비교합니다 (A::getvalue()
의 결과에 따라 다름).템플릿 인스턴스화시 런타임 값 사용
class A {
int getvalue(const string &Parameter);
};
struct A_less : public binary_function<A *, A *, bool> {
A_less(const string &P) : Parameter(P) { }
bool operator()(const A *lhs, const A *rhs) const {
return A->getvalue(Parameter) < rhs->getvalue(Parameter);
}
string Parameter;
}
은 어떻게 Parameter
의 (런타임) 값을 특정에 따라 A_less
으로 분류, A
포인터의/정렬 된 컨테이너를 생성 (세트, priority_queues, ...)를 선언 가야합니까? 이처럼
니스, 이제'set (Compare & comp) '도구가 필요한 것을 알 수 있습니다. gcc로 잘 컴파일하면 MS 컴파일러에서 C4930이라는 경고가 발생합니다. 'std :: set <_Kty,_Pr> T (A_less)': 프로토 타입 함수가 호출되지 않았습니다 (변수 정의가 의도 되었습니까?). –