g++ の「ノート候補は...」コンパイラメッセージを無効にする 質問する

g++ の「ノート候補は...」コンパイラメッセージを無効にする 質問する

多くの場合、タイプミスやその他の型の不一致があるものをコンパイルすると、標準の「エラー: ... の 'functionname' に一致するものがありません」というエラーが表示されます。これはすばらしいことです。その後、特にオーバーロードされた関数と演算子の場合、g++ は 10 ページほどの候補をリストしますが、これは単に醜くて膨大なテンプレート定義です。

エラー メッセージは素晴らしいですが、他の関数のバリエーションを提案しないようにする方法はありますか?

ベストアンサー1

私の知る限り、あいまいな関数呼び出しの場合に提案された候補を無効にするコンパイル フラグは GCC にはありません。

唯一の希望は、おそらく GCC ソース コードにパッチを当てることです。

掘り下げて(バージョン:4.7.1)、関連する関数と思われるものを で見つけましたgcc/cp/pt.c:

void
print_candidates(tree fns)
{
  const char *str = NULL;
  print_candidates_1 (fns, false, &str);
  gcc_assert (str == NULL);
}

推測ですが、関数本体をコメントアウトするだけでよいと思います。

おすすめ記事