VS2010 コンパイラの C++ の標準ライブラリの特定の機能を無効にする方法はありますか? たとえば、チームが std::max または std::min を使用できないようにしたい場合、それらがまだ使用されている場合、コンパイラはエラーを出す必要があります。それは可能ですか?どうすればそれができますか?
ありがとう、よろしく、 ベン
VS2010 コンパイラの C++ の標準ライブラリの特定の機能を無効にする方法はありますか? たとえば、チームが std::max または std::min を使用できないようにしたい場合、それらがまだ使用されている場合、コンパイラはエラーを出す必要があります。それは可能ですか?どうすればそれができますか?
ありがとう、よろしく、 ベン
しないでください。正当な理由はなく、あなたの例 ( std::max
) は確かにそうではありません。
使用したくない関数を再定義できます。それらが標準ライブラリの前に取り込まれる限り、コンパイラはあなたの関数を使用します。その後、#error タグを使用して、コンパイル中にフラグを立てることができます。
namespace std {
template <class T> const T& min ( const T& a, const T& b )
{
#error("Don't use this")
}
template <class T, class Compare>
const T& min ( const T& a, const T& b, Compare comp )
{
#error("Don't use this")
}
}
#include <algorithm>
int main()
{
return std::min(5, 4);
}