这段时间写程序的时候发现 Linux 下 GCC 有一个问题,以下时简单代码测试
#include <iostream>
template<class Value>
void test(Value v){
if(0){
// 其实这里在正常情况下是不会触发下面语句的
// 但是当输入整数编译时,编译就不通过了
delete v;
}
printf("test\n");
}
int main(int arge,char *argv[])
{
test("rr"); // 这样编译是没问题的
// test(0); // 单如果把参数换成整数,上面的 if 语句就失效了,会编译出错
// 会提示:error: type ‘int’ argument given to ‘delete’, expected pointer
return0;
}
有没有哪位知道这是什么问题?如何解决?