template<typename T> class testClass{
public:
bool compare(const int& a, const int& b){
T x;
....
}
void sort(){
std::sort(data.begin() ,
data.end() ,
boost::bind<bool>(
&testClass<T>::compare,
this, _1 , _2));
}
std::vector<int> data;
}
std::sort
의 비교 자로 사용되는 비 정적 멤버 함수가있는 템플릿 -d 클래스가 있습니다. 비교기는 typename T
매개 변수에 따라 다릅니다. 암시 적으로 this
포인터가 있으므로 boost::bind
포인터로 포인터 this
을 시도합니다.boost :: bind 템플릿 클래스의 비 정적 멤버 함수
boost::bind<bool>(.......)
도 boost::bind(....)
도 컴파일되지 않습니다.
위의 예제는 MSVC 2008에서 실패합니다. 영어가 아닌 환경에서 영어로 정확한 메시지가 확실하지 않지만 두 프로토 타입 중 하나에 대해 불평하면 인수에 필요한 모든 변환이 가능할 수 있습니다.
오류 메시지를 게시하고 온라인 컴파일러를 사용하여 필요한 경우 영어 메시지를 받으십시오. –
시도한 코드를 게시하면'(.....)'이 도움이되지 않습니다. –
[this] (http://liveworkspace.org/code/4CeG4e$0)이 컴파일되지만 코드와 같은지는 알 수 없습니다. –