std::sort
オブジェクトのベクトルを並べ替えるためにアルゴリズムに渡す次の比較関数があります。
template <typename PointT>
bool myCompareLines (A<PointT>::model_struct model_a, A<PointT>::model_struct model_b) {
return (/* some comparison code*/);
}
比較関数はクラスの外部で宣言されており、次のように呼び出しています。
template <typename PointT>
class B {
[...]
std::sort(lines.begin().lines.end(),::myCompareLines);
[...]
}
コンパイルすると、次のエラーが発生します。template declaration of 'bool myCompareLines'
内部では、プライベートタイプにアクセスできるようにフレンドクラスとしてclass A
宣言します。私は何が欠けていますか?class B
class B
model_struct