-1

VS2010 コンパイラの C++ の標準ライブラリの特定の機能を無効にする方法はありますか? たとえば、チームが std::max または std::min を使用できないようにしたい場合、それらがまだ使用されている場合、コンパイラはエラーを出す必要があります。それは可能ですか?どうすればそれができますか?

ありがとう、よろしく、 ベン

4

2 に答える 2

0

しないでください。正当な理由はなく、あなたの例 ( std::max) は確かにそうではありません。

于 2013-01-17T12:07:29.653 に答える
-1

使用したくない関数を再定義できます。それらが標準ライブラリの前に取り込まれる限り、コンパイラはあなたの関数を使用します。その後、#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);
}
于 2013-01-17T11:32:39.843 に答える