В C++11 auto_ptr объявлен как deprecated, но предупреждения при его использовании почему-то нет.
В файле /usr/include/c++/4.7/backward/auto_ptr.h класс auto_ptr помечен как __attribute__ ((__deprecated__)). Проверил, что включается именно этот файл и макросы __GXX_EXPERIMENTAL_CXX0X__, __DEPRECATED, _GLIBCXX_DEPRECATED в нем определены правильно.
Вот код, который собирается без предупреждений:
#include <memory>
int main()
{
std::auto_ptr<int> a(new int);
return 0;
}
Пробовал собирать так:
g++-4.7 -std=gnu++11 -Wall -Wextra -Wdeprecated-declarations -Wsystem-headers -pedantic auto_ptr.cpp
Вот вывод «g++-4.7 -std=gnu++11 auto_ptr.cpp -E -P»: http://pastebin.com/fBRW51Wj