我有我傳遞給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
我declar e class B
作爲朋友類,以便class B
可以 訪問私人類型model_struct
。我錯過了什麼?
'myCompareLines'是一個模板,而不是一個函數。 –
感謝所有回答的人,我在myCompareLines的簽名中缺少了typename關鍵字。所以它應該是: – Mustafa
bool myCompareLines(typename A :: model_struct model_a,typename A :: model_struct model_b) –
Mustafa