有没有办法为 VS2010 编译器停用 C++ 中标准库的某些功能?例如,如果我希望一个团队不能使用 std::max 或 std::min 并且如果他们仍然这样做,编译器应该给出一个错误。那可能吗?我怎么能这样做?
谢谢和最好的问候,本
有没有办法为 VS2010 编译器停用 C++ 中标准库的某些功能?例如,如果我希望一个团队不能使用 std::max 或 std::min 并且如果他们仍然这样做,编译器应该给出一个错误。那可能吗?我怎么能这样做?
谢谢和最好的问候,本
不。没有充分的理由,您的示例 ( std::max
) 肯定不是。
您可以重新定义您不想使用的函数,只要它们在 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);
}