2016-09-22 6 views
1

*を編集し呼び出すC++のstd ::ソートは、エラーメッセージを追加する

のVisual Studioのインテリセンスは私がきた構造体へのポインタのベクトルにそれを呼び出すときソート機能にフラグを立てる赤ですプログラムの前半で定義されています。

私は私の比較方法への関数ポインタをインスタンス化してきたし、次のように並べ替えを呼び出しています:

bool(*compareNodes)(nodePtr, nodePtr) = compNodes; 

sort(frontier.begin(), frontier.end(), compNodes); 

/* flags compnodes and sort; "cannot determine which instance of overloaded 
* function "compNodes is intended" */ 

compNodes機能:

static bool compNodes(nodePtr Node1, nodePtr Node2){ 
    if (Node1->fValue != Node2->fValue) 
     return (Node1->fValue < Node2->fValue); 
    else 
     return (Node1->ID > Node2->ID); 
} 
+3

Intellisenseが何をするのか心配ですか...? –

+0

質問がありますか? –

+0

エラーメッセージはありますか? – samgak

答えて

1

ワイルド推測:compNodesが過負荷になっています。右のオーバーロードへのポインターをcompareNodesと打つことを賢明に試みましたが、実際にはstd::sort()では使用していません。行を変更:あなたの警告レベルが十分に高い場合

sort(frontier.begin(), frontier.end(), compareNodes); 

、あなたはcompareNodesが現在使用されていないことを参照してくださいね。

+0

うわー、それをキャッチしていない。その固定されたもの、私はこの方法でも私の関数プロトタイプを保つことになる! – Adam

関連する問題