次のようなコードを取得しました。
template <typename T>
class Ordered_list{
public:
Ordered_list(bool (*less_than_function)(const T&, const T&)): less_than(less_than_function){}
private:
bool (*less_than) (const T&, const T&);
};
bool less_than_f(const int& i1, const int& i2){
return i1 < i2;
}
class Collection{
public:
Ordered_list<int> list(less_than_f);
};
コードがコンパイルされず、次のエラーが発生しました。
test.cpp:16: error: 'less_than_f' is not a type
関数ポインターで渡す必要がある Ordered_list クラスのオブジェクトを作成しようとしていました。理由をググってみましたが、よくわかりませんでした。それを機能させるために何をすべきか教えてもらえますか?