1

次のソースをコンパイルする場合:

int main()
{
  exp(1.0);

  return 0;
}

コピラーは次のエラーを出します:error C3861: 'exp': identifier not found私には次の行がなかったので:#include <iostream>上記main()

ただし、ライブラリが間接的に含まれている場合、ビジュアルスタジオはエラーを表示しません。たとえば、次のコードは、の依存関係がにある場合でも問題なくコンパイルexpされ<cmath>ます。

#include <istream>
int main()
{
  exp(1.0);

  return 0;
}

これは、<iostream>インクルードインクルードインクルード<istream>インクルードインクルードインクルードインクルードインクルードインクルードインクルードインクルードインクルードインクルードインクルードインクルードインクルードインクルードインクルード<ostream>インクルード<ios><xlocnum><cmath>

ライブラリを明示的に含めていないのに、その識別子の1つを使用しようとした場合に、ビジュアルスタジオにエラーをスローさせる方法はありますか?

4

1 に答える 1

0

include-what-you-useを確認することをお勧めします。これは、欠落している余分なincludeディレクティブを検出しようとするclangベースのツールです。

于 2012-12-11T21:19:13.697 に答える