有没有办法在VS2010编译器的C ++中停用标准库的某些功能? 例如,如果我想要一个团队不能使用std :: max或std :: min,如果他们仍然这样做,编译器应该给出一个错误。那可能吗?我怎么能这样做?
谢谢和最诚挚的问候, 本
答案 0 :(得分:0)
别。没有充分的理由,你的例子(std::max
)当然不是。
答案 1 :(得分:-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);
}