-1

有没有办法为 VS2010 编译器停用 C++ 中标准库的某些功能?例如,如果我希望一个团队不能使用 std::max 或 std::min 并且如果他们仍然这样做,编译器应该给出一个错误。那可能吗?我怎么能这样做?

谢谢和最好的问候,本

4

2 回答 2

0

不。没有充分的理由,您的示例 ( std::max) 肯定不是。

于 2013-01-17T12:07:29.653 回答
-1

您可以重新定义您不想使用的函数,只要它们在 std 库之前被拉入,编译器就会使用您的。然后,您可以在编译期间使用#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 回答