没有警告:'auto_ptr'仅在auto_ptr只使用一次时被弃用

时间:2015-11-24 09:43:10

标签: c++11 auto-ptr

我注意到了奇怪的行为。它可以缩小到以下示例:

#include <memory>

int main() {
  std::auto_ptr<int> p1(new int);
  #ifdef AUTODEP
    std::auto_ptr<int> p2(new int);
  #endif
}

和编译
cpptests $ g ++ -Wall -std = c ++ 1y dep.cc

cpptests $ g ++ -DAUTODEP -Wall -std = c ++ 1y dep.cc dep.cc:在函数'int main()'中: dep.cc:7:24:警告:'auto_ptr'已弃用(在/usr/include/c++/4.8/backward/auto_ptr.h:87中声明)[-Wdeprecated-declarations]    std :: auto_ptr p2(new int);                         

当auto_ptr只使用一次时没有任何警告的原因是什么?
测试了 gcc(Debian 4.9.2-16)4.9.2和gcc(Ubuntu 4.8.2-19ubuntu1)4.8.2
我还检查过代码没有优化。

1 个答案:

答案 0 :(得分:0)

这是GCC 33911的已知错误,状态为NEW