当函数返回本地或临时地址或对本地变量的引用时,会出现C4172 Visual C++警告。
像这样的东西:
int& fun()
{
int var;
return var; //C4172
}
现在看来,使用
#pragma warning
使Visual C++将C4172视为错误并中断编译是一个好主意。在C4172实际不是错误的情况下,是否存在任何合理的方案?
最佳答案
我不确定为什么有人会这样做:
int * stackTester()
{
int dummy;
return &dummy;
}
bool stackGoesUp()
{
int dummy;
return stackTester() > &dummy;
}
但是一般来说,您应该将警告视为错误。
关于c++ - 在任何情况下都不应将C4172 Visual C++警告视为错误?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14690213/