私はテンプレート関数(最小値を見つけるための一般的な関数)を持っています。これは次のようになります。
template<class T, class Func>
int findmin(const T* a, int n, Func less){
//...
}
そして呼び出し:
int smallest_matrix(const Matrix*a, int n){
return findmin(a,n,less_matrices);
}
ここで、less_maricesは次のとおりです。
bool less_matrices(const Matrix& m1, const Matrix& m2){
//...
}
それは正しい構文ですか?
less_matricesが行うブール値チェックを行う operator () を使用して関数オブジェクトを定義すべきではありませんか。また、 findminの呼び出しは次のようにすべきではありません。
int smallest_matrix(const Matrix*a, int n){
minMatrixFunc f;
return findmin<Matrix, minMatrixFunc>(a,n,f);
}
ここで、minMatrixFuncは正しいoperator()を持つ関数オブジェクトです???